@nvidia-elements/core 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/_virtual/{_@oxc-project_runtime@0.128.0 → _@oxc-project_runtime@0.130.0}/helpers/decorate.js +1 -1
  3. package/dist/accordion/accordion2.js +5 -5
  4. package/dist/accordion/accordion2.js.map +1 -1
  5. package/dist/accordion/define.js.map +1 -1
  6. package/dist/alert/alert-group2.js +2 -2
  7. package/dist/alert/alert-group2.js.map +1 -1
  8. package/dist/alert/alert2.js +2 -2
  9. package/dist/alert/alert2.js.map +1 -1
  10. package/dist/alert/define.js.map +1 -1
  11. package/dist/avatar/avatar-group2.js +1 -1
  12. package/dist/avatar/avatar-group2.js.map +1 -1
  13. package/dist/avatar/avatar2.js +2 -2
  14. package/dist/avatar/avatar2.js.map +1 -1
  15. package/dist/avatar/define.js.map +1 -1
  16. package/dist/badge/badge2.js +2 -2
  17. package/dist/badge/badge2.js.map +1 -1
  18. package/dist/badge/define.js.map +1 -1
  19. package/dist/breadcrumb/breadcrumb2.js +2 -2
  20. package/dist/breadcrumb/breadcrumb2.js.map +1 -1
  21. package/dist/breadcrumb/define.js.map +1 -1
  22. package/dist/bundles/index.js +4 -4
  23. package/dist/button/button.js +1 -1
  24. package/dist/button/button.js.map +1 -1
  25. package/dist/button/button2.js +2 -2
  26. package/dist/button/button2.js.map +1 -1
  27. package/dist/button/define.js.map +1 -1
  28. package/dist/button-group/button-group2.js +2 -2
  29. package/dist/button-group/button-group2.js.map +1 -1
  30. package/dist/button-group/define.js.map +1 -1
  31. package/dist/card/card2.js +5 -5
  32. package/dist/card/card2.js.map +1 -1
  33. package/dist/card/define.js.map +1 -1
  34. package/dist/chat-message/chat-message2.js +2 -2
  35. package/dist/chat-message/chat-message2.js.map +1 -1
  36. package/dist/chat-message/define.js.map +1 -1
  37. package/dist/checkbox/checkbox-group2.js +2 -2
  38. package/dist/checkbox/checkbox-group2.js.map +1 -1
  39. package/dist/checkbox/checkbox2.js +2 -2
  40. package/dist/checkbox/checkbox2.js.map +1 -1
  41. package/dist/checkbox/define.js.map +1 -1
  42. package/dist/color/color2.js +2 -2
  43. package/dist/color/color2.js.map +1 -1
  44. package/dist/color/define.js.map +1 -1
  45. package/dist/combobox/combobox2.js +2 -2
  46. package/dist/combobox/combobox2.js.map +1 -1
  47. package/dist/combobox/define.js.map +1 -1
  48. package/dist/copy-button/copy-button2.js +2 -2
  49. package/dist/copy-button/copy-button2.js.map +1 -1
  50. package/dist/copy-button/define.js.map +1 -1
  51. package/dist/custom-elements.json +0 -12
  52. package/dist/data.snippets.json +18 -18
  53. package/dist/date/date2.js +2 -2
  54. package/dist/date/date2.js.map +1 -1
  55. package/dist/date/define.js.map +1 -1
  56. package/dist/datetime/datetime2.js +2 -2
  57. package/dist/datetime/datetime2.js.map +1 -1
  58. package/dist/datetime/define.js.map +1 -1
  59. package/dist/dialog/define.js.map +1 -1
  60. package/dist/dialog/dialog-footer2.js +2 -2
  61. package/dist/dialog/dialog-footer2.js.map +1 -1
  62. package/dist/dialog/dialog-header2.js +2 -2
  63. package/dist/dialog/dialog-header2.js.map +1 -1
  64. package/dist/dialog/dialog2.js +2 -2
  65. package/dist/dialog/dialog2.js.map +1 -1
  66. package/dist/divider/define.js.map +1 -1
  67. package/dist/divider/divider2.js +2 -2
  68. package/dist/divider/divider2.js.map +1 -1
  69. package/dist/dot/define.js.map +1 -1
  70. package/dist/dot/dot2.js +2 -2
  71. package/dist/dot/dot2.js.map +1 -1
  72. package/dist/drawer/define.js.map +1 -1
  73. package/dist/drawer/drawer-content2.js +2 -2
  74. package/dist/drawer/drawer-content2.js.map +1 -1
  75. package/dist/drawer/drawer-footer2.js +2 -2
  76. package/dist/drawer/drawer-footer2.js.map +1 -1
  77. package/dist/drawer/drawer-header2.js +2 -2
  78. package/dist/drawer/drawer-header2.js.map +1 -1
  79. package/dist/drawer/drawer2.js +2 -2
  80. package/dist/drawer/drawer2.js.map +1 -1
  81. package/dist/dropdown/define.js.map +1 -1
  82. package/dist/dropdown/dropdown-footer2.js +2 -2
  83. package/dist/dropdown/dropdown-footer2.js.map +1 -1
  84. package/dist/dropdown/dropdown-header2.js +2 -2
  85. package/dist/dropdown/dropdown-header2.js.map +1 -1
  86. package/dist/dropdown/dropdown2.js +2 -2
  87. package/dist/dropdown/dropdown2.js.map +1 -1
  88. package/dist/dropdown-group/define.js.map +1 -1
  89. package/dist/dropdown-group/dropdown-group.js +2 -2
  90. package/dist/dropdown-group/dropdown-group.js.map +1 -1
  91. package/dist/dropzone/define.js.map +1 -1
  92. package/dist/dropzone/dropzone.util.js.map +1 -1
  93. package/dist/dropzone/dropzone2.js +2 -2
  94. package/dist/dropzone/dropzone2.js.map +1 -1
  95. package/dist/file/define.js.map +1 -1
  96. package/dist/file/file2.js +1 -1
  97. package/dist/file/file2.js.map +1 -1
  98. package/dist/format-datetime/define.js.map +1 -1
  99. package/dist/format-datetime/format-datetime2.js +2 -2
  100. package/dist/format-datetime/format-datetime2.js.map +1 -1
  101. package/dist/format-number/define.js.map +1 -1
  102. package/dist/format-number/format-number2.js +2 -2
  103. package/dist/format-number/format-number2.js.map +1 -1
  104. package/dist/format-relative-time/define.js.map +1 -1
  105. package/dist/format-relative-time/format-relative-time2.js +2 -2
  106. package/dist/format-relative-time/format-relative-time2.js.map +1 -1
  107. package/dist/forms/control/control2.js +2 -2
  108. package/dist/forms/control/control2.js.map +1 -1
  109. package/dist/forms/control-group/control-group2.js +2 -2
  110. package/dist/forms/control-group/control-group2.js.map +1 -1
  111. package/dist/forms/control-message/control-message2.js +2 -2
  112. package/dist/forms/control-message/control-message2.js.map +1 -1
  113. package/dist/forms/define.js.map +1 -1
  114. package/dist/forms/utils/layout.js.map +1 -1
  115. package/dist/forms/utils/states.js.map +1 -1
  116. package/dist/grid/cell/cell2.js +1 -1
  117. package/dist/grid/cell/cell2.js.map +1 -1
  118. package/dist/grid/column/column2.js +2 -2
  119. package/dist/grid/column/column2.js.map +1 -1
  120. package/dist/grid/define.js.map +1 -1
  121. package/dist/grid/footer/footer2.js +2 -2
  122. package/dist/grid/footer/footer2.js.map +1 -1
  123. package/dist/grid/grid2.js +2 -2
  124. package/dist/grid/grid2.js.map +1 -1
  125. package/dist/grid/header/header2.js +2 -2
  126. package/dist/grid/header/header2.js.map +1 -1
  127. package/dist/grid/placeholder/placeholder2.js +1 -1
  128. package/dist/grid/placeholder/placeholder2.js.map +1 -1
  129. package/dist/grid/row/row2.js +2 -2
  130. package/dist/grid/row/row2.js.map +1 -1
  131. package/dist/icon/define.js.map +1 -1
  132. package/dist/icon/icon2.js +3 -3
  133. package/dist/icon/icon2.js.map +1 -1
  134. package/dist/icon/icons.js.map +1 -1
  135. package/dist/icon/server.js.map +1 -1
  136. package/dist/icon-button/define.js.map +1 -1
  137. package/dist/icon-button/icon-button2.js +2 -2
  138. package/dist/icon-button/icon-button2.js.map +1 -1
  139. package/dist/index.js +1 -1
  140. package/dist/input/define.js.map +1 -1
  141. package/dist/input/input-group2.js +1 -1
  142. package/dist/input/input-group2.js.map +1 -1
  143. package/dist/input/input2.js +2 -2
  144. package/dist/input/input2.js.map +1 -1
  145. package/dist/internal/base/button.js +1 -1
  146. package/dist/internal/base/button.js.map +1 -1
  147. package/dist/internal/controllers/audit.controller.js.map +1 -1
  148. package/dist/internal/controllers/i18n.controller.js.map +1 -1
  149. package/dist/internal/controllers/keynav-grid.controller.js.map +1 -1
  150. package/dist/internal/controllers/keynav-list.controller.js.map +1 -1
  151. package/dist/internal/controllers/state-active.controller.js.map +1 -1
  152. package/dist/internal/controllers/state-current.controller.js.map +1 -1
  153. package/dist/internal/controllers/state-disabled.controller.js.map +1 -1
  154. package/dist/internal/controllers/state-expanded.controller.js.map +1 -1
  155. package/dist/internal/controllers/state-highlighted.controller.js.map +1 -1
  156. package/dist/internal/controllers/state-pressed.controller.js.map +1 -1
  157. package/dist/internal/controllers/state-scroll.controller.js.map +1 -1
  158. package/dist/internal/controllers/state-selected.controller.js.map +1 -1
  159. package/dist/internal/controllers/type-anchor.controller.js.map +1 -1
  160. package/dist/internal/controllers/type-button.controller.js.map +1 -1
  161. package/dist/internal/controllers/type-closable.controller.js.map +1 -1
  162. package/dist/internal/controllers/type-command.controller.js.map +1 -1
  163. package/dist/internal/controllers/type-expandable.controller.js.map +1 -1
  164. package/dist/internal/controllers/type-interest.controller.js.map +1 -1
  165. package/dist/internal/controllers/type-native-popover-trigger.controller.js.map +1 -1
  166. package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
  167. package/dist/internal/controllers/type-native-popover.utils.js.map +1 -1
  168. package/dist/internal/controllers/type-selectable.controller.js.map +1 -1
  169. package/dist/internal/controllers/type-ssr.controller.js.map +1 -1
  170. package/dist/internal/controllers/type-submit.controller.js.map +1 -1
  171. package/dist/internal/controllers/type-touch.controller.js.map +1 -1
  172. package/dist/internal/decorators/host-attr.js.map +1 -1
  173. package/dist/internal/decorators/scoped-registry.js.map +1 -1
  174. package/dist/internal/services/global.service.js +1 -1
  175. package/dist/internal/services/global.service.js.map +1 -1
  176. package/dist/internal/services/global.utils.js +6 -8
  177. package/dist/internal/services/global.utils.js.map +1 -1
  178. package/dist/internal/services/i18n.service.js.map +1 -1
  179. package/dist/internal/services/log.service.js.map +1 -1
  180. package/dist/internal/services/transition.service.js.map +1 -1
  181. package/dist/internal/styles/index.js.map +1 -1
  182. package/dist/internal/styles/popover2.js.map +1 -1
  183. package/dist/internal/types/index.js.map +1 -1
  184. package/dist/internal/utils/a11y.js.map +1 -1
  185. package/dist/internal/utils/audit-logs.d.ts +0 -1
  186. package/dist/internal/utils/audit-logs.js +1 -4
  187. package/dist/internal/utils/audit-logs.js.map +1 -1
  188. package/dist/internal/utils/audit.js.map +1 -1
  189. package/dist/internal/utils/dom.js.map +1 -1
  190. package/dist/internal/utils/events.js.map +1 -1
  191. package/dist/internal/utils/focus.js.map +1 -1
  192. package/dist/internal/utils/keynav.js.map +1 -1
  193. package/dist/internal/utils/objects.js.map +1 -1
  194. package/dist/internal/utils/strings.js.map +1 -1
  195. package/dist/internal/utils/supports.js.map +1 -1
  196. package/dist/logo/define.js.map +1 -1
  197. package/dist/logo/logo2.js +2 -2
  198. package/dist/logo/logo2.js.map +1 -1
  199. package/dist/menu/define.js.map +1 -1
  200. package/dist/menu/menu-item2.js +2 -2
  201. package/dist/menu/menu-item2.js.map +1 -1
  202. package/dist/menu/menu2.js +2 -2
  203. package/dist/menu/menu2.js.map +1 -1
  204. package/dist/month/define.js.map +1 -1
  205. package/dist/month/month2.js +2 -2
  206. package/dist/month/month2.js.map +1 -1
  207. package/dist/notification/define.js.map +1 -1
  208. package/dist/notification/notification-group2.js +2 -2
  209. package/dist/notification/notification-group2.js.map +1 -1
  210. package/dist/notification/notification2.js +2 -2
  211. package/dist/notification/notification2.js.map +1 -1
  212. package/dist/page/define.js.map +1 -1
  213. package/dist/page/page-panel/page-panel-content2.js +1 -1
  214. package/dist/page/page-panel/page-panel-content2.js.map +1 -1
  215. package/dist/page/page-panel/page-panel-footer2.js +2 -2
  216. package/dist/page/page-panel/page-panel-footer2.js.map +1 -1
  217. package/dist/page/page-panel/page-panel-header2.js +2 -2
  218. package/dist/page/page-panel/page-panel-header2.js.map +1 -1
  219. package/dist/page/page-panel/page-panel2.js +2 -2
  220. package/dist/page/page-panel/page-panel2.js.map +1 -1
  221. package/dist/page/page2.js +2 -2
  222. package/dist/page/page2.js.map +1 -1
  223. package/dist/page-header/define.js.map +1 -1
  224. package/dist/page-header/page-header2.js +1 -1
  225. package/dist/page-header/page-header2.js.map +1 -1
  226. package/dist/page-loader/define.js.map +1 -1
  227. package/dist/page-loader/page-loader2.js +2 -2
  228. package/dist/page-loader/page-loader2.js.map +1 -1
  229. package/dist/pagination/define.js.map +1 -1
  230. package/dist/pagination/pagination2.js +2 -2
  231. package/dist/pagination/pagination2.js.map +1 -1
  232. package/dist/panel/define.js.map +1 -1
  233. package/dist/panel/panel2.js +5 -5
  234. package/dist/panel/panel2.js.map +1 -1
  235. package/dist/password/define.js.map +1 -1
  236. package/dist/password/password2.js +2 -2
  237. package/dist/password/password2.js.map +1 -1
  238. package/dist/polyfills/custom-state-set.js.map +1 -1
  239. package/dist/polyfills/index.js.map +1 -1
  240. package/dist/preferences-input/define.js.map +1 -1
  241. package/dist/preferences-input/preferences-input2.js +2 -2
  242. package/dist/preferences-input/preferences-input2.js.map +1 -1
  243. package/dist/progress-bar/define.js.map +1 -1
  244. package/dist/progress-bar/progress-bar2.js +2 -2
  245. package/dist/progress-bar/progress-bar2.js.map +1 -1
  246. package/dist/progress-ring/define.js.map +1 -1
  247. package/dist/progress-ring/progress-ring2.js +2 -2
  248. package/dist/progress-ring/progress-ring2.js.map +1 -1
  249. package/dist/progressive-filter-chip/define.js.map +1 -1
  250. package/dist/progressive-filter-chip/progressive-filter-chip2.js +2 -2
  251. package/dist/progressive-filter-chip/progressive-filter-chip2.js.map +1 -1
  252. package/dist/pulse/define.js.map +1 -1
  253. package/dist/pulse/pulse2.js +2 -2
  254. package/dist/pulse/pulse2.js.map +1 -1
  255. package/dist/radio/define.js.map +1 -1
  256. package/dist/radio/radio-group2.js +2 -2
  257. package/dist/radio/radio-group2.js.map +1 -1
  258. package/dist/radio/radio2.js +2 -2
  259. package/dist/radio/radio2.js.map +1 -1
  260. package/dist/range/define.js.map +1 -1
  261. package/dist/range/range2.js +2 -2
  262. package/dist/range/range2.js.map +1 -1
  263. package/dist/resize-handle/define.js.map +1 -1
  264. package/dist/resize-handle/resize-handle2.js +2 -2
  265. package/dist/resize-handle/resize-handle2.js.map +1 -1
  266. package/dist/search/define.js.map +1 -1
  267. package/dist/search/search2.js +2 -2
  268. package/dist/search/search2.js.map +1 -1
  269. package/dist/select/define.js.map +1 -1
  270. package/dist/select/select2.js +2 -2
  271. package/dist/select/select2.js.map +1 -1
  272. package/dist/skeleton/define.js.map +1 -1
  273. package/dist/skeleton/skeleton2.js +2 -2
  274. package/dist/skeleton/skeleton2.js.map +1 -1
  275. package/dist/sort-button/define.js.map +1 -1
  276. package/dist/sort-button/sort-button2.js +2 -2
  277. package/dist/sort-button/sort-button2.js.map +1 -1
  278. package/dist/sparkline/define.js.map +1 -1
  279. package/dist/sparkline/sparkline.utils.js.map +1 -1
  280. package/dist/sparkline/sparkline2.js +2 -2
  281. package/dist/sparkline/sparkline2.js.map +1 -1
  282. package/dist/star-rating/define.js.map +1 -1
  283. package/dist/star-rating/star-rating2.js +2 -2
  284. package/dist/star-rating/star-rating2.js.map +1 -1
  285. package/dist/steps/define.js.map +1 -1
  286. package/dist/steps/steps2.js +3 -3
  287. package/dist/steps/steps2.js.map +1 -1
  288. package/dist/switch/define.js.map +1 -1
  289. package/dist/switch/switch-group2.js +2 -2
  290. package/dist/switch/switch-group2.js.map +1 -1
  291. package/dist/switch/switch2.js +2 -2
  292. package/dist/switch/switch2.js.map +1 -1
  293. package/dist/tabs/define.js.map +1 -1
  294. package/dist/tabs/tabs-group2.js +2 -2
  295. package/dist/tabs/tabs-group2.js.map +1 -1
  296. package/dist/tabs/tabs2.js +3 -3
  297. package/dist/tabs/tabs2.js.map +1 -1
  298. package/dist/tag/define.js.map +1 -1
  299. package/dist/tag/tag2.js +2 -2
  300. package/dist/tag/tag2.js.map +1 -1
  301. package/dist/textarea/define.js.map +1 -1
  302. package/dist/textarea/textarea2.js +1 -1
  303. package/dist/textarea/textarea2.js.map +1 -1
  304. package/dist/time/define.js.map +1 -1
  305. package/dist/time/time2.js +2 -2
  306. package/dist/time/time2.js.map +1 -1
  307. package/dist/toast/define.js.map +1 -1
  308. package/dist/toast/toast2.js +2 -2
  309. package/dist/toast/toast2.js.map +1 -1
  310. package/dist/toggletip/define.js.map +1 -1
  311. package/dist/toggletip/toggletip-footer2.js +2 -2
  312. package/dist/toggletip/toggletip-footer2.js.map +1 -1
  313. package/dist/toggletip/toggletip-header2.js +2 -2
  314. package/dist/toggletip/toggletip-header2.js.map +1 -1
  315. package/dist/toggletip/toggletip2.js +2 -2
  316. package/dist/toggletip/toggletip2.js.map +1 -1
  317. package/dist/toolbar/define.js.map +1 -1
  318. package/dist/toolbar/toolbar2.js +2 -2
  319. package/dist/toolbar/toolbar2.js.map +1 -1
  320. package/dist/tooltip/define.js.map +1 -1
  321. package/dist/tooltip/tooltip2.js +2 -2
  322. package/dist/tooltip/tooltip2.js.map +1 -1
  323. package/dist/tree/define.js.map +1 -1
  324. package/dist/tree/tree-node2.js +2 -2
  325. package/dist/tree/tree-node2.js.map +1 -1
  326. package/dist/tree/tree2.js +2 -2
  327. package/dist/tree/tree2.js.map +1 -1
  328. package/dist/tree/utils.js.map +1 -1
  329. package/dist/week/define.js.map +1 -1
  330. package/dist/week/week2.js +2 -2
  331. package/dist/week/week2.js.map +1 -1
  332. package/package.json +6 -6
@@ -1,4 +1,4 @@
1
- import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
1
+ import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
2
2
  import { scopedRegistry as t } from "../internal/decorators/scoped-registry.js";
3
3
  import { useStyles as n } from "../internal/styles/index.js";
4
4
  import r from "./progress-bar.js";
@@ -16,7 +16,7 @@ var c = class extends i {
16
16
  static {
17
17
  this.metadata = {
18
18
  tag: "nve-progress-bar",
19
- version: "0.1.1"
19
+ version: "0.1.2"
20
20
  };
21
21
  }
22
22
  render() {
@@ -1 +1 @@
1
- {"version":3,"file":"progress-bar2.js","names":[],"sources":["../../src/progress-bar/progress-bar.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 type { SupportStatus } from '@nvidia-elements/core/internal';\nimport { scopedRegistry, useStyles } from '@nvidia-elements/core/internal';\nimport { property } from 'lit/decorators/property.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport styles from './progress-bar.css?inline';\n\n/**\n * @element nve-progress-bar\n * @description A progress bar is a visual indicator of the status of a running task. Under the hood, the component uses the native HTML `progress` element to achieve proper a11y concerns.\n * @since 0.16.0\n * @entrypoint \\@nvidia-elements/core/progress-bar\n * @cssprop --height\n * @cssprop --opacity\n * @cssprop --background\n * @cssprop --accent-color\n * @cssprop --indeterminate-gradient - Gradient used for indeterminate state animation\n * @aria https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role\n */\n@scopedRegistry()\nexport class ProgressBar extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-progress-bar',\n version: '0.0.0'\n };\n\n /** The current `value` of the progress indicator, set to the native HTML progress element. */\n @property({ type: Number, reflect: true }) value?: number;\n\n /** The `max` property sets the highest value that `value` scales to. */\n @property({ type: Number }) max? = 100;\n\n /** Defines visual treatment to represent a ongoing task or support status. */\n @property({ type: String, reflect: true }) status: SupportStatus;\n\n render() {\n const classes = {\n full: this.value === this.max,\n 'min-width': this.value !== undefined && this.value > 0,\n indeterminate: this.value === undefined\n };\n\n return html`\n <progress internal-host .max=${this.max as number} .value=${this.value === undefined ? (100 as number) : (this.value as number)} class=${classMap(classes)}></progress>\n `;\n }\n}\n"],"mappings":";;;;;;;;AAuBO,IAAA,IAAA,cAA0B,EAAW;;0BAYP;;;gBAXnB,EAAU,CAAC,EAAO,CAAC;;;kBAER;GACzB,KAAK;GACL,SAAS;GACV;;CAWD,SAAS;EACP,IAAM,IAAU;GACd,MAAM,KAAK,UAAU,KAAK;GAC1B,aAAa,KAAK,UAAU,KAAA,KAAa,KAAK,QAAQ;GACtD,eAAe,KAAK,UAAU,KAAA;GAC/B;EAED,OAAO,CAAI,iCACsB,KAAK,IAAc,YAAU,KAAK,UAAU,KAAA,IAAa,MAAkB,KAAK,MAAiB,WAAS,EAAS,EAAQ,CAAC;;;GAhB9J,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,SAAA,KAAA,EAAA,KAGzC,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,EAAA,WAAA,OAAA,KAAA,EAAA,KAG1B,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,UAAA,KAAA,EAAA,SAhB3C,GAAgB,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"progress-bar2.js","names":[],"sources":["../../src/progress-bar/progress-bar.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 type { SupportStatus } from '@nvidia-elements/core/internal';\nimport { scopedRegistry, useStyles } from '@nvidia-elements/core/internal';\nimport { property } from 'lit/decorators/property.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport styles from './progress-bar.css?inline';\n\n/**\n * @element nve-progress-bar\n * @description A progress bar is a visual indicator of the status of a running task. Under the hood, the component uses the native HTML `progress` element to achieve proper a11y concerns.\n * @since 0.16.0\n * @entrypoint \\@nvidia-elements/core/progress-bar\n * @cssprop --height\n * @cssprop --opacity\n * @cssprop --background\n * @cssprop --accent-color\n * @cssprop --indeterminate-gradient - Gradient used for indeterminate state animation\n * @aria https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role\n */\n@scopedRegistry()\nexport class ProgressBar extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-progress-bar',\n version: '0.0.0'\n };\n\n /** The current `value` of the progress indicator, set to the native HTML progress element. */\n @property({ type: Number, reflect: true }) value?: number;\n\n /** The `max` property sets the highest value that `value` scales to. */\n @property({ type: Number }) max? = 100;\n\n /** Defines visual treatment to represent a ongoing task or support status. */\n @property({ type: String, reflect: true }) status: SupportStatus;\n\n render() {\n const classes = {\n full: this.value === this.max,\n 'min-width': this.value !== undefined && this.value > 0,\n indeterminate: this.value === undefined\n };\n\n return html`\n <progress internal-host .max=${this.max as number} .value=${this.value === undefined ? (100 as number) : (this.value as number)} class=${classMap(classes)}></progress>\n `;\n }\n}\n"],"mappings":";;;;;;;;AAuBO,IAAA,IAAA,cAA0B,EAAW;;0BAYP;;;gBAXnB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;EACX;;CAWA,SAAS;EACP,IAAM,IAAU;GACd,MAAM,KAAK,UAAU,KAAK;GAC1B,aAAa,KAAK,UAAU,KAAA,KAAa,KAAK,QAAQ;GACtD,eAAe,KAAK,UAAU,KAAA;EAChC;EAEA,OAAO,CAAI,iCACsB,KAAK,IAAc,YAAU,KAAK,UAAU,KAAA,IAAa,MAAkB,KAAK,MAAiB,WAAS,EAAS,CAAO,EAAE;CAE/J;AACF;GAnBG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,MAGxC,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,OAAA,KAAA,CAAA,MAGzB,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,UAhB1C,EAAe,CAAA,GAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/progress-ring/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { ProgressRing } from '@nvidia-elements/core/progress-ring';\n\ndefine(ProgressRing);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-progress-ring': ProgressRing;\n }\n}\n"],"mappings":";;;AAMA,EAAO,EAAa"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/progress-ring/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { ProgressRing } from '@nvidia-elements/core/progress-ring';\n\ndefine(ProgressRing);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-progress-ring': ProgressRing;\n }\n}\n"],"mappings":";;;AAMA,EAAO,CAAY"}
@@ -1,5 +1,5 @@
1
1
  import { attachInternals as e } from "../internal/utils/a11y.js";
2
- import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
2
+ import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
3
3
  import { I18nController as n } from "../internal/controllers/i18n.controller.js";
4
4
  import { scopedRegistry as r } from "../internal/decorators/scoped-registry.js";
5
5
  import { useStyles as i } from "../internal/styles/index.js";
@@ -20,7 +20,7 @@ var f = class extends c {
20
20
  static {
21
21
  this.metadata = {
22
22
  tag: "nve-progress-ring",
23
- version: "0.1.1"
23
+ version: "0.1.2"
24
24
  };
25
25
  }
26
26
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"progress-ring2.js","names":["#i18nController","#hasStatusIconContent","#updateStatusIcon"],"sources":["../../src/progress-ring/progress-ring.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport type { Size, SupportStatus } from '@nvidia-elements/core/internal';\nimport {\n attachInternals,\n I18nController,\n scopedRegistry,\n statusIcons,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport styles from './progress-ring.css?inline';\n\n/**\n * @element nve-progress-ring\n * @description The `progress-ring` component shows the status of a pending task. It also serves the basis of the page loading element.\n * @since 0.17.0\n * @entrypoint \\@nvidia-elements/core/progress-ring\n * @slot - Content to display in the ring center. Defaults to a status icon.\n * @slot status-icon - (deprecated) Use the default slot instead.\n * @cssprop --background-color\n * @cssprop --ring-color\n * @cssprop --ring-background-opacity\n * @cssprop --ring-width\n * @cssprop --width\n * @cssprop --height\n * @cssprop --animation-duration\n * @cssprop --color\n * @csspart icon - The icon element\n * @aria https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role\n */\n@scopedRegistry()\nexport class ProgressRing extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-progress-ring',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n /** The current `value` of the progress ring. When not set, an indeterminate animation will show. */\n @property({ type: Number }) value?: number;\n\n /** The `max` value of the progress ring that the `value` is proportionally scaled to. */\n @property({ type: Number }) max? = 100;\n\n /** Four visual treatments represent the `status` of tasks. When `status` changes to `warning`, `success`, or `danger`, the component embeds appropriate icons. */\n @property({ type: String, reflect: true }) status?: SupportStatus | 'neutral' = 'neutral';\n\n /** T-shirt `size` of the progress indicator, used to scale the ring. */\n @property({ type: String, reflect: true }) size?: Size | 'xxs' | 'xs' | 'xl';\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Enables updating internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n @queryAssignedElements({ slot: 'status-icon' })\n private _deprecatedStatusIconSlot!: Element[];\n\n /**\n * Tracks presence of content presence in deprecated status-icon slot.\n */\n #hasStatusIconContent = false;\n\n render() {\n return html`\n <div internal-host ?indeterminate=${this.value === undefined}>\n <svg viewBox=\"0 0 16 16\" role=\"presentation\">\n <circle cx=\"8px\" cy=\"8px\" r=\"6.5px\" class=\"background\"></circle>\n <circle cx=\"8px\" cy=\"8px\" r=\"6.5px\" class=\"ring\"\n stroke-dasharray=${`${((this.value ?? 0) / (this.max ?? 100)) * 44}px 44px`}>\n </circle>\n </svg>\n <slot>\n ${\n this.status !== 'accent' && !this.#hasStatusIconContent\n ? html`<nve-icon part=\"icon\" .name=${this.status ? statusIcons[this.status] : undefined} .status=${this.status as SupportStatus} aria-hidden=\"true\"></nve-icon>`\n : ''\n }\n </slot>\n <slot name=\"status-icon\" @slotchange=${this.#updateStatusIcon}></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'progressbar';\n }\n\n updated(props: PropertyValues<this>) {\n super.updated(props);\n this._internals.ariaValueNow = `${this.value === undefined ? '' : this.value}`;\n this._internals.ariaValueMax = `${this.max}`;\n const i18nRecord = this.i18n as Record<string, string | undefined>;\n this._internals.ariaLabel =\n (this.status && i18nRecord[this.status] && i18nRecord[this.status] !== 'neutral'\n ? i18nRecord[this.status]!\n : this.i18n.information) ?? null;\n }\n\n #updateStatusIcon() {\n this.#hasStatusIconContent = this._deprecatedStatusIconSlot.length > 0;\n this.requestUpdate();\n }\n}\n"],"mappings":";;;;;;;;;;;;AAqCO,IAAA,IAAA,cAA2B,EAAW;;0BAmBR,mBAG6C,qBAKxC,IAAI,EAAqB,KAAK,cAGnC,KAAKA,GAAgB,gBAQhC;;;gBArCR,EAAU,CAAC,EAAO,CAAC;;;kBAER;GACzB,KAAK;GACL,SAAS;GACV;;;4BAE2B,GACzB,EAAK,SAAS,MAAM,GACtB;;CAiBD;CAWA;CAEA,SAAS;EACP,OAAO,CAAI,sCAC2B,KAAK,UAAU,KAAA,EAAU,oLAIpC,IAAK,KAAK,SAAS,MAAM,KAAK,OAAO,OAAQ,GAAG,SAAS,yBAK5E,KAAK,WAAW,YAAY,CAAC,KAAKC,KAC9B,CAAI,gCAA+B,KAAK,SAAS,EAAY,KAAK,UAAU,KAAA,EAAU,aAAW,KAAK,OAAwB,oCAC9H,GACL,+CAEoC,KAAKC,GAAkB;;CAKpE,oBAAoB;EAGlB,AAFA,MAAM,mBAAmB,EACzB,EAAgB,KAAK,EACrB,KAAK,WAAW,OAAO;;CAGzB,QAAQ,GAA6B;EAGnC,AAFA,MAAM,QAAQ,EAAM,EACpB,KAAK,WAAW,eAAe,GAAG,KAAK,UAAU,KAAA,IAAY,KAAK,KAAK,SACvE,KAAK,WAAW,eAAe,GAAG,KAAK;EACvC,IAAM,IAAa,KAAK;EACxB,KAAK,WAAW,aACb,KAAK,UAAU,EAAW,KAAK,WAAW,EAAW,KAAK,YAAY,YACnE,EAAW,KAAK,UAChB,KAAK,KAAK,gBAAgB;;CAGlC,KAAoB;EAElB,AADA,KAAKD,KAAwB,KAAK,0BAA0B,SAAS,GACrE,KAAK,eAAe;;;GAhErB,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,EAAA,WAAA,SAAA,KAAA,EAAA,KAG1B,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,EAAA,WAAA,OAAA,KAAA,EAAA,KAG1B,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,UAAA,KAAA,EAAA,KAGzC,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,QAAA,KAAA,EAAA,KAKzC,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,EAAA,WAAA,QAAA,KAAA,EAAA,KAE1B,EAAsB,EAAE,MAAM,eAAe,CAAC,CAAA,EAAA,EAAA,WAAA,6BAAA,KAAA,EAAA,SAjChD,GAAgB,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"progress-ring2.js","names":["#i18nController","#hasStatusIconContent","#updateStatusIcon"],"sources":["../../src/progress-ring/progress-ring.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport type { Size, SupportStatus } from '@nvidia-elements/core/internal';\nimport {\n attachInternals,\n I18nController,\n scopedRegistry,\n statusIcons,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport styles from './progress-ring.css?inline';\n\n/**\n * @element nve-progress-ring\n * @description The `progress-ring` component shows the status of a pending task. It also serves the basis of the page loading element.\n * @since 0.17.0\n * @entrypoint \\@nvidia-elements/core/progress-ring\n * @slot - Content to display in the ring center. Defaults to a status icon.\n * @slot status-icon - (deprecated) Use the default slot instead.\n * @cssprop --background-color\n * @cssprop --ring-color\n * @cssprop --ring-background-opacity\n * @cssprop --ring-width\n * @cssprop --width\n * @cssprop --height\n * @cssprop --animation-duration\n * @cssprop --color\n * @csspart icon - The icon element\n * @aria https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role\n */\n@scopedRegistry()\nexport class ProgressRing extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-progress-ring',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n /** The current `value` of the progress ring. When not set, an indeterminate animation will show. */\n @property({ type: Number }) value?: number;\n\n /** The `max` value of the progress ring that the `value` is proportionally scaled to. */\n @property({ type: Number }) max? = 100;\n\n /** Four visual treatments represent the `status` of tasks. When `status` changes to `warning`, `success`, or `danger`, the component embeds appropriate icons. */\n @property({ type: String, reflect: true }) status?: SupportStatus | 'neutral' = 'neutral';\n\n /** T-shirt `size` of the progress indicator, used to scale the ring. */\n @property({ type: String, reflect: true }) size?: Size | 'xxs' | 'xs' | 'xl';\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Enables updating internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n @queryAssignedElements({ slot: 'status-icon' })\n private _deprecatedStatusIconSlot!: Element[];\n\n /**\n * Tracks presence of content presence in deprecated status-icon slot.\n */\n #hasStatusIconContent = false;\n\n render() {\n return html`\n <div internal-host ?indeterminate=${this.value === undefined}>\n <svg viewBox=\"0 0 16 16\" role=\"presentation\">\n <circle cx=\"8px\" cy=\"8px\" r=\"6.5px\" class=\"background\"></circle>\n <circle cx=\"8px\" cy=\"8px\" r=\"6.5px\" class=\"ring\"\n stroke-dasharray=${`${((this.value ?? 0) / (this.max ?? 100)) * 44}px 44px`}>\n </circle>\n </svg>\n <slot>\n ${\n this.status !== 'accent' && !this.#hasStatusIconContent\n ? html`<nve-icon part=\"icon\" .name=${this.status ? statusIcons[this.status] : undefined} .status=${this.status as SupportStatus} aria-hidden=\"true\"></nve-icon>`\n : ''\n }\n </slot>\n <slot name=\"status-icon\" @slotchange=${this.#updateStatusIcon}></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'progressbar';\n }\n\n updated(props: PropertyValues<this>) {\n super.updated(props);\n this._internals.ariaValueNow = `${this.value === undefined ? '' : this.value}`;\n this._internals.ariaValueMax = `${this.max}`;\n const i18nRecord = this.i18n as Record<string, string | undefined>;\n this._internals.ariaLabel =\n (this.status && i18nRecord[this.status] && i18nRecord[this.status] !== 'neutral'\n ? i18nRecord[this.status]!\n : this.i18n.information) ?? null;\n }\n\n #updateStatusIcon() {\n this.#hasStatusIconContent = this._deprecatedStatusIconSlot.length > 0;\n this.requestUpdate();\n }\n}\n"],"mappings":";;;;;;;;;;;;AAqCO,IAAA,IAAA,cAA2B,EAAW;;0BAmBR,mBAG6C,qBAKxC,IAAI,EAAqB,IAAI,eAGlC,KAAKA,GAAgB,gBAQhC;;;gBArCR,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAK,SAAS,MAAM,EACvB;;CAiBA;CAWA;CAEA,SAAS;EACP,OAAO,CAAI,sCAC2B,KAAK,UAAU,KAAA,EAAU,oLAIpC,IAAK,KAAK,SAAS,MAAM,KAAK,OAAO,OAAQ,GAAG,SAAS,yBAK5E,KAAK,WAAW,YAAY,CAAC,KAAKC,KAC9B,CAAI,gCAA+B,KAAK,SAAS,EAAY,KAAK,UAAU,KAAA,EAAU,aAAW,KAAK,OAAwB,oCAC9H,GACL,+CAEoC,KAAKC,GAAkB;CAGpE;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;CAEA,QAAQ,GAA6B;EAGnC,AAFA,MAAM,QAAQ,CAAK,GACnB,KAAK,WAAW,eAAe,GAAG,KAAK,UAAU,KAAA,IAAY,KAAK,KAAK,SACvE,KAAK,WAAW,eAAe,GAAG,KAAK;EACvC,IAAM,IAAa,KAAK;EACxB,KAAK,WAAW,aACb,KAAK,UAAU,EAAW,KAAK,WAAW,EAAW,KAAK,YAAY,YACnE,EAAW,KAAK,UAChB,KAAK,KAAK,gBAAgB;CAClC;CAEA,KAAoB;EAElB,AADA,KAAKD,KAAwB,KAAK,0BAA0B,SAAS,GACrE,KAAK,cAAc;CACrB;AACF;GAlEG,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,MAGzB,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,OAAA,KAAA,CAAA,MAGzB,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MAGxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAKxC,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAEzB,EAAsB,EAAE,MAAM,cAAc,CAAC,CAAA,GAAA,EAAA,WAAA,6BAAA,KAAA,CAAA,UAjC/C,EAAe,CAAA,GAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/progressive-filter-chip/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { ProgressiveFilterChip } from '@nvidia-elements/core/progressive-filter-chip';\n\ndefine(ProgressiveFilterChip);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-progressive-filter-chip': ProgressiveFilterChip;\n }\n}\n"],"mappings":";;;AAMA,EAAO,EAAsB"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/progressive-filter-chip/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { ProgressiveFilterChip } from '@nvidia-elements/core/progressive-filter-chip';\n\ndefine(ProgressiveFilterChip);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-progressive-filter-chip': ProgressiveFilterChip;\n }\n}\n"],"mappings":";;;AAMA,EAAO,CAAqB"}
@@ -1,6 +1,6 @@
1
1
  import { appendRootNodeStyle as e, generateId as t } from "../internal/utils/dom.js";
2
2
  import { attachInternals as n } from "../internal/utils/a11y.js";
3
- import { __decorate as r } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
3
+ import { __decorate as r } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
4
4
  import { I18nController as i } from "../internal/controllers/i18n.controller.js";
5
5
  import { TypeClosableController as a } from "../internal/controllers/type-closable.controller.js";
6
6
  import { typeSSR as o } from "../internal/controllers/type-ssr.controller.js";
@@ -23,7 +23,7 @@ var b = class extends h {
23
23
  static {
24
24
  this.metadata = {
25
25
  tag: "nve-progressive-filter-chip",
26
- version: "0.1.1"
26
+ version: "0.1.2"
27
27
  };
28
28
  }
29
29
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"progressive-filter-chip2.js","names":["#i18nController","#removeItem","#getControlTemplate","#typeClosableController","#createItems","#resetItems"],"sources":["../../src/progressive-filter-chip/progressive-filter-chip.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\nimport {\n appendRootNodeStyle,\n attachInternals,\n generateId,\n I18nController,\n scopedRegistry,\n TypeClosableController,\n typeSSR,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { Input } from '@nvidia-elements/core/input';\nimport { Select } from '@nvidia-elements/core/select';\nimport { Date } from '@nvidia-elements/core/date';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport globalStyles from './progressive-filter-chip.global.css?inline';\nimport styles from './progressive-filter-chip.css?inline';\n\n/**\n * @element nve-progressive-filter-chip\n * @description A filter chip is a control that enables users to select many options from a set of choices.\n * @since 0.16.0\n * @entrypoint \\@nvidia-elements/core/progressive-filter-chip\n * @slot - default slot for content\n * @event close - Dispatched when the filter chip closes.\n * @cssprop --gap\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --background\n * @cssprop --font-weight\n * @cssprop --padding\n * @cssprop --width\n * @csspart select - The select element\n * @csspart date - The date input element\n * @csspart input - The input element\n * @csspart icon-button - The icon button element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/\n */\n@typeSSR()\n@scopedRegistry()\nexport class ProgressiveFilterChip extends LitElement {\n static readonly metadata = {\n tag: 'nve-progressive-filter-chip',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Input.metadata.tag]: Input,\n [Select.metadata.tag]: Select,\n [Date.metadata.tag]: Date,\n [IconButton.metadata.tag]: IconButton\n };\n\n /** Determines if a close button should render within filter chip */\n @property({ type: Boolean }) closable: boolean;\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Enables updating internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n @state() private inputs: Element[] = [];\n\n static styles = useStyles([styles]);\n\n #typeClosableController = new TypeClosableController(this);\n\n /** @private */\n declare _internals: ElementInternals;\n\n #getControlTemplate(el: Element) {\n const slot = html`<slot name=${el.slot} @slotchange=${this.#removeItem}></slot>`;\n if (el.tagName === 'SELECT') {\n return html`<nve-select part=\"select\" multiple-overflow ?fit-text=${!(el as HTMLSelectElement).multiple}>${slot}</nve-select>`;\n } else if (el.tagName === 'INPUT' && (el as HTMLInputElement).type === 'date') {\n return html`<nve-date part=\"date\">${slot}</nve-date>`;\n } else if (el.tagName === 'INPUT') {\n return html`<nve-input part=\"input\">${slot}</nve-input>`;\n } else {\n return slot;\n }\n }\n\n render() {\n return html`\n <div internal-host>\n ${this.inputs.map(el => this.#getControlTemplate(el))}\n ${this.closable ? html`<nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" @click=${() => this.#typeClosableController.close()} .ariaLabel=${this.i18n.close} icon-name=\"cancel\"></nve-icon-button>` : nothing}\n </div>\n <slot hidden-slot @slotchange=${this.#createItems}></slot>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'toolbar';\n this.setAttribute('nve-control', '');\n appendRootNodeStyle(this, globalStyles);\n }\n\n #removeItem(e: Event) {\n if (!(e.target as HTMLSlotElement).assignedElements().length) {\n this.#resetItems();\n }\n }\n\n #createItems(e: Event) {\n if (e.target && (e.target as HTMLSlotElement).assignedElements().length) {\n this.#resetItems();\n const items = Array.from(\n this.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])')!.assignedElements()\n ).filter(i => i.matches('input, select, nve-button, [nve-control]'));\n items.forEach(i => (i.slot = generateId()));\n this.inputs = items.length ? items : this.inputs;\n }\n }\n\n #resetItems() {\n Array.from(this.shadowRoot!.querySelectorAll('slot'))\n .flatMap(i => i.assignedElements())\n .forEach(i => (i.slot = ''));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA6CO,IAAA,IAAA,cAAoC,EAAW;;yBAgBZ,IAAI,EAAqB,KAAK,cAGnC,KAAKA,GAAgB,oBAEnB,EAAE,YAIb,IAAI,EAAuB,KAAK;;;kBAxB/B;GACzB,KAAK;GACL,SAAS;GACV;;;4BAE2B;IACzB,EAAM,SAAS,MAAM;IACrB,EAAO,SAAS,MAAM;IACtB,EAAK,SAAS,MAAM;IACpB,EAAW,SAAS,MAAM;GAC5B;;CAKD;;gBAOgB,EAAU,CAAC,EAAO,CAAC;;CAEnC;CAKA,GAAoB,GAAa;EAC/B,IAAM,IAAO,CAAI,eAAc,EAAG,KAAK,iBAAe,KAAKC,GAAY;EAQrE,OAPE,EAAG,YAAY,WACV,CAAI,0DAAyD,CAAE,EAAyB,SAAS,IAAG,EAAK,iBACvG,EAAG,YAAY,WAAY,EAAwB,SAAS,SAC9D,CAAI,yBAAyB,EAAK,eAChC,EAAG,YAAY,UACjB,CAAI,2BAA2B,EAAK,gBAEpC;;CAIX,SAAS;EACP,OAAO,CAAI,sBAEP,KAAK,OAAO,KAAI,MAAM,KAAKC,GAAoB,EAAG,CAAC,CAAC,GACpD,KAAK,WAAW,CAAI,yFAAwF,KAAKC,GAAwB,OAAO,CAAC,gBAAc,KAAK,KAAK,MAAM,2CAA0C,EAAQ,uCAErM,KAAKC,GAAa;;CAIpD,oBAAoB;EAKlB,AAJA,MAAM,mBAAmB,EACzB,EAAgB,KAAK,EACrB,KAAK,WAAW,OAAO,WACvB,KAAK,aAAa,eAAe,GAAG,EACpC,EAAoB,MAAM,EAAa;;CAGzC,GAAY,GAAU;EACpB,AAAM,EAAE,OAA2B,kBAAkB,CAAC,UACpD,KAAKC,IAAa;;CAItB,GAAa,GAAU;EACrB,IAAI,EAAE,UAAW,EAAE,OAA2B,kBAAkB,CAAC,QAAQ;GACvE,KAAKA,IAAa;GAClB,IAAM,IAAQ,MAAM,KAClB,KAAK,WAAY,cAA+B,mBAAmB,CAAE,kBAAkB,CACxF,CAAC,QAAO,MAAK,EAAE,QAAQ,2CAA2C,CAAC;GAEpE,AADA,EAAM,SAAQ,MAAM,EAAE,OAAO,GAAY,CAAE,EAC3C,KAAK,SAAS,EAAM,SAAS,IAAQ,KAAK;;;CAI9C,KAAc;EACZ,MAAM,KAAK,KAAK,WAAY,iBAAiB,OAAO,CAAC,CAClD,SAAQ,MAAK,EAAE,kBAAkB,CAAC,CAClC,SAAQ,MAAM,EAAE,OAAO,GAAI;;;GAnE/B,EAAS,EAAE,MAAM,SAAS,CAAC,CAAA,EAAA,EAAA,WAAA,YAAA,KAAA,EAAA,KAK3B,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,EAAA,WAAA,QAAA,KAAA,EAAA,KAE1B,GAAO,CAAA,EAAA,EAAA,WAAA,UAAA,KAAA,EAAA,SAvBT,GAAS,EACT,GAAgB,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"progressive-filter-chip2.js","names":["#i18nController","#removeItem","#getControlTemplate","#typeClosableController","#createItems","#resetItems"],"sources":["../../src/progressive-filter-chip/progressive-filter-chip.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\nimport {\n appendRootNodeStyle,\n attachInternals,\n generateId,\n I18nController,\n scopedRegistry,\n TypeClosableController,\n typeSSR,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { Input } from '@nvidia-elements/core/input';\nimport { Select } from '@nvidia-elements/core/select';\nimport { Date } from '@nvidia-elements/core/date';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport globalStyles from './progressive-filter-chip.global.css?inline';\nimport styles from './progressive-filter-chip.css?inline';\n\n/**\n * @element nve-progressive-filter-chip\n * @description A filter chip is a control that enables users to select many options from a set of choices.\n * @since 0.16.0\n * @entrypoint \\@nvidia-elements/core/progressive-filter-chip\n * @slot - default slot for content\n * @event close - Dispatched when the filter chip closes.\n * @cssprop --gap\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --background\n * @cssprop --font-weight\n * @cssprop --padding\n * @cssprop --width\n * @csspart select - The select element\n * @csspart date - The date input element\n * @csspart input - The input element\n * @csspart icon-button - The icon button element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/\n */\n@typeSSR()\n@scopedRegistry()\nexport class ProgressiveFilterChip extends LitElement {\n static readonly metadata = {\n tag: 'nve-progressive-filter-chip',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Input.metadata.tag]: Input,\n [Select.metadata.tag]: Select,\n [Date.metadata.tag]: Date,\n [IconButton.metadata.tag]: IconButton\n };\n\n /** Determines if a close button should render within filter chip */\n @property({ type: Boolean }) closable: boolean;\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Enables updating internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n @state() private inputs: Element[] = [];\n\n static styles = useStyles([styles]);\n\n #typeClosableController = new TypeClosableController(this);\n\n /** @private */\n declare _internals: ElementInternals;\n\n #getControlTemplate(el: Element) {\n const slot = html`<slot name=${el.slot} @slotchange=${this.#removeItem}></slot>`;\n if (el.tagName === 'SELECT') {\n return html`<nve-select part=\"select\" multiple-overflow ?fit-text=${!(el as HTMLSelectElement).multiple}>${slot}</nve-select>`;\n } else if (el.tagName === 'INPUT' && (el as HTMLInputElement).type === 'date') {\n return html`<nve-date part=\"date\">${slot}</nve-date>`;\n } else if (el.tagName === 'INPUT') {\n return html`<nve-input part=\"input\">${slot}</nve-input>`;\n } else {\n return slot;\n }\n }\n\n render() {\n return html`\n <div internal-host>\n ${this.inputs.map(el => this.#getControlTemplate(el))}\n ${this.closable ? html`<nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" @click=${() => this.#typeClosableController.close()} .ariaLabel=${this.i18n.close} icon-name=\"cancel\"></nve-icon-button>` : nothing}\n </div>\n <slot hidden-slot @slotchange=${this.#createItems}></slot>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'toolbar';\n this.setAttribute('nve-control', '');\n appendRootNodeStyle(this, globalStyles);\n }\n\n #removeItem(e: Event) {\n if (!(e.target as HTMLSlotElement).assignedElements().length) {\n this.#resetItems();\n }\n }\n\n #createItems(e: Event) {\n if (e.target && (e.target as HTMLSlotElement).assignedElements().length) {\n this.#resetItems();\n const items = Array.from(\n this.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])')!.assignedElements()\n ).filter(i => i.matches('input, select, nve-button, [nve-control]'));\n items.forEach(i => (i.slot = generateId()));\n this.inputs = items.length ? items : this.inputs;\n }\n }\n\n #resetItems() {\n Array.from(this.shadowRoot!.querySelectorAll('slot'))\n .flatMap(i => i.assignedElements())\n .forEach(i => (i.slot = ''));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA6CO,IAAA,IAAA,cAAoC,EAAW;;yBAgBZ,IAAI,EAAqB,IAAI,eAGlC,KAAKA,GAAgB,oBAEnB,CAAC,aAIZ,IAAI,EAAuB,IAAI;;;kBAxB9B;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B;IACzB,EAAM,SAAS,MAAM;IACrB,EAAO,SAAS,MAAM;IACtB,EAAK,SAAS,MAAM;IACpB,EAAW,SAAS,MAAM;EAC7B;;CAKA;;gBAOgB,EAAU,CAAC,CAAM,CAAC;;CAElC;CAKA,GAAoB,GAAa;EAC/B,IAAM,IAAO,CAAI,eAAc,EAAG,KAAK,iBAAe,KAAKC,GAAY;EAQrE,OAPE,EAAG,YAAY,WACV,CAAI,0DAAyD,CAAE,EAAyB,SAAS,IAAG,EAAK,iBACvG,EAAG,YAAY,WAAY,EAAwB,SAAS,SAC9D,CAAI,yBAAyB,EAAK,eAChC,EAAG,YAAY,UACjB,CAAI,2BAA2B,EAAK,gBAEpC;CAEX;CAEA,SAAS;EACP,OAAO,CAAI,sBAEP,KAAK,OAAO,KAAI,MAAM,KAAKC,GAAoB,CAAE,CAAC,EAAE,GACpD,KAAK,WAAW,CAAI,yFAAwF,KAAKC,GAAwB,MAAM,EAAE,gBAAc,KAAK,KAAK,MAAM,2CAA0C,EAAQ,uCAErM,KAAKC,GAAa;CAEpD;CAEA,oBAAoB;EAKlB,AAJA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,WACvB,KAAK,aAAa,eAAe,EAAE,GACnC,EAAoB,MAAM,CAAY;CACxC;CAEA,GAAY,GAAU;EACpB,AAAM,EAAE,OAA2B,iBAAiB,EAAE,UACpD,KAAKC,GAAY;CAErB;CAEA,GAAa,GAAU;EACrB,IAAI,EAAE,UAAW,EAAE,OAA2B,iBAAiB,EAAE,QAAQ;GACvE,KAAKA,GAAY;GACjB,IAAM,IAAQ,MAAM,KAClB,KAAK,WAAY,cAA+B,kBAAkB,EAAG,iBAAiB,CACxF,EAAE,QAAO,MAAK,EAAE,QAAQ,0CAA0C,CAAC;GAEnE,AADA,EAAM,SAAQ,MAAM,EAAE,OAAO,EAAW,CAAE,GAC1C,KAAK,SAAS,EAAM,SAAS,IAAQ,KAAK;EAC5C;CACF;CAEA,KAAc;EACZ,MAAM,KAAK,KAAK,WAAY,iBAAiB,MAAM,CAAC,EACjD,SAAQ,MAAK,EAAE,iBAAiB,CAAC,EACjC,SAAQ,MAAM,EAAE,OAAO,EAAG;CAC/B;AACF;GArEG,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAK1B,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAEzB,EAAM,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,UAvBR,EAAQ,GACR,EAAe,CAAA,GAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/pulse/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Pulse } from '@nvidia-elements/core/pulse';\n\ndefine(Pulse);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-pulse': Pulse;\n }\n}\n"],"mappings":";;;AAMA,EAAO,EAAM"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/pulse/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Pulse } from '@nvidia-elements/core/pulse';\n\ndefine(Pulse);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-pulse': Pulse;\n }\n}\n"],"mappings":";;;AAMA,EAAO,CAAK"}
@@ -1,5 +1,5 @@
1
1
  import { attachInternals as e } from "../internal/utils/a11y.js";
2
- import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
2
+ import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
3
3
  import { useStyles as n } from "../internal/styles/index.js";
4
4
  import { Icon as r } from "../icon/icon2.js";
5
5
  import i from "./pulse.js";
@@ -13,7 +13,7 @@ var c = class extends a {
13
13
  static {
14
14
  this.metadata = {
15
15
  tag: "nve-pulse",
16
- version: "0.1.1"
16
+ version: "0.1.2"
17
17
  };
18
18
  }
19
19
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"pulse2.js","names":[],"sources":["../../src/pulse/pulse.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { Size } from '@nvidia-elements/core/internal';\nimport { useStyles, attachInternals } from '@nvidia-elements/core/internal';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport styles from './pulse.css?inline';\n\n/**\n * @element nve-pulse\n * @description Pulse component signals attention for a particular area of a UI. This helps with tutorial/getting started guides for new users.\n * @since 1.16.3\n * @entrypoint \\@nvidia-elements/core/pulse\n * @cssprop --background\n * @cssprop --width\n * @cssprop --height\n * @cssprop --animation-duration\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/alert/\n *\n */\nexport class Pulse extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-pulse',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'alert';\n }\n\n /** Sets size of the pulse component. You can also update size using the `width + height` css props. */\n @property({ type: String, reflect: true }) size?: Size | 'xs';\n\n /** These visual treatments represent the `status` of different tasks. When `status` changes to `accent`, `warning` or `danger`, the component embeds appropriate colors. */\n @property({ type: String, reflect: true }) status?: 'accent' | 'warning' | 'danger';\n\n render() {\n return html`\n <svg internal-host width=\"100%\" height=\"100%\" viewBox=\"0 0 200 200\">\n <circle class=\"circle\" cx=\"100\" cy=\"100\" r=\"25\"></circle>\n <circle class=\"circle c1\" cx=\"100\" cy=\"100\" r=\"25\"></circle>\n <circle class=\"circle c2\" cx=\"100\" cy=\"100\" r=\"25\"></circle> \n <circle class=\"circle c3\" cx=\"100\" cy=\"100\" r=\"25\"></circle>\n </svg>\n `;\n }\n}\n"],"mappings":";;;;;;;;AAsBA,IAAa,IAAb,cAA2B,EAAW;;gBACpB,EAAU,CAAC,EAAO,CAAC;;;kBAER;GACzB,KAAK;GACL,SAAS;GACV;;;4BAE2B,GACzB,EAAK,SAAS,MAAM,GACtB;;CAKD,oBAAoB;EAGlB,AAFA,MAAM,mBAAmB,EACzB,EAAgB,KAAK,EACrB,KAAK,WAAW,OAAO;;CASzB,SAAS;EACP,OAAO,CAAI;;;GANZ,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,QAAA,KAAA,EAAA,KAGzC,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,UAAA,KAAA,EAAA"}
1
+ {"version":3,"file":"pulse2.js","names":[],"sources":["../../src/pulse/pulse.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { Size } from '@nvidia-elements/core/internal';\nimport { useStyles, attachInternals } from '@nvidia-elements/core/internal';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport styles from './pulse.css?inline';\n\n/**\n * @element nve-pulse\n * @description Pulse component signals attention for a particular area of a UI. This helps with tutorial/getting started guides for new users.\n * @since 1.16.3\n * @entrypoint \\@nvidia-elements/core/pulse\n * @cssprop --background\n * @cssprop --width\n * @cssprop --height\n * @cssprop --animation-duration\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/alert/\n *\n */\nexport class Pulse extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-pulse',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'alert';\n }\n\n /** Sets size of the pulse component. You can also update size using the `width + height` css props. */\n @property({ type: String, reflect: true }) size?: Size | 'xs';\n\n /** These visual treatments represent the `status` of different tasks. When `status` changes to `accent`, `warning` or `danger`, the component embeds appropriate colors. */\n @property({ type: String, reflect: true }) status?: 'accent' | 'warning' | 'danger';\n\n render() {\n return html`\n <svg internal-host width=\"100%\" height=\"100%\" viewBox=\"0 0 200 200\">\n <circle class=\"circle\" cx=\"100\" cy=\"100\" r=\"25\"></circle>\n <circle class=\"circle c1\" cx=\"100\" cy=\"100\" r=\"25\"></circle>\n <circle class=\"circle c2\" cx=\"100\" cy=\"100\" r=\"25\"></circle> \n <circle class=\"circle c3\" cx=\"100\" cy=\"100\" r=\"25\"></circle>\n </svg>\n `;\n }\n}\n"],"mappings":";;;;;;;;AAsBA,IAAa,IAAb,cAA2B,EAAW;;gBACpB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAK,SAAS,MAAM,EACvB;;CAKA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;CAQA,SAAS;EACP,OAAO,CAAI;CAQb;AACF;GAfG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAGxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/radio/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Radio, RadioGroup } from '@nvidia-elements/core/radio';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Radio);\ndefine(RadioGroup);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-radio': Radio;\n 'nve-radio-group': RadioGroup;\n }\n}\n"],"mappings":";;;;;;AAOA,EAAO,EAAM,EACb,EAAO,EAAW,EAClB,EAAO,EAAQ,EACf,EAAO,EAAa,EACpB,EAAO,EAAe"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/radio/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Radio, RadioGroup } from '@nvidia-elements/core/radio';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Radio);\ndefine(RadioGroup);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-radio': Radio;\n 'nve-radio-group': RadioGroup;\n }\n}\n"],"mappings":";;;;;;AAOA,EAAO,CAAK,GACZ,EAAO,CAAU,GACjB,EAAO,CAAO,GACd,EAAO,CAAY,GACnB,EAAO,CAAc"}
@@ -1,4 +1,4 @@
1
- import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
1
+ import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
2
2
  import { audit as t } from "../internal/controllers/audit.controller.js";
3
3
  import { typeSSR as n } from "../internal/controllers/type-ssr.controller.js";
4
4
  import { useStyles as r } from "../internal/styles/index.js";
@@ -12,7 +12,7 @@ var o = class extends i {
12
12
  static {
13
13
  this.metadata = {
14
14
  tag: "nve-radio-group",
15
- version: "0.1.1",
15
+ version: "0.1.2",
16
16
  children: [
17
17
  "label",
18
18
  "nve-control-message",
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group2.js","names":[],"sources":["../../src/radio/radio-group.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CSSResult } from 'lit';\nimport { audit, typeSSR, useStyles } from '@nvidia-elements/core/internal';\nimport { ControlGroup } from '@nvidia-elements/core/forms';\nimport styles from './radio-group.css?inline';\n\n/**\n * @element nve-radio-group\n * @description Groups related radio buttons together with a shared label and validation messaging for single-select form inputs.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/radio\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/radio/\n */\n@audit()\n@typeSSR()\nexport class RadioGroup extends ControlGroup {\n static styles: CSSResult[] = useStyles([...ControlGroup.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-radio-group',\n version: '0.0.0',\n children: ['label', 'nve-control-message', 'nve-radio']\n };\n}\n"],"mappings":";;;;;;;AAiBO,IAAA,IAAA,cAAyB,EAAa;;gBACd,EAAU,CAAC,GAAG,EAAa,QAAQ,EAAO,CAAC;;;kBAE7C;GACzB,KAAK;GACL,SAAS;GACT,UAAU;IAAC;IAAS;IAAuB;IAAY;GACxD;;;OATF,GAAO,EACP,GAAS,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"radio-group2.js","names":[],"sources":["../../src/radio/radio-group.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CSSResult } from 'lit';\nimport { audit, typeSSR, useStyles } from '@nvidia-elements/core/internal';\nimport { ControlGroup } from '@nvidia-elements/core/forms';\nimport styles from './radio-group.css?inline';\n\n/**\n * @element nve-radio-group\n * @description Groups related radio buttons together with a shared label and validation messaging for single-select form inputs.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/radio\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/radio/\n */\n@audit()\n@typeSSR()\nexport class RadioGroup extends ControlGroup {\n static styles: CSSResult[] = useStyles([...ControlGroup.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-radio-group',\n version: '0.0.0',\n children: ['label', 'nve-control-message', 'nve-radio']\n };\n}\n"],"mappings":";;;;;;;AAiBO,IAAA,IAAA,cAAyB,EAAa;;gBACd,EAAU,CAAC,GAAG,EAAa,QAAQ,CAAM,CAAC;;;kBAE5C;GACzB,KAAK;GACL,SAAS;GACT,UAAU;IAAC;IAAS;IAAuB;GAAW;EACxD;;AACF;OAVC,EAAM,GACN,EAAQ,CAAA,GAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
1
+ import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
2
2
  import { audit as t } from "../internal/controllers/audit.controller.js";
3
3
  import { hostAttr as n } from "../internal/decorators/host-attr.js";
4
4
  import { useStyles as r } from "../internal/styles/index.js";
@@ -15,7 +15,7 @@ var o = class extends i {
15
15
  static {
16
16
  this.metadata = {
17
17
  tag: "nve-radio",
18
- version: "0.1.1",
18
+ version: "0.1.2",
19
19
  children: [
20
20
  "label",
21
21
  "input",
@@ -1 +1 @@
1
- {"version":3,"file":"radio2.js","names":[],"sources":["../../src/radio/radio.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CSSResult } from 'lit';\nimport { audit, hostAttr, useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport styles from './radio.css?inline';\n\n/**\n * @element nve-radio\n * @description A radio button is a control that enables users to choose one option from a list of mutually exclusive options.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/radio\n * @cssprop --cursor\n * @cssprop --width\n * @cssprop --height\n * @cssprop --border-width\n * @cssprop --border-radius\n * @cssprop --border-color\n * @cssprop --radio-color\n * @cssprop --background\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/radio/\n */\n@audit()\nexport class Radio extends Control {\n @hostAttr({ attribute: 'nve-control' }) protected nveControl = 'inline';\n\n /** @private - disable for inline control */\n declare fitText: boolean;\n\n /** @private - disable for inline control */\n declare fitContent: boolean;\n\n static styles: CSSResult[] = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-radio',\n version: '0.0.0',\n children: ['label', 'input', 'nve-control-message']\n };\n}\n"],"mappings":";;;;;;;AAwBO,IAAA,IAAA,cAAoB,EAAQ;;iCAC8B;;;gBAQlC,EAAU,CAAC,GAAG,EAAQ,QAAQ,EAAO,CAAC;;;kBAExC;GACzB,KAAK;GACL,SAAS;GACT,UAAU;IAAC;IAAS;IAAS;IAAsB;GACpD;;;GAdA,EAAS,EAAE,WAAW,eAAe,CAAC,CAAA,EAAA,EAAA,WAAA,cAAA,KAAA,EAAA,SAFxC,GAAO,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"radio2.js","names":[],"sources":["../../src/radio/radio.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CSSResult } from 'lit';\nimport { audit, hostAttr, useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport styles from './radio.css?inline';\n\n/**\n * @element nve-radio\n * @description A radio button is a control that enables users to choose one option from a list of mutually exclusive options.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/radio\n * @cssprop --cursor\n * @cssprop --width\n * @cssprop --height\n * @cssprop --border-width\n * @cssprop --border-radius\n * @cssprop --border-color\n * @cssprop --radio-color\n * @cssprop --background\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/radio/\n */\n@audit()\nexport class Radio extends Control {\n @hostAttr({ attribute: 'nve-control' }) protected nveControl = 'inline';\n\n /** @private - disable for inline control */\n declare fitText: boolean;\n\n /** @private - disable for inline control */\n declare fitContent: boolean;\n\n static styles: CSSResult[] = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-radio',\n version: '0.0.0',\n children: ['label', 'input', 'nve-control-message']\n };\n}\n"],"mappings":";;;;;;;AAwBO,IAAA,IAAA,cAAoB,EAAQ;;iCAC8B;;;gBAQlC,EAAU,CAAC,GAAG,EAAQ,QAAQ,CAAM,CAAC;;;kBAEvC;GACzB,KAAK;GACL,SAAS;GACT,UAAU;IAAC;IAAS;IAAS;GAAqB;EACpD;;AACF;GAfG,EAAS,EAAE,WAAW,cAAc,CAAC,CAAA,GAAA,EAAA,WAAA,cAAA,KAAA,CAAA,UAFvC,EAAM,CAAA,GAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/range/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Range } from '@nvidia-elements/core/range';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Range);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-range': Range;\n }\n}\n"],"mappings":";;;;;AAOA,EAAO,EAAM,EACb,EAAO,EAAQ,EACf,EAAO,EAAa,EACpB,EAAO,EAAe"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/range/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Range } from '@nvidia-elements/core/range';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Range);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-range': Range;\n }\n}\n"],"mappings":";;;;;AAOA,EAAO,CAAK,GACZ,EAAO,CAAO,GACd,EAAO,CAAY,GACnB,EAAO,CAAc"}
@@ -1,5 +1,5 @@
1
1
  import { appendRootNodeStyle as e, getElementUpdate as t } from "../internal/utils/dom.js";
2
- import { __decorate as n } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
2
+ import { __decorate as n } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
3
3
  import { useStyles as r } from "../internal/styles/index.js";
4
4
  import { Control as i } from "../forms/control/control2.js";
5
5
  import a from "./range.global.js";
@@ -17,7 +17,7 @@ var d = class extends i {
17
17
  static {
18
18
  this.metadata = {
19
19
  tag: "nve-range",
20
- version: "0.1.1"
20
+ version: "0.1.2"
21
21
  };
22
22
  }
23
23
  connectedCallback() {
@@ -1 +1 @@
1
- {"version":3,"file":"range2.js","names":["#setTrackWidth","#renderDatalistTicks"],"sources":["../../src/range/range.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { appendRootNodeStyle, getElementUpdate, useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { property } from 'lit/decorators/property.js';\nimport globalStyles from './range.global.css?inline';\nimport styles from './range.css?inline';\nimport type { PropertyValues } from 'lit';\nimport { html, nothing, isServer } from 'lit';\n/**\n * @element nve-range\n * @description A range slider is a control that enables users to choose a value from a continuous range of values.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/range\n * @cssprop --background\n * @cssprop --control-height\n * @cssprop --cursor\n * @cssprop --track-width\n * @cssprop --track-height\n * @cssprop --track-border-radius\n * @cssprop --track-background\n * @cssprop --thumb-width\n * @cssprop --thumb-height\n * @cssprop --thumb-background\n * @cssprop --thumb-border\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/slider/\n */\nexport class Range extends Control {\n static styles = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-range',\n version: '0.0.0'\n };\n\n /** Determines the orientation of the range slider. */\n @property({ type: String, reflect: true }) orientation: 'vertical' | 'horizontal' = 'horizontal';\n\n connectedCallback() {\n super.connectedCallback();\n appendRootNodeStyle(this, globalStyles);\n this._internals.ariaOrientation = this.orientation;\n }\n\n firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n this.#setTrackWidth();\n this.input.addEventListener('input', () => this.#setTrackWidth());\n getElementUpdate(this.input, 'value', (value: unknown) => this.#setTrackWidth(value as number));\n }\n\n updated(props: PropertyValues<this>) {\n super.updated(props);\n if (props.has('orientation')) {\n this._internals.ariaOrientation = this.orientation;\n }\n }\n\n #setTrackWidth(val?: number) {\n const value = val ?? this.input.valueAsNumber;\n const min = this.input.min ? parseFloat(this.input.min) : 0;\n const max = this.input.max ? parseFloat(this.input.max) : 100;\n this.style.setProperty('--track-width', `${Math.floor(((value - min) / (max - min)) * 100) / 100}`);\n }\n\n protected get suffixContent() {\n const datalist = !isServer ? this.querySelector<HTMLDataListElement>('datalist') : null;\n return datalist ? this.#renderDatalistTicks(datalist) : nothing;\n }\n\n #renderDatalistTicks(datalist: HTMLDataListElement) {\n const options = Array.from(datalist.options);\n const min = this.input?.min ? parseFloat(this.input.min) : 0;\n const max = this.input?.max ? parseFloat(this.input.max) : 100;\n\n return html`<div class=\"datalist-labels\">\n ${options.map(option => {\n const value = parseFloat(option.value);\n const position = ((value - min) / (max - min)) * 100;\n const style =\n this.orientation === 'vertical'\n ? `bottom: ${position}%; transform: translateY(${position}%)`\n : `left: ${position}%; transform: translateX(-${position}%)`;\n return html`<span class=\"datalist-tick\" style=${style}>${option.textContent || value}</span>`;\n })}\n </div>`;\n }\n}\n"],"mappings":";;;;;;;;;AA4BA,IAAa,IAAb,cAA2B,EAAQ;;kCASmD;;;gBARpE,EAAU,CAAC,GAAG,EAAQ,QAAQ,EAAO,CAAC;;;kBAE3B;GACzB,KAAK;GACL,SAAS;GACV;;CAKD,oBAAoB;EAGlB,AAFA,MAAM,mBAAmB,EACzB,EAAoB,MAAM,EAAa,EACvC,KAAK,WAAW,kBAAkB,KAAK;;CAGzC,aAAa,GAA6B;EAIxC,AAHA,MAAM,aAAa,EAAM,EACzB,KAAKA,IAAgB,EACrB,KAAK,MAAM,iBAAiB,eAAe,KAAKA,IAAgB,CAAC,EACjE,EAAiB,KAAK,OAAO,UAAU,MAAmB,KAAKA,GAAe,EAAgB,CAAC;;CAGjG,QAAQ,GAA6B;EAEnC,AADA,MAAM,QAAQ,EAAM,EAChB,EAAM,IAAI,cAAc,KAC1B,KAAK,WAAW,kBAAkB,KAAK;;CAI3C,GAAe,GAAc;EAC3B,IAAM,IAAQ,KAAO,KAAK,MAAM,eAC1B,IAAM,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,IAAI,GAAG,GACpD,IAAM,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,IAAI,GAAG;EAC1D,KAAK,MAAM,YAAY,iBAAiB,GAAG,KAAK,OAAQ,IAAQ,MAAQ,IAAM,KAAQ,IAAI,GAAG,MAAM;;CAGrG,IAAc,gBAAgB;EAC5B,IAAM,IAAY,IAAiE,OAAtD,KAAK,cAAmC,WAAW;EAChF,OAAO,IAAW,KAAKC,GAAqB,EAAS,GAAG;;CAG1D,GAAqB,GAA+B;EAClD,IAAM,IAAU,MAAM,KAAK,EAAS,QAAQ,EACtC,IAAM,KAAK,OAAO,MAAM,WAAW,KAAK,MAAM,IAAI,GAAG,GACrD,IAAM,KAAK,OAAO,MAAM,WAAW,KAAK,MAAM,IAAI,GAAG;EAE3D,OAAO,CAAI,gCACP,EAAQ,KAAI,MAAU;GACtB,IAAM,IAAQ,WAAW,EAAO,MAAM,EAChC,KAAa,IAAQ,MAAQ,IAAM,KAAQ;GAKjD,OAAO,CAAI,sCAHT,KAAK,gBAAgB,aACjB,WAAW,EAAS,2BAA2B,EAAS,MACxD,SAAS,EAAS,4BAA4B,EAAS,IACP,IAAG,EAAO,eAAe,EAAM;IACrF,CAAC;;;GAhDN,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,eAAA,KAAA,EAAA"}
1
+ {"version":3,"file":"range2.js","names":["#setTrackWidth","#renderDatalistTicks"],"sources":["../../src/range/range.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { appendRootNodeStyle, getElementUpdate, useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { property } from 'lit/decorators/property.js';\nimport globalStyles from './range.global.css?inline';\nimport styles from './range.css?inline';\nimport type { PropertyValues } from 'lit';\nimport { html, nothing, isServer } from 'lit';\n/**\n * @element nve-range\n * @description A range slider is a control that enables users to choose a value from a continuous range of values.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/range\n * @cssprop --background\n * @cssprop --control-height\n * @cssprop --cursor\n * @cssprop --track-width\n * @cssprop --track-height\n * @cssprop --track-border-radius\n * @cssprop --track-background\n * @cssprop --thumb-width\n * @cssprop --thumb-height\n * @cssprop --thumb-background\n * @cssprop --thumb-border\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/slider/\n */\nexport class Range extends Control {\n static styles = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-range',\n version: '0.0.0'\n };\n\n /** Determines the orientation of the range slider. */\n @property({ type: String, reflect: true }) orientation: 'vertical' | 'horizontal' = 'horizontal';\n\n connectedCallback() {\n super.connectedCallback();\n appendRootNodeStyle(this, globalStyles);\n this._internals.ariaOrientation = this.orientation;\n }\n\n firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n this.#setTrackWidth();\n this.input.addEventListener('input', () => this.#setTrackWidth());\n getElementUpdate(this.input, 'value', (value: unknown) => this.#setTrackWidth(value as number));\n }\n\n updated(props: PropertyValues<this>) {\n super.updated(props);\n if (props.has('orientation')) {\n this._internals.ariaOrientation = this.orientation;\n }\n }\n\n #setTrackWidth(val?: number) {\n const value = val ?? this.input.valueAsNumber;\n const min = this.input.min ? parseFloat(this.input.min) : 0;\n const max = this.input.max ? parseFloat(this.input.max) : 100;\n this.style.setProperty('--track-width', `${Math.floor(((value - min) / (max - min)) * 100) / 100}`);\n }\n\n protected get suffixContent() {\n const datalist = !isServer ? this.querySelector<HTMLDataListElement>('datalist') : null;\n return datalist ? this.#renderDatalistTicks(datalist) : nothing;\n }\n\n #renderDatalistTicks(datalist: HTMLDataListElement) {\n const options = Array.from(datalist.options);\n const min = this.input?.min ? parseFloat(this.input.min) : 0;\n const max = this.input?.max ? parseFloat(this.input.max) : 100;\n\n return html`<div class=\"datalist-labels\">\n ${options.map(option => {\n const value = parseFloat(option.value);\n const position = ((value - min) / (max - min)) * 100;\n const style =\n this.orientation === 'vertical'\n ? `bottom: ${position}%; transform: translateY(${position}%)`\n : `left: ${position}%; transform: translateX(-${position}%)`;\n return html`<span class=\"datalist-tick\" style=${style}>${option.textContent || value}</span>`;\n })}\n </div>`;\n }\n}\n"],"mappings":";;;;;;;;;AA4BA,IAAa,IAAb,cAA2B,EAAQ;;kCASmD;;;gBARpE,EAAU,CAAC,GAAG,EAAQ,QAAQ,CAAM,CAAC;;;kBAE1B;GACzB,KAAK;GACL,SAAS;EACX;;CAKA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxB,EAAoB,MAAM,CAAY,GACtC,KAAK,WAAW,kBAAkB,KAAK;CACzC;CAEA,aAAa,GAA6B;EAIxC,AAHA,MAAM,aAAa,CAAK,GACxB,KAAKA,GAAe,GACpB,KAAK,MAAM,iBAAiB,eAAe,KAAKA,GAAe,CAAC,GAChE,EAAiB,KAAK,OAAO,UAAU,MAAmB,KAAKA,GAAe,CAAe,CAAC;CAChG;CAEA,QAAQ,GAA6B;EAEnC,AADA,MAAM,QAAQ,CAAK,GACf,EAAM,IAAI,aAAa,MACzB,KAAK,WAAW,kBAAkB,KAAK;CAE3C;CAEA,GAAe,GAAc;EAC3B,IAAM,IAAQ,KAAO,KAAK,MAAM,eAC1B,IAAM,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,GAAG,IAAI,GACpD,IAAM,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,GAAG,IAAI;EAC1D,KAAK,MAAM,YAAY,iBAAiB,GAAG,KAAK,OAAQ,IAAQ,MAAQ,IAAM,KAAQ,GAAG,IAAI,KAAK;CACpG;CAEA,IAAc,gBAAgB;EAC5B,IAAM,IAAY,IAAiE,OAAtD,KAAK,cAAmC,UAAU;EAC/E,OAAO,IAAW,KAAKC,GAAqB,CAAQ,IAAI;CAC1D;CAEA,GAAqB,GAA+B;EAClD,IAAM,IAAU,MAAM,KAAK,EAAS,OAAO,GACrC,IAAM,KAAK,OAAO,MAAM,WAAW,KAAK,MAAM,GAAG,IAAI,GACrD,IAAM,KAAK,OAAO,MAAM,WAAW,KAAK,MAAM,GAAG,IAAI;EAE3D,OAAO,CAAI,gCACP,EAAQ,KAAI,MAAU;GACtB,IAAM,IAAQ,WAAW,EAAO,KAAK,GAC/B,KAAa,IAAQ,MAAQ,IAAM,KAAQ;GAKjD,OAAO,CAAI,sCAHT,KAAK,gBAAgB,aACjB,WAAW,EAAS,2BAA2B,EAAS,MACxD,SAAS,EAAS,4BAA4B,EAAS,IACP,IAAG,EAAO,eAAe,EAAM;EACvF,CAAC,EAAE;CAEP;AACF;GAnDG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,eAAA,KAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/resize-handle/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { ResizeHandle } from '@nvidia-elements/core/resize-handle';\n\ndefine(ResizeHandle);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-resize-handle': ResizeHandle;\n }\n}\n"],"mappings":";;;AAMA,EAAO,EAAa"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/resize-handle/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { ResizeHandle } from '@nvidia-elements/core/resize-handle';\n\ndefine(ResizeHandle);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-resize-handle': ResizeHandle;\n }\n}\n"],"mappings":";;;AAMA,EAAO,CAAY"}
@@ -1,4 +1,4 @@
1
- import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
1
+ import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
2
2
  import { I18nController as t } from "../internal/controllers/i18n.controller.js";
3
3
  import { typeTouch as n } from "../internal/controllers/type-touch.controller.js";
4
4
  import { useStyles as r } from "../internal/styles/index.js";
@@ -18,7 +18,7 @@ var u = class extends l(a) {
18
18
  static {
19
19
  this.metadata = {
20
20
  tag: "nve-resize-handle",
21
- version: "0.1.1",
21
+ version: "0.1.2",
22
22
  valueSchema: { type: "number" }
23
23
  };
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resize-handle2.js","names":["#range","#setInput","#setChange","#i18nController","#offset","#touchStart","#touchEnd","#touchMove","#toggle","#updateValue"],"sources":["../../src/resize-handle/resize-handle.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement, type PropertyValues } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { property } from 'lit/decorators/property.js';\nimport { FormControlMixin } from '@nvidia-elements/forms/mixin';\nimport { useStyles, typeTouch } from '@nvidia-elements/core/internal';\nimport { I18nController, type NveTouchEvent } from '@nvidia-elements/core/internal';\nimport styles from './resize-handle.css?inline';\n\n/**\n * @element nve-resize-handle\n * @description A resize-handle slider is a control that enables users to resize views or panels vertically or horizontally.\n * @since 1.27.0\n * @entrypoint \\@nvidia-elements/core/resize-handle\n * @event toggle - Dispatched when the resize handle is double clicked.\n * @cssprop --background\n * @cssprop --line-width\n * @cssprop --target-size\n * @cssprop --cursor\n\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/slider/\n *\n */\n@typeTouch<ResizeHandle>()\nexport class ResizeHandle extends FormControlMixin<typeof LitElement, number>(LitElement) {\n /**\n * Determines the orientation direction of the resize handle.\n */\n @property({ type: String, reflect: true }) orientation?: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Determines the min resize value.\n */\n @property({ type: Number, reflect: true }) min = 0;\n\n /**\n * Determines the max resize value.\n */\n @property({ type: Number, reflect: true }) max = 100;\n\n /**\n * Determines the value step change.\n */\n @property({ type: Number, reflect: true }) step = 10;\n\n static styles = useStyles([styles]);\n\n get #range() {\n return this.shadowRoot!.querySelector('input')!;\n }\n\n static readonly metadata = {\n tag: 'nve-resize-handle',\n version: '0.0.0',\n valueSchema: {\n type: 'number' as const\n }\n };\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /**\n * Updates internal string values for internationalization.\n */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n #offset = 0;\n\n render() {\n return html`\n <div internal-host>\n <div class=\"line\" part=\"_line\"></div>\n <input aria-label=${ifDefined(this.ariaLabel ?? this.i18n.resize)} type=\"range\" min=${this.min} max=${this.max} .valueAsNumber=${this.valueAsNumber} @input=${(e: Event) => this.#setInput((e.target as HTMLInputElement).valueAsNumber)} @change=${(e: Event) => this.#setChange((e.target as HTMLInputElement).valueAsNumber)} step=${this.step} />\n </div>\n `;\n }\n\n constructor() {\n super();\n this.value = this.value ?? 50;\n this.#offset = this.valueAsNumber;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._internals.role = 'none';\n }\n\n firstUpdated(props: PropertyValues) {\n super.firstUpdated(props);\n this.addEventListener('nve-touch-start', () => this.#touchStart());\n this.addEventListener('nve-touch-end', () => this.#touchEnd());\n this.addEventListener('nve-touch-move', ((e: NveTouchEvent) => this.#touchMove(e)) as EventListener);\n this.addEventListener('dblclick', () => {\n if (!this.dispatchEvent(new CustomEvent('toggle', { cancelable: true, bubbles: true, composed: true }))) {\n return;\n }\n this.#toggle();\n });\n }\n\n #toggle() {\n const value = this.valueAsNumber <= this.max && this.valueAsNumber !== this.min ? this.min : this.max;\n this.#setInput(value);\n this.#setChange(value);\n }\n\n #touchStart() {\n this.#range.step = '1';\n this._internals.states.add('active');\n this.#offset = this.valueAsNumber;\n }\n\n #touchMove(e: NveTouchEvent) {\n const offset = (this.orientation === 'vertical' ? e.offsetX : -e.offsetY) * (this.dir === 'rtl' ? -1 : 1);\n this.#offset = this.#offset + offset;\n this.#setInput(this.#offset);\n }\n\n #touchEnd() {\n this.#offset = this.valueAsNumber;\n this.#range.step = `${this.step}`;\n this.#setChange(this.#offset);\n this._internals.states.delete('active');\n }\n\n #setInput(value: number) {\n this.#updateValue(value);\n this.dispatchInputEvent();\n }\n\n #setChange(value: number) {\n this.#updateValue(value);\n this.dispatchChangeEvent();\n }\n\n #updateValue(value: number) {\n if (value <= this.max && value >= this.min) {\n this.valueAsNumber = value;\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"resize-handle2.js","names":["#range","#setInput","#setChange","#i18nController","#offset","#touchStart","#touchEnd","#touchMove","#toggle","#updateValue"],"sources":["../../src/resize-handle/resize-handle.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement, type PropertyValues } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { property } from 'lit/decorators/property.js';\nimport { FormControlMixin } from '@nvidia-elements/forms/mixin';\nimport { useStyles, typeTouch } from '@nvidia-elements/core/internal';\nimport { I18nController, type NveTouchEvent } from '@nvidia-elements/core/internal';\nimport styles from './resize-handle.css?inline';\n\n/**\n * @element nve-resize-handle\n * @description A resize-handle slider is a control that enables users to resize views or panels vertically or horizontally.\n * @since 1.27.0\n * @entrypoint \\@nvidia-elements/core/resize-handle\n * @event toggle - Dispatched when the resize handle is double clicked.\n * @cssprop --background\n * @cssprop --line-width\n * @cssprop --target-size\n * @cssprop --cursor\n\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/slider/\n *\n */\n@typeTouch<ResizeHandle>()\nexport class ResizeHandle extends FormControlMixin<typeof LitElement, number>(LitElement) {\n /**\n * Determines the orientation direction of the resize handle.\n */\n @property({ type: String, reflect: true }) orientation?: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Determines the min resize value.\n */\n @property({ type: Number, reflect: true }) min = 0;\n\n /**\n * Determines the max resize value.\n */\n @property({ type: Number, reflect: true }) max = 100;\n\n /**\n * Determines the value step change.\n */\n @property({ type: Number, reflect: true }) step = 10;\n\n static styles = useStyles([styles]);\n\n get #range() {\n return this.shadowRoot!.querySelector('input')!;\n }\n\n static readonly metadata = {\n tag: 'nve-resize-handle',\n version: '0.0.0',\n valueSchema: {\n type: 'number' as const\n }\n };\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /**\n * Updates internal string values for internationalization.\n */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n #offset = 0;\n\n render() {\n return html`\n <div internal-host>\n <div class=\"line\" part=\"_line\"></div>\n <input aria-label=${ifDefined(this.ariaLabel ?? this.i18n.resize)} type=\"range\" min=${this.min} max=${this.max} .valueAsNumber=${this.valueAsNumber} @input=${(e: Event) => this.#setInput((e.target as HTMLInputElement).valueAsNumber)} @change=${(e: Event) => this.#setChange((e.target as HTMLInputElement).valueAsNumber)} step=${this.step} />\n </div>\n `;\n }\n\n constructor() {\n super();\n this.value = this.value ?? 50;\n this.#offset = this.valueAsNumber;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._internals.role = 'none';\n }\n\n firstUpdated(props: PropertyValues) {\n super.firstUpdated(props);\n this.addEventListener('nve-touch-start', () => this.#touchStart());\n this.addEventListener('nve-touch-end', () => this.#touchEnd());\n this.addEventListener('nve-touch-move', ((e: NveTouchEvent) => this.#touchMove(e)) as EventListener);\n this.addEventListener('dblclick', () => {\n if (!this.dispatchEvent(new CustomEvent('toggle', { cancelable: true, bubbles: true, composed: true }))) {\n return;\n }\n this.#toggle();\n });\n }\n\n #toggle() {\n const value = this.valueAsNumber <= this.max && this.valueAsNumber !== this.min ? this.min : this.max;\n this.#setInput(value);\n this.#setChange(value);\n }\n\n #touchStart() {\n this.#range.step = '1';\n this._internals.states.add('active');\n this.#offset = this.valueAsNumber;\n }\n\n #touchMove(e: NveTouchEvent) {\n const offset = (this.orientation === 'vertical' ? e.offsetX : -e.offsetY) * (this.dir === 'rtl' ? -1 : 1);\n this.#offset = this.#offset + offset;\n this.#setInput(this.#offset);\n }\n\n #touchEnd() {\n this.#offset = this.valueAsNumber;\n this.#range.step = `${this.step}`;\n this.#setChange(this.#offset);\n this._internals.states.delete('active');\n }\n\n #setInput(value: number) {\n this.#updateValue(value);\n this.dispatchInputEvent();\n }\n\n #setChange(value: number) {\n this.#updateValue(value);\n this.dispatchChangeEvent();\n }\n\n #updateValue(value: number) {\n if (value <= this.max && value >= this.min) {\n this.valueAsNumber = value;\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/search/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Search } from '@nvidia-elements/core/search';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Search);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-search': Search;\n }\n}\n"],"mappings":";;;;;AAOA,EAAO,EAAO,EACd,EAAO,EAAQ,EACf,EAAO,EAAa,EACpB,EAAO,EAAe"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/search/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Search } from '@nvidia-elements/core/search';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Search);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-search': Search;\n }\n}\n"],"mappings":";;;;;AAOA,EAAO,CAAM,GACb,EAAO,CAAO,GACd,EAAO,CAAY,GACnB,EAAO,CAAc"}
@@ -1,4 +1,4 @@
1
- import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
1
+ import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
2
2
  import { scopedRegistry as t } from "../internal/decorators/scoped-registry.js";
3
3
  import { useStyles as n } from "../internal/styles/index.js";
4
4
  import { Control as r } from "../forms/control/control2.js";
@@ -22,7 +22,7 @@ var l = class extends r {
22
22
  static {
23
23
  this.metadata = {
24
24
  tag: "nve-search",
25
- version: "0.1.1"
25
+ version: "0.1.2"
26
26
  };
27
27
  }
28
28
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"search2.js","names":[],"sources":["../../src/search/search.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport { scopedRegistry, useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { inputStyles } from '@nvidia-elements/core/input';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport styles from './search.css?inline';\n\n/**\n * @element nve-search\n * @description A search is a control that enables users to enter text to search.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/search\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --cursor\n * @csspart icon-button - The icon button element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search\n */\n@scopedRegistry()\nexport class Search extends Control implements ContainerElement {\n /**\n * Reduces the visual container for a minimal borderless appearance while preserving whitespace bounds.\n * Use when embedding within another container such as a toolbar.\n */\n @property({ type: String, reflect: true }) container?: 'flat';\n\n /**\n * Sets the rounded visual style of the input.\n */\n @property({ type: Boolean, reflect: true }) rounded = false;\n\n static styles = useStyles([...Control.styles, inputStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-search',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton\n };\n\n protected get prefixContent() {\n return html`<nve-icon-button part=\"icon-button\" icon-name=\"search\" container=\"inline\" aria-hidden=\"true\" readonly></nve-icon-button>`;\n }\n}\n"],"mappings":";;;;;;;;;;AA4BO,IAAA,IAAA,cAAqB,EAAoC;;8BAUR;;;gBAEtC,EAAU;GAAC,GAAG,EAAQ;GAAQ;GAAa;GAAO,CAAC;;;kBAExC;GACzB,KAAK;GACL,SAAS;GACV;;;4BAE2B,GACzB,EAAW,SAAS,MAAM,GAC5B;;CAED,IAAc,gBAAgB;EAC5B,OAAO,CAAI;;;GAnBZ,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,aAAA,KAAA,EAAA,KAKzC,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,WAAA,KAAA,EAAA,SAX5C,GAAgB,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"search2.js","names":[],"sources":["../../src/search/search.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport { scopedRegistry, useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { inputStyles } from '@nvidia-elements/core/input';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport styles from './search.css?inline';\n\n/**\n * @element nve-search\n * @description A search is a control that enables users to enter text to search.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/search\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --cursor\n * @csspart icon-button - The icon button element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search\n */\n@scopedRegistry()\nexport class Search extends Control implements ContainerElement {\n /**\n * Reduces the visual container for a minimal borderless appearance while preserving whitespace bounds.\n * Use when embedding within another container such as a toolbar.\n */\n @property({ type: String, reflect: true }) container?: 'flat';\n\n /**\n * Sets the rounded visual style of the input.\n */\n @property({ type: Boolean, reflect: true }) rounded = false;\n\n static styles = useStyles([...Control.styles, inputStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-search',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton\n };\n\n protected get prefixContent() {\n return html`<nve-icon-button part=\"icon-button\" icon-name=\"search\" container=\"inline\" aria-hidden=\"true\" readonly></nve-icon-button>`;\n }\n}\n"],"mappings":";;;;;;;;;;AA4BO,IAAA,IAAA,cAAqB,EAAoC;;8BAUR;;;gBAEtC,EAAU;GAAC,GAAG,EAAQ;GAAQ;GAAa;EAAM,CAAC;;;kBAEvC;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAW,SAAS,MAAM,EAC7B;;CAEA,IAAc,gBAAgB;EAC5B,OAAO,CAAI;CACb;AACF;GArBG,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,WAAA,KAAA,CAAA,UAX3C,EAAe,CAAA,GAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/select/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Select } from '@nvidia-elements/core/select';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Select);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-select': Select;\n }\n}\n"],"mappings":";;;;;AAOA,EAAO,EAAO,EACd,EAAO,EAAQ,EACf,EAAO,EAAa,EACpB,EAAO,EAAe"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/select/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Select } from '@nvidia-elements/core/select';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Select);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-select': Select;\n }\n}\n"],"mappings":";;;;;AAOA,EAAO,CAAM,GACb,EAAO,CAAO,GACd,EAAO,CAAY,GACnB,EAAO,CAAc"}
@@ -1,7 +1,7 @@
1
1
  import { focusElementTimeout as e, onListboxActivate as t } from "../internal/utils/focus.js";
2
2
  import { getElementUpdate as n } from "../internal/utils/dom.js";
3
3
  import { onChildListMutation as r } from "../internal/utils/events.js";
4
- import { __decorate as i } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
4
+ import { __decorate as i } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
5
5
  import { I18nController as a, i18n as o } from "../internal/controllers/i18n.controller.js";
6
6
  import { scopedRegistry as s } from "../internal/decorators/scoped-registry.js";
7
7
  import { useStyles as c } from "../internal/styles/index.js";
@@ -26,7 +26,7 @@ var b = class extends u {
26
26
  static {
27
27
  this.metadata = {
28
28
  tag: "nve-select",
29
- version: "0.1.1"
29
+ version: "0.1.2"
30
30
  };
31
31
  }
32
32
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"select2.js","names":["#i18nController","#select","#options","#dropdown","#menuItems","#input","#tags","#caret","#placeholderOption","#multipleSelectLabel","#selectValue","#menu","#closeDropdown","#openDropdown","#setupCustomSelectUI","#setupOverflowListener","#syncSelectValueStates","#syncOptionSelectedStates","#observers","#trackedOptions","#updateMultipleOverflow"],"sources":["../../src/select/select.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport {\n focusElementTimeout,\n onListboxActivate,\n useStyles,\n i18n,\n I18nController,\n onChildListMutation,\n getElementUpdate,\n scopedRegistry\n} from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport { Menu, MenuItem } from '@nvidia-elements/core/menu';\nimport { Dropdown } from '@nvidia-elements/core/dropdown';\nimport { Tag } from '@nvidia-elements/core/tag';\nimport styles from './select.css?inline';\n\n/**\n * @element nve-select\n * @description A select is a control that enables users to select an option from a list of options.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/select\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --border-bottom\n * @cssprop --cursor\n * @cssprop --font-weight\n * @cssprop --text-align\n * @cssprop --scroll-height\n * @cssprop --width\n * @cssprop --control-width\n * @cssprop --max-width\n * @cssprop --min-width\n * @cssprop --box-shadow\n * @cssprop --max-height\n * @cssprop --text-transform\n * @csspart tag\n * @csspart menu - The dropdown menu element\n * @csspart menu-item - The menu item elements\n * @csspart icon - The icon element\n * @csspart caret - The caret/chevron icon element\n * @csspart dropdown - The dropdown popup element\n * @slot - Select input element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select\n */\n@i18n<Select>()\n@scopedRegistry()\nexport class Select extends Control {\n static styles = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-select',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon,\n [Dropdown.metadata.tag]: Dropdown,\n [Menu.metadata.tag]: Menu,\n [MenuItem.metadata.tag]: MenuItem,\n [Tag.metadata.tag]: Tag\n };\n\n /** Flat container option applies when embedding the component within another containing element */\n @property({ type: String, reflect: true }) container?: 'flat' | 'inline';\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Updates internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n get #select() {\n return this.input as unknown as HTMLSelectElement;\n }\n\n get #options() {\n return Array.from(this.#select?.options ? this.#select.options : []);\n }\n\n get #dropdown() {\n return this.shadowRoot!.querySelector<Dropdown>(Dropdown.metadata.tag);\n }\n\n get #menuItems() {\n return this.shadowRoot!.querySelectorAll<MenuItem>(MenuItem.metadata.tag);\n }\n\n get #input() {\n return this.shadowRoot!.querySelector<HTMLElement>('[input]');\n }\n\n get #tags() {\n return this.shadowRoot!.querySelector('.tags');\n }\n\n get #caret() {\n return this.shadowRoot!.querySelector<Icon>('[name=\"caret\"]');\n }\n\n get #placeholderOption() {\n return this.#options.find(o => o.selected && o.hidden && o.disabled);\n }\n\n #observers: (MutationObserver | ResizeObserver)[] = [];\n\n get #multipleSelectLabel() {\n const option = this.#placeholderOption;\n const label = option ? option.innerText : `${this.#select.selectedOptions.length} ${this.i18n.selected}`;\n return html`<div class=\"tags-label ${option ? 'placeholder' : ''}\" aria-hidden=\"true\">${label}</div>`;\n }\n\n protected get prefixContent() {\n return this.#select?.multiple && this.#select?.size === 0\n ? html`\n ${this.#multipleSelectLabel}\n <div class=\"tags\">\n ${this.#options\n .filter(o => o.selected && o !== this.#placeholderOption)\n .map(\n o => html`\n <nve-tag part=\"tag\" readonly color=\"gray-slate\" closable .value=${o.value} @click=${() => this.#selectValue(o, false)}>${o.textContent}</nve-tag>`\n )}\n </div>`\n : nothing;\n }\n\n get #menu() {\n return html`\n <nve-menu part=\"menu\" role=\"listbox\" style=\"--width: 100%; --min-width: fit-content\" aria-label=${ifDefined(this.i18n.select)}>\n ${this.#options\n .filter(o => o !== this.#placeholderOption)\n .map(\n (o, i) => html`\n <nve-menu-item part=\"menu-item\" role=\"option\" @click=${() => this.#selectValue(o, !o.selected)} ?selected=${o.selected} ?disabled=${o.disabled} ?hidden=${!!o.hidden} aria-selected=${o.selected}>\n <slot name=\"option-${i + 1}\">\n <nve-icon part=\"icon\" name=\"check\" size=\"sm\" aria-hidden=\"true\"></nve-icon> ${o.innerText}\n </slot>\n </nve-menu-item>`\n )}\n </nve-menu>`;\n }\n\n protected get suffixContent() {\n return this.#select?.size === 0\n ? html`\n <nve-icon name=\"caret\" part=\"caret\" direction=\"down\" size=\"sm\" aria-hidden=\"true\"></nve-icon>\n <nve-dropdown part=\"dropdown\" @close=${this.#closeDropdown} @open=${this.#openDropdown} hidden .anchor=${this.#input as HTMLElement} .trigger=${this.#input as HTMLElement} position=\"bottom\">\n ${this.#menu}\n </nve-dropdown>`\n : this.#menu;\n }\n\n async firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n await this.updateComplete;\n this.#setupCustomSelectUI();\n this.#setupOverflowListener();\n this.#syncSelectValueStates();\n this.#syncOptionSelectedStates();\n }\n\n #syncSelectValueStates() {\n this.#observers.push(\n getElementUpdate(this.#select, 'value', () => this.requestUpdate()),\n onChildListMutation(this.#select, () => this.requestUpdate(), { attributes: true, subtree: true }),\n onChildListMutation(this.#select, () => this.#syncOptionSelectedStates(), { subtree: true })\n );\n }\n\n #trackedOptions = new Set();\n #syncOptionSelectedStates() {\n this.#options.forEach(o => {\n if (!this.#trackedOptions.has(o)) {\n this.#trackedOptions.add(o);\n this.#observers.push(getElementUpdate(o, 'selected', () => this.requestUpdate()));\n }\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#observers.forEach(observer => observer.disconnect());\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n if (this.#select?.size && this.#select?.size !== 0) {\n this._internals.states.add('size');\n this.style.setProperty('--size', `${this.#select?.size + 0.75}`);\n }\n\n if (this.#select?.multiple && this.#select?.size === 0) {\n this._internals.states.add('multiple');\n }\n }\n\n #setupCustomSelectUI() {\n if (this.#select?.size === 0) {\n onListboxActivate(this.#select, () => {\n this.requestUpdate(); // update menu items\n this.#dropdown!.style.setProperty('--min-width', `${this.#input!.getBoundingClientRect().width}px`);\n this.#dropdown!.showPopover();\n focusElementTimeout(this.#menuItems[0] as HTMLElement);\n });\n }\n }\n\n #openDropdown() {\n this.#dropdown!.hidden = false;\n this.#caret!.direction = 'up';\n }\n\n #closeDropdown() {\n this.#dropdown!.hidden = true;\n this.#caret!.direction = 'down';\n }\n\n #setupOverflowListener() {\n const observer = new ResizeObserver(entries => this.#updateMultipleOverflow(entries[0]!.contentRect.width));\n this.#observers.push(observer);\n observer.observe(this.#input!);\n }\n\n async #selectValue(option: HTMLOptionElement, selected: boolean) {\n if (this.#select.multiple || (!this.#select.multiple && option.value !== this.#select.value)) {\n option.selected = selected;\n }\n\n // native select only the first selected option determines the select input value\n if (this.#select.selectedOptions.length < 1) {\n this.#select.value = selected ? option.value : '';\n }\n\n this.#select.dispatchEvent(new Event('input', { bubbles: true }));\n this.#select.dispatchEvent(new Event('change', { bubbles: true }));\n this.requestUpdate();\n\n if (!this.#select.multiple && this.#dropdown) {\n this.#dropdown.hidePopover();\n } else {\n await this.updateComplete;\n this.#updateMultipleOverflow(this.#input!.getBoundingClientRect().width);\n }\n }\n\n #updateMultipleOverflow(width: number) {\n const tags = this.#tags;\n if (this.#select?.multiple && tags && tags.getBoundingClientRect().width > width - 48) {\n this._internals.states.add('multiple-overflow');\n } else {\n this._internals.states.delete('multiple-overflow');\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"select2.js","names":["#i18nController","#select","#options","#dropdown","#menuItems","#input","#tags","#caret","#placeholderOption","#multipleSelectLabel","#selectValue","#menu","#closeDropdown","#openDropdown","#setupCustomSelectUI","#setupOverflowListener","#syncSelectValueStates","#syncOptionSelectedStates","#observers","#trackedOptions","#updateMultipleOverflow"],"sources":["../../src/select/select.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport {\n focusElementTimeout,\n onListboxActivate,\n useStyles,\n i18n,\n I18nController,\n onChildListMutation,\n getElementUpdate,\n scopedRegistry\n} from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport { Menu, MenuItem } from '@nvidia-elements/core/menu';\nimport { Dropdown } from '@nvidia-elements/core/dropdown';\nimport { Tag } from '@nvidia-elements/core/tag';\nimport styles from './select.css?inline';\n\n/**\n * @element nve-select\n * @description A select is a control that enables users to select an option from a list of options.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/select\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --border-bottom\n * @cssprop --cursor\n * @cssprop --font-weight\n * @cssprop --text-align\n * @cssprop --scroll-height\n * @cssprop --width\n * @cssprop --control-width\n * @cssprop --max-width\n * @cssprop --min-width\n * @cssprop --box-shadow\n * @cssprop --max-height\n * @cssprop --text-transform\n * @csspart tag\n * @csspart menu - The dropdown menu element\n * @csspart menu-item - The menu item elements\n * @csspart icon - The icon element\n * @csspart caret - The caret/chevron icon element\n * @csspart dropdown - The dropdown popup element\n * @slot - Select input element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select\n */\n@i18n<Select>()\n@scopedRegistry()\nexport class Select extends Control {\n static styles = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-select',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon,\n [Dropdown.metadata.tag]: Dropdown,\n [Menu.metadata.tag]: Menu,\n [MenuItem.metadata.tag]: MenuItem,\n [Tag.metadata.tag]: Tag\n };\n\n /** Flat container option applies when embedding the component within another containing element */\n @property({ type: String, reflect: true }) container?: 'flat' | 'inline';\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Updates internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n get #select() {\n return this.input as unknown as HTMLSelectElement;\n }\n\n get #options() {\n return Array.from(this.#select?.options ? this.#select.options : []);\n }\n\n get #dropdown() {\n return this.shadowRoot!.querySelector<Dropdown>(Dropdown.metadata.tag);\n }\n\n get #menuItems() {\n return this.shadowRoot!.querySelectorAll<MenuItem>(MenuItem.metadata.tag);\n }\n\n get #input() {\n return this.shadowRoot!.querySelector<HTMLElement>('[input]');\n }\n\n get #tags() {\n return this.shadowRoot!.querySelector('.tags');\n }\n\n get #caret() {\n return this.shadowRoot!.querySelector<Icon>('[name=\"caret\"]');\n }\n\n get #placeholderOption() {\n return this.#options.find(o => o.selected && o.hidden && o.disabled);\n }\n\n #observers: (MutationObserver | ResizeObserver)[] = [];\n\n get #multipleSelectLabel() {\n const option = this.#placeholderOption;\n const label = option ? option.innerText : `${this.#select.selectedOptions.length} ${this.i18n.selected}`;\n return html`<div class=\"tags-label ${option ? 'placeholder' : ''}\" aria-hidden=\"true\">${label}</div>`;\n }\n\n protected get prefixContent() {\n return this.#select?.multiple && this.#select?.size === 0\n ? html`\n ${this.#multipleSelectLabel}\n <div class=\"tags\">\n ${this.#options\n .filter(o => o.selected && o !== this.#placeholderOption)\n .map(\n o => html`\n <nve-tag part=\"tag\" readonly color=\"gray-slate\" closable .value=${o.value} @click=${() => this.#selectValue(o, false)}>${o.textContent}</nve-tag>`\n )}\n </div>`\n : nothing;\n }\n\n get #menu() {\n return html`\n <nve-menu part=\"menu\" role=\"listbox\" style=\"--width: 100%; --min-width: fit-content\" aria-label=${ifDefined(this.i18n.select)}>\n ${this.#options\n .filter(o => o !== this.#placeholderOption)\n .map(\n (o, i) => html`\n <nve-menu-item part=\"menu-item\" role=\"option\" @click=${() => this.#selectValue(o, !o.selected)} ?selected=${o.selected} ?disabled=${o.disabled} ?hidden=${!!o.hidden} aria-selected=${o.selected}>\n <slot name=\"option-${i + 1}\">\n <nve-icon part=\"icon\" name=\"check\" size=\"sm\" aria-hidden=\"true\"></nve-icon> ${o.innerText}\n </slot>\n </nve-menu-item>`\n )}\n </nve-menu>`;\n }\n\n protected get suffixContent() {\n return this.#select?.size === 0\n ? html`\n <nve-icon name=\"caret\" part=\"caret\" direction=\"down\" size=\"sm\" aria-hidden=\"true\"></nve-icon>\n <nve-dropdown part=\"dropdown\" @close=${this.#closeDropdown} @open=${this.#openDropdown} hidden .anchor=${this.#input as HTMLElement} .trigger=${this.#input as HTMLElement} position=\"bottom\">\n ${this.#menu}\n </nve-dropdown>`\n : this.#menu;\n }\n\n async firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n await this.updateComplete;\n this.#setupCustomSelectUI();\n this.#setupOverflowListener();\n this.#syncSelectValueStates();\n this.#syncOptionSelectedStates();\n }\n\n #syncSelectValueStates() {\n this.#observers.push(\n getElementUpdate(this.#select, 'value', () => this.requestUpdate()),\n onChildListMutation(this.#select, () => this.requestUpdate(), { attributes: true, subtree: true }),\n onChildListMutation(this.#select, () => this.#syncOptionSelectedStates(), { subtree: true })\n );\n }\n\n #trackedOptions = new Set();\n #syncOptionSelectedStates() {\n this.#options.forEach(o => {\n if (!this.#trackedOptions.has(o)) {\n this.#trackedOptions.add(o);\n this.#observers.push(getElementUpdate(o, 'selected', () => this.requestUpdate()));\n }\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#observers.forEach(observer => observer.disconnect());\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n if (this.#select?.size && this.#select?.size !== 0) {\n this._internals.states.add('size');\n this.style.setProperty('--size', `${this.#select?.size + 0.75}`);\n }\n\n if (this.#select?.multiple && this.#select?.size === 0) {\n this._internals.states.add('multiple');\n }\n }\n\n #setupCustomSelectUI() {\n if (this.#select?.size === 0) {\n onListboxActivate(this.#select, () => {\n this.requestUpdate(); // update menu items\n this.#dropdown!.style.setProperty('--min-width', `${this.#input!.getBoundingClientRect().width}px`);\n this.#dropdown!.showPopover();\n focusElementTimeout(this.#menuItems[0] as HTMLElement);\n });\n }\n }\n\n #openDropdown() {\n this.#dropdown!.hidden = false;\n this.#caret!.direction = 'up';\n }\n\n #closeDropdown() {\n this.#dropdown!.hidden = true;\n this.#caret!.direction = 'down';\n }\n\n #setupOverflowListener() {\n const observer = new ResizeObserver(entries => this.#updateMultipleOverflow(entries[0]!.contentRect.width));\n this.#observers.push(observer);\n observer.observe(this.#input!);\n }\n\n async #selectValue(option: HTMLOptionElement, selected: boolean) {\n if (this.#select.multiple || (!this.#select.multiple && option.value !== this.#select.value)) {\n option.selected = selected;\n }\n\n // native select only the first selected option determines the select input value\n if (this.#select.selectedOptions.length < 1) {\n this.#select.value = selected ? option.value : '';\n }\n\n this.#select.dispatchEvent(new Event('input', { bubbles: true }));\n this.#select.dispatchEvent(new Event('change', { bubbles: true }));\n this.requestUpdate();\n\n if (!this.#select.multiple && this.#dropdown) {\n this.#dropdown.hidePopover();\n } else {\n await this.updateComplete;\n this.#updateMultipleOverflow(this.#input!.getBoundingClientRect().width);\n }\n }\n\n #updateMultipleOverflow(width: number) {\n const tags = this.#tags;\n if (this.#select?.multiple && tags && tags.getBoundingClientRect().width > width - 48) {\n this._internals.states.add('multiple-overflow');\n } else {\n this._internals.states.delete('multiple-overflow');\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/skeleton/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Skeleton } from '@nvidia-elements/core/skeleton';\n\ndefine(Skeleton);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-skeleton': Skeleton;\n }\n}\n"],"mappings":";;;AAMA,EAAO,EAAS"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/skeleton/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Skeleton } from '@nvidia-elements/core/skeleton';\n\ndefine(Skeleton);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-skeleton': Skeleton;\n }\n}\n"],"mappings":";;;AAMA,EAAO,CAAQ"}
@@ -1,5 +1,5 @@
1
1
  import { attachInternals as e } from "../internal/utils/a11y.js";
2
- import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
2
+ import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
3
3
  import { useStyles as n } from "../internal/styles/index.js";
4
4
  import r from "./skeleton.js";
5
5
  import { LitElement as i, html as a } from "lit";
@@ -15,7 +15,7 @@ var s = class extends i {
15
15
  static {
16
16
  this.metadata = {
17
17
  tag: "nve-skeleton",
18
- version: "0.1.1"
18
+ version: "0.1.2"
19
19
  };
20
20
  }
21
21
  render() {
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton2.js","names":["#slotchange"],"sources":["../../src/skeleton/skeleton.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { attachInternals, useStyles } from '@nvidia-elements/core/internal';\nimport styles from './skeleton.css?inline';\n\n/**\n * @element nve-skeleton\n * @description A loading placeholder component that displays animated placeholder shapes while content loads.\n * @since 1.44.0\n * @entrypoint \\@nvidia-elements/core/skeleton\n * @slot - default content slot\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --min-height\n * @aria https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-live\n */\nexport class Skeleton extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-skeleton',\n version: '0.0.0'\n };\n\n /** Visual animation style shown while content loads. */\n @property({ type: String, reflect: true }) effect: 'shimmer' | 'pulse';\n\n /** Geometry of the placeholder — rounded corners or a full pill outline. */\n @property({ type: String, reflect: true }) shape: 'round' | 'pill';\n\n /** Whether the skeleton hides its content */\n @property({ type: Boolean, reflect: true }) hidden = false;\n\n /** @private */\n declare _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host>\n <div class=\"animate\"></div>\n <slot @slotchange=${this.#slotchange}></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.ariaBusy = 'true';\n }\n\n updated(props: PropertyValues<this>) {\n super.updated(props);\n this._internals.ariaBusy = `${!this.hidden}`;\n }\n\n #slotchange(event: Event) {\n const target = event.target as HTMLSlotElement;\n const hasContent = target\n .assignedNodes()\n .some(\n node =>\n node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')\n );\n\n if (hasContent) {\n this._internals.states.add('slotted');\n } else {\n this._internals.states.delete('slotted');\n }\n }\n}\n"],"mappings":";;;;;;;AAmBA,IAAa,IAAb,cAA8B,EAAW;;6BAec;;;gBAdrC,EAAU,CAAC,EAAO,CAAC;;;kBAER;GACzB,KAAK;GACL,SAAS;GACV;;CAcD,SAAS;EACP,OAAO,CAAI,oEAGa,KAAKA,GAAY;;CAK3C,oBAAoB;EAGlB,AAFA,MAAM,mBAAmB,EACzB,EAAgB,KAAK,EACrB,KAAK,WAAW,WAAW;;CAG7B,QAAQ,GAA6B;EAEnC,AADA,MAAM,QAAQ,EAAM,EACpB,KAAK,WAAW,WAAW,GAAG,CAAC,KAAK;;CAGtC,GAAY,GAAc;EASxB,AARe,EAAM,OAElB,eAAe,CACf,MACC,MACE,EAAK,aAAa,KAAK,gBAAiB,EAAK,aAAa,KAAK,aAAa,EAAK,aAAa,MAAM,KAAK,GAG3G,GACF,KAAK,WAAW,OAAO,IAAI,UAAU,GAErC,KAAK,WAAW,OAAO,OAAO,UAAU;;;GA3C3C,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,UAAA,KAAA,EAAA,KAGzC,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,SAAA,KAAA,EAAA,KAGzC,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,UAAA,KAAA,EAAA"}
1
+ {"version":3,"file":"skeleton2.js","names":["#slotchange"],"sources":["../../src/skeleton/skeleton.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { attachInternals, useStyles } from '@nvidia-elements/core/internal';\nimport styles from './skeleton.css?inline';\n\n/**\n * @element nve-skeleton\n * @description A loading placeholder component that displays animated placeholder shapes while content loads.\n * @since 1.44.0\n * @entrypoint \\@nvidia-elements/core/skeleton\n * @slot - default content slot\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --min-height\n * @aria https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-live\n */\nexport class Skeleton extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-skeleton',\n version: '0.0.0'\n };\n\n /** Visual animation style shown while content loads. */\n @property({ type: String, reflect: true }) effect: 'shimmer' | 'pulse';\n\n /** Geometry of the placeholder — rounded corners or a full pill outline. */\n @property({ type: String, reflect: true }) shape: 'round' | 'pill';\n\n /** Whether the skeleton hides its content */\n @property({ type: Boolean, reflect: true }) hidden = false;\n\n /** @private */\n declare _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host>\n <div class=\"animate\"></div>\n <slot @slotchange=${this.#slotchange}></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.ariaBusy = 'true';\n }\n\n updated(props: PropertyValues<this>) {\n super.updated(props);\n this._internals.ariaBusy = `${!this.hidden}`;\n }\n\n #slotchange(event: Event) {\n const target = event.target as HTMLSlotElement;\n const hasContent = target\n .assignedNodes()\n .some(\n node =>\n node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')\n );\n\n if (hasContent) {\n this._internals.states.add('slotted');\n } else {\n this._internals.states.delete('slotted');\n }\n }\n}\n"],"mappings":";;;;;;;AAmBA,IAAa,IAAb,cAA8B,EAAW;;6BAec;;;gBAdrC,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;EACX;;CAcA,SAAS;EACP,OAAO,CAAI,oEAGa,KAAKA,GAAY;CAG3C;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,WAAW;CAC7B;CAEA,QAAQ,GAA6B;EAEnC,AADA,MAAM,QAAQ,CAAK,GACnB,KAAK,WAAW,WAAW,GAAG,CAAC,KAAK;CACtC;CAEA,GAAY,GAAc;EASxB,AARe,EAAM,OAElB,cAAc,EACd,MACC,MACE,EAAK,aAAa,KAAK,gBAAiB,EAAK,aAAa,KAAK,aAAa,EAAK,aAAa,KAAK,MAAM,EAG3G,IACF,KAAK,WAAW,OAAO,IAAI,SAAS,IAEpC,KAAK,WAAW,OAAO,OAAO,SAAS;CAE3C;AACF;GA9CG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MAGxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,MAGxC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/sort-button/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { SortButton } from '@nvidia-elements/core/sort-button';\n\ndefine(SortButton);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-sort-button': SortButton;\n }\n}\n"],"mappings":";;;AAMA,EAAO,EAAW"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/sort-button/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { SortButton } from '@nvidia-elements/core/sort-button';\n\ndefine(SortButton);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-sort-button': SortButton;\n }\n}\n"],"mappings":";;;AAMA,EAAO,CAAU"}