@nvidia-elements/core 2.20.1 → 2.20.3

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 (1563) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.155.0}/helpers/esm/decorate.js +1 -2
  3. package/dist/_virtual/_rolldown/runtime.js +1 -2
  4. package/dist/accordion/accordion-content.js +1 -2
  5. package/dist/accordion/accordion-content.js.map +1 -1
  6. package/dist/accordion/accordion-group.js +1 -2
  7. package/dist/accordion/accordion-group.js.map +1 -1
  8. package/dist/accordion/accordion-header.js +1 -2
  9. package/dist/accordion/accordion-header.js.map +1 -1
  10. package/dist/accordion/accordion.examples.js +1 -2
  11. package/dist/accordion/accordion.examples.js.map +1 -1
  12. package/dist/accordion/accordion.js +1 -2
  13. package/dist/accordion/accordion.js.map +1 -1
  14. package/dist/accordion/accordion2.js +7 -8
  15. package/dist/accordion/accordion2.js.map +1 -1
  16. package/dist/accordion/define.js +0 -1
  17. package/dist/accordion/define.js.map +1 -1
  18. package/dist/accordion/index.js +1 -2
  19. package/dist/alert/alert-group.js +1 -2
  20. package/dist/alert/alert-group.js.map +1 -1
  21. package/dist/alert/alert-group2.js +3 -4
  22. package/dist/alert/alert-group2.js.map +1 -1
  23. package/dist/alert/alert.examples.js +1 -2
  24. package/dist/alert/alert.examples.js.map +1 -1
  25. package/dist/alert/alert.global.js +1 -2
  26. package/dist/alert/alert.global.js.map +1 -1
  27. package/dist/alert/alert.js +1 -2
  28. package/dist/alert/alert.js.map +1 -1
  29. package/dist/alert/alert2.js +3 -4
  30. package/dist/alert/alert2.js.map +1 -1
  31. package/dist/alert/define.js +0 -1
  32. package/dist/alert/define.js.map +1 -1
  33. package/dist/avatar/avatar-group.js +1 -2
  34. package/dist/avatar/avatar-group.js.map +1 -1
  35. package/dist/avatar/avatar-group2.js +2 -3
  36. package/dist/avatar/avatar-group2.js.map +1 -1
  37. package/dist/avatar/avatar.examples.js +1 -2
  38. package/dist/avatar/avatar.examples.js.map +1 -1
  39. package/dist/avatar/avatar.js +1 -2
  40. package/dist/avatar/avatar.js.map +1 -1
  41. package/dist/avatar/avatar2.js +3 -4
  42. package/dist/avatar/avatar2.js.map +1 -1
  43. package/dist/avatar/define.js +0 -1
  44. package/dist/avatar/define.js.map +1 -1
  45. package/dist/badge/badge.examples.js +1 -2
  46. package/dist/badge/badge.examples.js.map +1 -1
  47. package/dist/badge/badge.js +1 -2
  48. package/dist/badge/badge.js.map +1 -1
  49. package/dist/badge/badge2.js +3 -4
  50. package/dist/badge/badge2.js.map +1 -1
  51. package/dist/badge/define.js +1 -2
  52. package/dist/badge/define.js.map +1 -1
  53. package/dist/badge/index.js +1 -2
  54. package/dist/breadcrumb/breadcrumb.examples.js +1 -2
  55. package/dist/breadcrumb/breadcrumb.examples.js.map +1 -1
  56. package/dist/breadcrumb/breadcrumb.js +1 -2
  57. package/dist/breadcrumb/breadcrumb.js.map +1 -1
  58. package/dist/breadcrumb/breadcrumb2.js +3 -4
  59. package/dist/breadcrumb/breadcrumb2.js.map +1 -1
  60. package/dist/breadcrumb/define.js +1 -2
  61. package/dist/breadcrumb/define.js.map +1 -1
  62. package/dist/breadcrumb/index.js +1 -2
  63. package/dist/bundles/index.js +22 -10
  64. package/dist/button/button.examples.js +1 -2
  65. package/dist/button/button.examples.js.map +1 -1
  66. package/dist/button/button.js +1 -2
  67. package/dist/button/button.js.map +1 -1
  68. package/dist/button/button2.js +3 -4
  69. package/dist/button/button2.js.map +1 -1
  70. package/dist/button/define.js +1 -2
  71. package/dist/button/define.js.map +1 -1
  72. package/dist/button/index.js +1 -2
  73. package/dist/button-group/button-group.examples.js +1 -2
  74. package/dist/button-group/button-group.examples.js.map +1 -1
  75. package/dist/button-group/button-group.global.js +1 -2
  76. package/dist/button-group/button-group.global.js.map +1 -1
  77. package/dist/button-group/button-group.js +1 -2
  78. package/dist/button-group/button-group.js.map +1 -1
  79. package/dist/button-group/button-group2.js +3 -4
  80. package/dist/button-group/button-group2.js.map +1 -1
  81. package/dist/button-group/define.js +1 -2
  82. package/dist/button-group/define.js.map +1 -1
  83. package/dist/button-group/index.js +1 -2
  84. package/dist/card/card-content.js +1 -2
  85. package/dist/card/card-content.js.map +1 -1
  86. package/dist/card/card-footer.js +1 -2
  87. package/dist/card/card-footer.js.map +1 -1
  88. package/dist/card/card-header.js +1 -2
  89. package/dist/card/card-header.js.map +1 -1
  90. package/dist/card/card.examples.js +1 -2
  91. package/dist/card/card.examples.js.map +1 -1
  92. package/dist/card/card.js +1 -2
  93. package/dist/card/card.js.map +1 -1
  94. package/dist/card/card2.js +6 -7
  95. package/dist/card/card2.js.map +1 -1
  96. package/dist/card/define.js +0 -1
  97. package/dist/card/define.js.map +1 -1
  98. package/dist/card/index.js +1 -2
  99. package/dist/chat-message/chat-message.examples.js +1 -2
  100. package/dist/chat-message/chat-message.examples.js.map +1 -1
  101. package/dist/chat-message/chat-message.global.js +1 -2
  102. package/dist/chat-message/chat-message.global.js.map +1 -1
  103. package/dist/chat-message/chat-message.js +1 -2
  104. package/dist/chat-message/chat-message.js.map +1 -1
  105. package/dist/chat-message/chat-message2.js +3 -4
  106. package/dist/chat-message/chat-message2.js.map +1 -1
  107. package/dist/chat-message/define.js +1 -2
  108. package/dist/chat-message/define.js.map +1 -1
  109. package/dist/chat-message/index.js +1 -2
  110. package/dist/checkbox/checkbox-group.js +1 -2
  111. package/dist/checkbox/checkbox-group.js.map +1 -1
  112. package/dist/checkbox/checkbox-group2.js +3 -4
  113. package/dist/checkbox/checkbox-group2.js.map +1 -1
  114. package/dist/checkbox/checkbox.examples.js +1 -2
  115. package/dist/checkbox/checkbox.examples.js.map +1 -1
  116. package/dist/checkbox/checkbox.js +1 -2
  117. package/dist/checkbox/checkbox.js.map +1 -1
  118. package/dist/checkbox/checkbox2.js +3 -4
  119. package/dist/checkbox/checkbox2.js.map +1 -1
  120. package/dist/checkbox/define.js +0 -1
  121. package/dist/checkbox/define.js.map +1 -1
  122. package/dist/color/color.examples.js +1 -2
  123. package/dist/color/color.examples.js.map +1 -1
  124. package/dist/color/color.global.js +1 -2
  125. package/dist/color/color.global.js.map +1 -1
  126. package/dist/color/color.js +1 -2
  127. package/dist/color/color.js.map +1 -1
  128. package/dist/color/color2.js +3 -4
  129. package/dist/color/color2.js.map +1 -1
  130. package/dist/color/define.js +0 -1
  131. package/dist/color/define.js.map +1 -1
  132. package/dist/color/index.js +1 -2
  133. package/dist/combobox/combobox.examples.js +1 -2
  134. package/dist/combobox/combobox.examples.js.map +1 -1
  135. package/dist/combobox/combobox.js +1 -2
  136. package/dist/combobox/combobox.js.map +1 -1
  137. package/dist/combobox/combobox2.js +3 -4
  138. package/dist/combobox/combobox2.js.map +1 -1
  139. package/dist/combobox/define.js +0 -1
  140. package/dist/combobox/define.js.map +1 -1
  141. package/dist/combobox/index.js +1 -2
  142. package/dist/copy-button/copy-button.examples.js +1 -2
  143. package/dist/copy-button/copy-button.examples.js.map +1 -1
  144. package/dist/copy-button/copy-button.js +1 -2
  145. package/dist/copy-button/copy-button.js.map +1 -1
  146. package/dist/copy-button/copy-button2.js +3 -4
  147. package/dist/copy-button/copy-button2.js.map +1 -1
  148. package/dist/copy-button/define.js +1 -2
  149. package/dist/copy-button/define.js.map +1 -1
  150. package/dist/copy-button/index.js +1 -2
  151. package/dist/date/date.examples.js +1 -2
  152. package/dist/date/date.examples.js.map +1 -1
  153. package/dist/date/date.js +1 -2
  154. package/dist/date/date.js.map +1 -1
  155. package/dist/date/date2.js +3 -4
  156. package/dist/date/date2.js.map +1 -1
  157. package/dist/date/define.js +0 -1
  158. package/dist/date/define.js.map +1 -1
  159. package/dist/date/index.js +1 -2
  160. package/dist/datetime/datetime.examples.js +1 -2
  161. package/dist/datetime/datetime.examples.js.map +1 -1
  162. package/dist/datetime/datetime.js +1 -2
  163. package/dist/datetime/datetime.js.map +1 -1
  164. package/dist/datetime/datetime2.js +3 -4
  165. package/dist/datetime/datetime2.js.map +1 -1
  166. package/dist/datetime/define.js +0 -1
  167. package/dist/datetime/define.js.map +1 -1
  168. package/dist/datetime/index.js +1 -2
  169. package/dist/dialog/define.js +0 -1
  170. package/dist/dialog/define.js.map +1 -1
  171. package/dist/dialog/dialog-footer.js +1 -2
  172. package/dist/dialog/dialog-footer.js.map +1 -1
  173. package/dist/dialog/dialog-footer2.js +2 -3
  174. package/dist/dialog/dialog-footer2.js.map +1 -1
  175. package/dist/dialog/dialog-header.js +1 -2
  176. package/dist/dialog/dialog-header.js.map +1 -1
  177. package/dist/dialog/dialog-header2.js +2 -3
  178. package/dist/dialog/dialog-header2.js.map +1 -1
  179. package/dist/dialog/dialog.examples.js +1 -2
  180. package/dist/dialog/dialog.examples.js.map +1 -1
  181. package/dist/dialog/dialog.global.js +1 -2
  182. package/dist/dialog/dialog.global.js.map +1 -1
  183. package/dist/dialog/dialog.js +1 -2
  184. package/dist/dialog/dialog.js.map +1 -1
  185. package/dist/dialog/dialog2.js +3 -4
  186. package/dist/dialog/dialog2.js.map +1 -1
  187. package/dist/divider/define.js +1 -2
  188. package/dist/divider/define.js.map +1 -1
  189. package/dist/divider/divider.examples.js +1 -2
  190. package/dist/divider/divider.examples.js.map +1 -1
  191. package/dist/divider/divider.js +1 -2
  192. package/dist/divider/divider.js.map +1 -1
  193. package/dist/divider/divider2.js +3 -4
  194. package/dist/divider/divider2.js.map +1 -1
  195. package/dist/divider/index.js +1 -2
  196. package/dist/dot/define.js +1 -2
  197. package/dist/dot/define.js.map +1 -1
  198. package/dist/dot/dot.examples.js +1 -2
  199. package/dist/dot/dot.examples.js.map +1 -1
  200. package/dist/dot/dot.js +1 -2
  201. package/dist/dot/dot.js.map +1 -1
  202. package/dist/dot/dot2.js +3 -4
  203. package/dist/dot/dot2.js.map +1 -1
  204. package/dist/dot/index.js +1 -2
  205. package/dist/drag-handle/define.js +1 -2
  206. package/dist/drag-handle/define.js.map +1 -1
  207. package/dist/drag-handle/drag-handle.examples.js +1 -2
  208. package/dist/drag-handle/drag-handle.examples.js.map +1 -1
  209. package/dist/drag-handle/drag-handle.js +1 -2
  210. package/dist/drag-handle/drag-handle.js.map +1 -1
  211. package/dist/drag-handle/drag-handle2.js +3 -4
  212. package/dist/drag-handle/drag-handle2.js.map +1 -1
  213. package/dist/drag-handle/index.js +1 -2
  214. package/dist/drawer/define.js +0 -1
  215. package/dist/drawer/define.js.map +1 -1
  216. package/dist/drawer/drawer-content.js +1 -2
  217. package/dist/drawer/drawer-content.js.map +1 -1
  218. package/dist/drawer/drawer-content2.js +2 -3
  219. package/dist/drawer/drawer-content2.js.map +1 -1
  220. package/dist/drawer/drawer-footer.js +1 -2
  221. package/dist/drawer/drawer-footer.js.map +1 -1
  222. package/dist/drawer/drawer-footer2.js +2 -3
  223. package/dist/drawer/drawer-footer2.js.map +1 -1
  224. package/dist/drawer/drawer-header.js +1 -2
  225. package/dist/drawer/drawer-header.js.map +1 -1
  226. package/dist/drawer/drawer-header2.js +2 -3
  227. package/dist/drawer/drawer-header2.js.map +1 -1
  228. package/dist/drawer/drawer.examples.js +1 -2
  229. package/dist/drawer/drawer.examples.js.map +1 -1
  230. package/dist/drawer/drawer.js +1 -2
  231. package/dist/drawer/drawer.js.map +1 -1
  232. package/dist/drawer/drawer2.js +3 -4
  233. package/dist/drawer/drawer2.js.map +1 -1
  234. package/dist/dropdown/define.js +0 -1
  235. package/dist/dropdown/define.js.map +1 -1
  236. package/dist/dropdown/dropdown-footer.js +1 -2
  237. package/dist/dropdown/dropdown-footer.js.map +1 -1
  238. package/dist/dropdown/dropdown-footer2.js +2 -3
  239. package/dist/dropdown/dropdown-footer2.js.map +1 -1
  240. package/dist/dropdown/dropdown-header.js +1 -2
  241. package/dist/dropdown/dropdown-header.js.map +1 -1
  242. package/dist/dropdown/dropdown-header2.js +2 -3
  243. package/dist/dropdown/dropdown-header2.js.map +1 -1
  244. package/dist/dropdown/dropdown.examples.js +1 -2
  245. package/dist/dropdown/dropdown.examples.js.map +1 -1
  246. package/dist/dropdown/dropdown.js +1 -2
  247. package/dist/dropdown/dropdown.js.map +1 -1
  248. package/dist/dropdown/dropdown2.js +3 -4
  249. package/dist/dropdown/dropdown2.js.map +1 -1
  250. package/dist/dropdown-group/define.js +1 -2
  251. package/dist/dropdown-group/define.js.map +1 -1
  252. package/dist/dropdown-group/dropdown-group.examples.js +1 -2
  253. package/dist/dropdown-group/dropdown-group.examples.js.map +1 -1
  254. package/dist/dropdown-group/dropdown-group.global.js +1 -2
  255. package/dist/dropdown-group/dropdown-group.global.js.map +1 -1
  256. package/dist/dropdown-group/dropdown-group.js +3 -4
  257. package/dist/dropdown-group/dropdown-group.js.map +1 -1
  258. package/dist/dropdown-group/index.js +1 -2
  259. package/dist/dropzone/define.js +1 -2
  260. package/dist/dropzone/define.js.map +1 -1
  261. package/dist/dropzone/dropzone.examples.js +1 -2
  262. package/dist/dropzone/dropzone.examples.js.map +1 -1
  263. package/dist/dropzone/dropzone.js +1 -2
  264. package/dist/dropzone/dropzone.js.map +1 -1
  265. package/dist/dropzone/dropzone.util.js +1 -2
  266. package/dist/dropzone/dropzone.util.js.map +1 -1
  267. package/dist/dropzone/dropzone2.js +3 -4
  268. package/dist/dropzone/dropzone2.js.map +1 -1
  269. package/dist/dropzone/index.js +1 -2
  270. package/dist/file/define.js +0 -1
  271. package/dist/file/define.js.map +1 -1
  272. package/dist/file/file.examples.js +1 -2
  273. package/dist/file/file.examples.js.map +1 -1
  274. package/dist/file/file.global.js +1 -2
  275. package/dist/file/file.global.js.map +1 -1
  276. package/dist/file/file.js +1 -2
  277. package/dist/file/file.js.map +1 -1
  278. package/dist/file/file2.js +2 -3
  279. package/dist/file/file2.js.map +1 -1
  280. package/dist/file/index.js +1 -2
  281. package/dist/format-bytes/define.js +1 -2
  282. package/dist/format-bytes/define.js.map +1 -1
  283. package/dist/format-bytes/format-bytes.examples.js +1 -2
  284. package/dist/format-bytes/format-bytes.examples.js.map +1 -1
  285. package/dist/format-bytes/format-bytes.js +1 -2
  286. package/dist/format-bytes/format-bytes.js.map +1 -1
  287. package/dist/format-bytes/format-bytes2.js +3 -4
  288. package/dist/format-bytes/format-bytes2.js.map +1 -1
  289. package/dist/format-bytes/index.js +1 -2
  290. package/dist/format-datetime/define.js +1 -2
  291. package/dist/format-datetime/define.js.map +1 -1
  292. package/dist/format-datetime/format-datetime.examples.js +1 -2
  293. package/dist/format-datetime/format-datetime.examples.js.map +1 -1
  294. package/dist/format-datetime/format-datetime.js +1 -2
  295. package/dist/format-datetime/format-datetime.js.map +1 -1
  296. package/dist/format-datetime/format-datetime2.js +3 -4
  297. package/dist/format-datetime/format-datetime2.js.map +1 -1
  298. package/dist/format-datetime/index.js +1 -2
  299. package/dist/format-number/define.js +1 -2
  300. package/dist/format-number/define.js.map +1 -1
  301. package/dist/format-number/format-number.examples.js +1 -2
  302. package/dist/format-number/format-number.examples.js.map +1 -1
  303. package/dist/format-number/format-number.js +1 -2
  304. package/dist/format-number/format-number.js.map +1 -1
  305. package/dist/format-number/format-number2.js +3 -4
  306. package/dist/format-number/format-number2.js.map +1 -1
  307. package/dist/format-number/index.js +1 -2
  308. package/dist/format-relative-time/define.js +1 -2
  309. package/dist/format-relative-time/define.js.map +1 -1
  310. package/dist/format-relative-time/format-relative-time.examples.js +1 -2
  311. package/dist/format-relative-time/format-relative-time.examples.js.map +1 -1
  312. package/dist/format-relative-time/format-relative-time.js +1 -2
  313. package/dist/format-relative-time/format-relative-time.js.map +1 -1
  314. package/dist/format-relative-time/format-relative-time2.js +3 -4
  315. package/dist/format-relative-time/format-relative-time2.js.map +1 -1
  316. package/dist/format-relative-time/index.js +1 -2
  317. package/dist/format-truncate/define.js +1 -2
  318. package/dist/format-truncate/define.js.map +1 -1
  319. package/dist/format-truncate/format-truncate.examples.js +1 -2
  320. package/dist/format-truncate/format-truncate.examples.js.map +1 -1
  321. package/dist/format-truncate/format-truncate.js +1 -2
  322. package/dist/format-truncate/format-truncate.js.map +1 -1
  323. package/dist/format-truncate/format-truncate2.js +4 -5
  324. package/dist/format-truncate/format-truncate2.js.map +1 -1
  325. package/dist/format-truncate/index.js +1 -2
  326. package/dist/format-truncate/utils.js +0 -1
  327. package/dist/format-truncate/utils.js.map +1 -1
  328. package/dist/forms/actions.examples.js +1 -2
  329. package/dist/forms/actions.examples.js.map +1 -1
  330. package/dist/forms/control/control.examples.js +1 -2
  331. package/dist/forms/control/control.examples.js.map +1 -1
  332. package/dist/forms/control/control.global.js +1 -2
  333. package/dist/forms/control/control.global.js.map +1 -1
  334. package/dist/forms/control/control.js +1 -2
  335. package/dist/forms/control/control.js.map +1 -1
  336. package/dist/forms/control/control2.js +4 -13
  337. package/dist/forms/control/control2.js.map +1 -1
  338. package/dist/forms/control-group/control-group.js +1 -2
  339. package/dist/forms/control-group/control-group.js.map +1 -1
  340. package/dist/forms/control-group/control-group2.js +3 -4
  341. package/dist/forms/control-group/control-group2.js.map +1 -1
  342. package/dist/forms/control-message/control-message.js +1 -2
  343. package/dist/forms/control-message/control-message.js.map +1 -1
  344. package/dist/forms/control-message/control-message2.js +3 -4
  345. package/dist/forms/control-message/control-message2.js.map +1 -1
  346. package/dist/forms/define.js +0 -1
  347. package/dist/forms/define.js.map +1 -1
  348. package/dist/forms/forms.examples.js +1 -2
  349. package/dist/forms/forms.examples.js.map +1 -1
  350. package/dist/forms/utils/layout.js +1 -2
  351. package/dist/forms/utils/layout.js.map +1 -1
  352. package/dist/forms/utils/states.js +1 -2
  353. package/dist/forms/utils/states.js.map +1 -1
  354. package/dist/forms/validation.examples.js +1 -2
  355. package/dist/forms/validation.examples.js.map +1 -1
  356. package/dist/gauge/define.js +1 -2
  357. package/dist/gauge/define.js.map +1 -1
  358. package/dist/gauge/gauge.examples.js +1 -2
  359. package/dist/gauge/gauge.examples.js.map +1 -1
  360. package/dist/gauge/gauge.js +1 -2
  361. package/dist/gauge/gauge.js.map +1 -1
  362. package/dist/gauge/gauge2.js +3 -4
  363. package/dist/gauge/gauge2.js.map +1 -1
  364. package/dist/gauge/index.js +1 -2
  365. package/dist/grid/cell/cell.js +1 -2
  366. package/dist/grid/cell/cell.js.map +1 -1
  367. package/dist/grid/cell/cell2.js +2 -3
  368. package/dist/grid/cell/cell2.js.map +1 -1
  369. package/dist/grid/column/column.js +1 -2
  370. package/dist/grid/column/column.js.map +1 -1
  371. package/dist/grid/column/column2.js +3 -4
  372. package/dist/grid/column/column2.js.map +1 -1
  373. package/dist/grid/define.js +0 -1
  374. package/dist/grid/define.js.map +1 -1
  375. package/dist/grid/footer/footer.js +1 -2
  376. package/dist/grid/footer/footer.js.map +1 -1
  377. package/dist/grid/footer/footer2.js +3 -4
  378. package/dist/grid/footer/footer2.js.map +1 -1
  379. package/dist/grid/grid.examples.js +1 -2
  380. package/dist/grid/grid.examples.js.map +1 -1
  381. package/dist/grid/grid.global.js +1 -2
  382. package/dist/grid/grid.global.js.map +1 -1
  383. package/dist/grid/grid.js +1 -2
  384. package/dist/grid/grid.js.map +1 -1
  385. package/dist/grid/grid2.js +3 -4
  386. package/dist/grid/grid2.js.map +1 -1
  387. package/dist/grid/header/header.js +1 -2
  388. package/dist/grid/header/header.js.map +1 -1
  389. package/dist/grid/header/header2.js +3 -4
  390. package/dist/grid/header/header2.js.map +1 -1
  391. package/dist/grid/placeholder/placeholder.js +1 -2
  392. package/dist/grid/placeholder/placeholder.js.map +1 -1
  393. package/dist/grid/placeholder/placeholder2.js +2 -3
  394. package/dist/grid/placeholder/placeholder2.js.map +1 -1
  395. package/dist/grid/row/row.js +1 -2
  396. package/dist/grid/row/row.js.map +1 -1
  397. package/dist/grid/row/row2.js +3 -4
  398. package/dist/grid/row/row2.js.map +1 -1
  399. package/dist/icon/define.js +0 -1
  400. package/dist/icon/define.js.map +1 -1
  401. package/dist/icon/icon.examples.js +1 -2
  402. package/dist/icon/icon.examples.js.map +1 -1
  403. package/dist/icon/icon.js +1 -2
  404. package/dist/icon/icon.js.map +1 -1
  405. package/dist/icon/icon2.js +4 -5
  406. package/dist/icon/icon2.js.map +1 -1
  407. package/dist/icon/icons/academic-cap.js +1 -2
  408. package/dist/icon/icons/academic-cap.js.map +1 -1
  409. package/dist/icon/icons/add-asset.js +1 -2
  410. package/dist/icon/icons/add-asset.js.map +1 -1
  411. package/dist/icon/icons/add-comment.js +1 -2
  412. package/dist/icon/icons/add-comment.js.map +1 -1
  413. package/dist/icon/icons/add-grid.js +1 -2
  414. package/dist/icon/icons/add-grid.js.map +1 -1
  415. package/dist/icon/icons/add-user.js +1 -2
  416. package/dist/icon/icons/add-user.js.map +1 -1
  417. package/dist/icon/icons/add.js +1 -2
  418. package/dist/icon/icons/add.js.map +1 -1
  419. package/dist/icon/icons/ancestors.js +1 -2
  420. package/dist/icon/icons/ancestors.js.map +1 -1
  421. package/dist/icon/icons/archive.js +1 -2
  422. package/dist/icon/icons/archive.js.map +1 -1
  423. package/dist/icon/icons/arrow-angle.js +1 -2
  424. package/dist/icon/icons/arrow-angle.js.map +1 -1
  425. package/dist/icon/icons/arrow-both.js +1 -2
  426. package/dist/icon/icons/arrow-both.js.map +1 -1
  427. package/dist/icon/icons/arrow-cycle.js +1 -2
  428. package/dist/icon/icons/arrow-cycle.js.map +1 -1
  429. package/dist/icon/icons/arrow-path-rounded-square.js +1 -2
  430. package/dist/icon/icons/arrow-path-rounded-square.js.map +1 -1
  431. package/dist/icon/icons/arrow-stop.js +1 -2
  432. package/dist/icon/icons/arrow-stop.js.map +1 -1
  433. package/dist/icon/icons/arrow.js +1 -2
  434. package/dist/icon/icons/arrow.js.map +1 -1
  435. package/dist/icon/icons/at-symbol.js +1 -2
  436. package/dist/icon/icons/at-symbol.js.map +1 -1
  437. package/dist/icon/icons/backspace.js +1 -2
  438. package/dist/icon/icons/backspace.js.map +1 -1
  439. package/dist/icon/icons/bar-pill-stack.js +1 -2
  440. package/dist/icon/icons/bar-pill-stack.js.map +1 -1
  441. package/dist/icon/icons/bars-3-bottom-left.js +1 -2
  442. package/dist/icon/icons/bars-3-bottom-left.js.map +1 -1
  443. package/dist/icon/icons/bars-3-bottom-right.js +1 -2
  444. package/dist/icon/icons/bars-3-bottom-right.js.map +1 -1
  445. package/dist/icon/icons/bars-3-center-left.js +1 -2
  446. package/dist/icon/icons/bars-3-center-left.js.map +1 -1
  447. package/dist/icon/icons/bars-3.js +1 -2
  448. package/dist/icon/icons/bars-3.js.map +1 -1
  449. package/dist/icon/icons/bars-4.js +1 -2
  450. package/dist/icon/icons/bars-4.js.map +1 -1
  451. package/dist/icon/icons/beaker.js +1 -2
  452. package/dist/icon/icons/beaker.js.map +1 -1
  453. package/dist/icon/icons/bell-slash.js +1 -2
  454. package/dist/icon/icons/bell-slash.js.map +1 -1
  455. package/dist/icon/icons/bell-solid.js +1 -2
  456. package/dist/icon/icons/bell-solid.js.map +1 -1
  457. package/dist/icon/icons/bell.js +1 -2
  458. package/dist/icon/icons/bell.js.map +1 -1
  459. package/dist/icon/icons/bold.js +1 -2
  460. package/dist/icon/icons/bold.js.map +1 -1
  461. package/dist/icon/icons/book-solid.js +1 -2
  462. package/dist/icon/icons/book-solid.js.map +1 -1
  463. package/dist/icon/icons/book.js +1 -2
  464. package/dist/icon/icons/book.js.map +1 -1
  465. package/dist/icon/icons/bookmark-solid.js +1 -2
  466. package/dist/icon/icons/bookmark-solid.js.map +1 -1
  467. package/dist/icon/icons/bookmark.js +1 -2
  468. package/dist/icon/icons/bookmark.js.map +1 -1
  469. package/dist/icon/icons/bounding-box.js +1 -2
  470. package/dist/icon/icons/bounding-box.js.map +1 -1
  471. package/dist/icon/icons/branch.js +1 -2
  472. package/dist/icon/icons/branch.js.map +1 -1
  473. package/dist/icon/icons/briefcase.js +1 -2
  474. package/dist/icon/icons/briefcase.js.map +1 -1
  475. package/dist/icon/icons/broadcast.js +1 -2
  476. package/dist/icon/icons/broadcast.js.map +1 -1
  477. package/dist/icon/icons/browser.js +1 -2
  478. package/dist/icon/icons/browser.js.map +1 -1
  479. package/dist/icon/icons/bug.js +1 -2
  480. package/dist/icon/icons/bug.js.map +1 -1
  481. package/dist/icon/icons/calendar.js +1 -2
  482. package/dist/icon/icons/calendar.js.map +1 -1
  483. package/dist/icon/icons/camera.js +1 -2
  484. package/dist/icon/icons/camera.js.map +1 -1
  485. package/dist/icon/icons/cancel.js +1 -2
  486. package/dist/icon/icons/cancel.js.map +1 -1
  487. package/dist/icon/icons/caret.js +1 -2
  488. package/dist/icon/icons/caret.js.map +1 -1
  489. package/dist/icon/icons/carets-closed-square.js +1 -2
  490. package/dist/icon/icons/carets-closed-square.js.map +1 -1
  491. package/dist/icon/icons/carousel.js +1 -2
  492. package/dist/icon/icons/carousel.js.map +1 -1
  493. package/dist/icon/icons/category-list.js +1 -2
  494. package/dist/icon/icons/category-list.js.map +1 -1
  495. package/dist/icon/icons/chart-bar.js +1 -2
  496. package/dist/icon/icons/chart-bar.js.map +1 -1
  497. package/dist/icon/icons/chat-bubble-solid.js +1 -2
  498. package/dist/icon/icons/chat-bubble-solid.js.map +1 -1
  499. package/dist/icon/icons/chat-bubble.js +1 -2
  500. package/dist/icon/icons/chat-bubble.js.map +1 -1
  501. package/dist/icon/icons/chat-bubbles.js +1 -2
  502. package/dist/icon/icons/chat-bubbles.js.map +1 -1
  503. package/dist/icon/icons/check-badge-solid.js +1 -2
  504. package/dist/icon/icons/check-badge-solid.js.map +1 -1
  505. package/dist/icon/icons/check-badge.js +1 -2
  506. package/dist/icon/icons/check-badge.js.map +1 -1
  507. package/dist/icon/icons/check.js +1 -2
  508. package/dist/icon/icons/check.js.map +1 -1
  509. package/dist/icon/icons/checklist.js +1 -2
  510. package/dist/icon/icons/checklist.js.map +1 -1
  511. package/dist/icon/icons/checkmark-circle-solid.js +1 -2
  512. package/dist/icon/icons/checkmark-circle-solid.js.map +1 -1
  513. package/dist/icon/icons/checkmark-circle.js +1 -2
  514. package/dist/icon/icons/checkmark-circle.js.map +1 -1
  515. package/dist/icon/icons/chevron.js +1 -2
  516. package/dist/icon/icons/chevron.js.map +1 -1
  517. package/dist/icon/icons/chip.js +1 -2
  518. package/dist/icon/icons/chip.js.map +1 -1
  519. package/dist/icon/icons/circle-angled-line-solid.js +1 -2
  520. package/dist/icon/icons/circle-angled-line-solid.js.map +1 -1
  521. package/dist/icon/icons/circle-angled-line.js +1 -2
  522. package/dist/icon/icons/circle-angled-line.js.map +1 -1
  523. package/dist/icon/icons/circle-dash.js +1 -2
  524. package/dist/icon/icons/circle-dash.js.map +1 -1
  525. package/dist/icon/icons/circle-dot-arrows.js +1 -2
  526. package/dist/icon/icons/circle-dot-arrows.js.map +1 -1
  527. package/dist/icon/icons/circle-dot.js +1 -2
  528. package/dist/icon/icons/circle-dot.js.map +1 -1
  529. package/dist/icon/icons/circle-half.js +1 -2
  530. package/dist/icon/icons/circle-half.js.map +1 -1
  531. package/dist/icon/icons/circle-rule.js +1 -2
  532. package/dist/icon/icons/circle-rule.js.map +1 -1
  533. package/dist/icon/icons/circle-tick.js +1 -2
  534. package/dist/icon/icons/circle-tick.js.map +1 -1
  535. package/dist/icon/icons/circle.js +1 -2
  536. package/dist/icon/icons/circle.js.map +1 -1
  537. package/dist/icon/icons/clipboard.js +1 -2
  538. package/dist/icon/icons/clipboard.js.map +1 -1
  539. package/dist/icon/icons/clock-circle-arrow.js +1 -2
  540. package/dist/icon/icons/clock-circle-arrow.js.map +1 -1
  541. package/dist/icon/icons/clock.js +1 -2
  542. package/dist/icon/icons/clock.js.map +1 -1
  543. package/dist/icon/icons/cloud-download.js +1 -2
  544. package/dist/icon/icons/cloud-download.js.map +1 -1
  545. package/dist/icon/icons/cloud-upload.js +1 -2
  546. package/dist/icon/icons/cloud-upload.js.map +1 -1
  547. package/dist/icon/icons/cloud.js +1 -2
  548. package/dist/icon/icons/cloud.js.map +1 -1
  549. package/dist/icon/icons/code.js +1 -2
  550. package/dist/icon/icons/code.js.map +1 -1
  551. package/dist/icon/icons/collapse-all.js +1 -2
  552. package/dist/icon/icons/collapse-all.js.map +1 -1
  553. package/dist/icon/icons/collapse-details.js +1 -2
  554. package/dist/icon/icons/collapse-details.js.map +1 -1
  555. package/dist/icon/icons/color-palette.js +1 -2
  556. package/dist/icon/icons/color-palette.js.map +1 -1
  557. package/dist/icon/icons/columns.js +1 -2
  558. package/dist/icon/icons/columns.js.map +1 -1
  559. package/dist/icon/icons/compare.js +1 -2
  560. package/dist/icon/icons/compare.js.map +1 -1
  561. package/dist/icon/icons/computer.js +1 -2
  562. package/dist/icon/icons/computer.js.map +1 -1
  563. package/dist/icon/icons/connect-node.js +1 -2
  564. package/dist/icon/icons/connect-node.js.map +1 -1
  565. package/dist/icon/icons/connected-blocks.js +1 -2
  566. package/dist/icon/icons/connected-blocks.js.map +1 -1
  567. package/dist/icon/icons/copy.js +1 -2
  568. package/dist/icon/icons/copy.js.map +1 -1
  569. package/dist/icon/icons/cross-hairs.js +1 -2
  570. package/dist/icon/icons/cross-hairs.js.map +1 -1
  571. package/dist/icon/icons/cursor-rays.js +1 -2
  572. package/dist/icon/icons/cursor-rays.js.map +1 -1
  573. package/dist/icon/icons/cursor-ripples.js +1 -2
  574. package/dist/icon/icons/cursor-ripples.js.map +1 -1
  575. package/dist/icon/icons/data-management.js +1 -2
  576. package/dist/icon/icons/data-management.js.map +1 -1
  577. package/dist/icon/icons/delete-node.js +1 -2
  578. package/dist/icon/icons/delete-node.js.map +1 -1
  579. package/dist/icon/icons/delete-solid.js +1 -2
  580. package/dist/icon/icons/delete-solid.js.map +1 -1
  581. package/dist/icon/icons/delete.js +1 -2
  582. package/dist/icon/icons/delete.js.map +1 -1
  583. package/dist/icon/icons/doc-checkmark.js +1 -2
  584. package/dist/icon/icons/doc-checkmark.js.map +1 -1
  585. package/dist/icon/icons/dock-bottom.js +1 -2
  586. package/dist/icon/icons/dock-bottom.js.map +1 -1
  587. package/dist/icon/icons/dock-none.js +1 -2
  588. package/dist/icon/icons/dock-none.js.map +1 -1
  589. package/dist/icon/icons/dock-side.js +1 -2
  590. package/dist/icon/icons/dock-side.js.map +1 -1
  591. package/dist/icon/icons/document-clipboard.js +1 -2
  592. package/dist/icon/icons/document-clipboard.js.map +1 -1
  593. package/dist/icon/icons/document.js +1 -2
  594. package/dist/icon/icons/document.js.map +1 -1
  595. package/dist/icon/icons/dot-solid.js +1 -2
  596. package/dist/icon/icons/dot-solid.js.map +1 -1
  597. package/dist/icon/icons/dot.js +1 -2
  598. package/dist/icon/icons/dot.js.map +1 -1
  599. package/dist/icon/icons/double-chevron.js +1 -2
  600. package/dist/icon/icons/double-chevron.js.map +1 -1
  601. package/dist/icon/icons/download.js +1 -2
  602. package/dist/icon/icons/download.js.map +1 -1
  603. package/dist/icon/icons/drag.js +1 -2
  604. package/dist/icon/icons/drag.js.map +1 -1
  605. package/dist/icon/icons/dropper.js +1 -2
  606. package/dist/icon/icons/dropper.js.map +1 -1
  607. package/dist/icon/icons/duplicate.js +1 -2
  608. package/dist/icon/icons/duplicate.js.map +1 -1
  609. package/dist/icon/icons/edit.js +1 -2
  610. package/dist/icon/icons/edit.js.map +1 -1
  611. package/dist/icon/icons/ellipses.js +1 -2
  612. package/dist/icon/icons/ellipses.js.map +1 -1
  613. package/dist/icon/icons/envelope.js +1 -2
  614. package/dist/icon/icons/envelope.js.map +1 -1
  615. package/dist/icon/icons/exclamation-circle-solid.js +1 -2
  616. package/dist/icon/icons/exclamation-circle-solid.js.map +1 -1
  617. package/dist/icon/icons/exclamation-circle.js +1 -2
  618. package/dist/icon/icons/exclamation-circle.js.map +1 -1
  619. package/dist/icon/icons/exclamation-mark.js +1 -2
  620. package/dist/icon/icons/exclamation-mark.js.map +1 -1
  621. package/dist/icon/icons/exclamation-triangle-solid.js +1 -2
  622. package/dist/icon/icons/exclamation-triangle-solid.js.map +1 -1
  623. package/dist/icon/icons/exclamation-triangle.js +1 -2
  624. package/dist/icon/icons/exclamation-triangle.js.map +1 -1
  625. package/dist/icon/icons/expand-all.js +1 -2
  626. package/dist/icon/icons/expand-all.js.map +1 -1
  627. package/dist/icon/icons/expand-details.js +1 -2
  628. package/dist/icon/icons/expand-details.js.map +1 -1
  629. package/dist/icon/icons/expression.js +1 -2
  630. package/dist/icon/icons/expression.js.map +1 -1
  631. package/dist/icon/icons/eye-hidden.js +1 -2
  632. package/dist/icon/icons/eye-hidden.js.map +1 -1
  633. package/dist/icon/icons/eye.js +1 -2
  634. package/dist/icon/icons/eye.js.map +1 -1
  635. package/dist/icon/icons/face-frown.js +1 -2
  636. package/dist/icon/icons/face-frown.js.map +1 -1
  637. package/dist/icon/icons/face-smile-solid.js +1 -2
  638. package/dist/icon/icons/face-smile-solid.js.map +1 -1
  639. package/dist/icon/icons/face-smile.js +1 -2
  640. package/dist/icon/icons/face-smile.js.map +1 -1
  641. package/dist/icon/icons/fast-forward-10.js +1 -2
  642. package/dist/icon/icons/fast-forward-10.js.map +1 -1
  643. package/dist/icon/icons/fast-forward.js +1 -2
  644. package/dist/icon/icons/fast-forward.js.map +1 -1
  645. package/dist/icon/icons/film.js +1 -2
  646. package/dist/icon/icons/film.js.map +1 -1
  647. package/dist/icon/icons/filter-solid.js +1 -2
  648. package/dist/icon/icons/filter-solid.js.map +1 -1
  649. package/dist/icon/icons/filter.js +1 -2
  650. package/dist/icon/icons/filter.js.map +1 -1
  651. package/dist/icon/icons/flag-solid.js +1 -2
  652. package/dist/icon/icons/flag-solid.js.map +1 -1
  653. package/dist/icon/icons/flag.js +1 -2
  654. package/dist/icon/icons/flag.js.map +1 -1
  655. package/dist/icon/icons/fold.js +1 -2
  656. package/dist/icon/icons/fold.js.map +1 -1
  657. package/dist/icon/icons/folder.js +1 -2
  658. package/dist/icon/icons/folder.js.map +1 -1
  659. package/dist/icon/icons/fork.js +1 -2
  660. package/dist/icon/icons/fork.js.map +1 -1
  661. package/dist/icon/icons/gear-solid.js +1 -2
  662. package/dist/icon/icons/gear-solid.js.map +1 -1
  663. package/dist/icon/icons/gear.js +1 -2
  664. package/dist/icon/icons/gear.js.map +1 -1
  665. package/dist/icon/icons/globe-alt.js +1 -2
  666. package/dist/icon/icons/globe-alt.js.map +1 -1
  667. package/dist/icon/icons/globe.js +1 -2
  668. package/dist/icon/icons/globe.js.map +1 -1
  669. package/dist/icon/icons/group-boxes.js +1 -2
  670. package/dist/icon/icons/group-boxes.js.map +1 -1
  671. package/dist/icon/icons/group.js +1 -2
  672. package/dist/icon/icons/group.js.map +1 -1
  673. package/dist/icon/icons/hand.js +1 -2
  674. package/dist/icon/icons/hand.js.map +1 -1
  675. package/dist/icon/icons/hash.js +1 -2
  676. package/dist/icon/icons/hash.js.map +1 -1
  677. package/dist/icon/icons/heading.js +1 -2
  678. package/dist/icon/icons/heading.js.map +1 -1
  679. package/dist/icon/icons/home-solid.js +1 -2
  680. package/dist/icon/icons/home-solid.js.map +1 -1
  681. package/dist/icon/icons/home.js +1 -2
  682. package/dist/icon/icons/home.js.map +1 -1
  683. package/dist/icon/icons/horizontal-rule.js +1 -2
  684. package/dist/icon/icons/horizontal-rule.js.map +1 -1
  685. package/dist/icon/icons/hourglass-end.js +1 -2
  686. package/dist/icon/icons/hourglass-end.js.map +1 -1
  687. package/dist/icon/icons/hourglass-mid.js +1 -2
  688. package/dist/icon/icons/hourglass-mid.js.map +1 -1
  689. package/dist/icon/icons/hourglass-start.js +1 -2
  690. package/dist/icon/icons/hourglass-start.js.map +1 -1
  691. package/dist/icon/icons/hourglass.js +1 -2
  692. package/dist/icon/icons/hourglass.js.map +1 -1
  693. package/dist/icon/icons/identification.js +1 -2
  694. package/dist/icon/icons/identification.js.map +1 -1
  695. package/dist/icon/icons/image.js +1 -2
  696. package/dist/icon/icons/image.js.map +1 -1
  697. package/dist/icon/icons/inbox.js +1 -2
  698. package/dist/icon/icons/inbox.js.map +1 -1
  699. package/dist/icon/icons/infinity.js +1 -2
  700. package/dist/icon/icons/infinity.js.map +1 -1
  701. package/dist/icon/icons/information-circle-solid.js +1 -2
  702. package/dist/icon/icons/information-circle-solid.js.map +1 -1
  703. package/dist/icon/icons/information-circle.js +1 -2
  704. package/dist/icon/icons/information-circle.js.map +1 -1
  705. package/dist/icon/icons/inspect.js +1 -2
  706. package/dist/icon/icons/inspect.js.map +1 -1
  707. package/dist/icon/icons/italic.js +1 -2
  708. package/dist/icon/icons/italic.js.map +1 -1
  709. package/dist/icon/icons/key.js +1 -2
  710. package/dist/icon/icons/key.js.map +1 -1
  711. package/dist/icon/icons/keyboard.js +1 -2
  712. package/dist/icon/icons/keyboard.js.map +1 -1
  713. package/dist/icon/icons/laptop-phone.js +1 -2
  714. package/dist/icon/icons/laptop-phone.js.map +1 -1
  715. package/dist/icon/icons/layers.js +1 -2
  716. package/dist/icon/icons/layers.js.map +1 -1
  717. package/dist/icon/icons/lifebuoy.js +1 -2
  718. package/dist/icon/icons/lifebuoy.js.map +1 -1
  719. package/dist/icon/icons/lightbulb.js +1 -2
  720. package/dist/icon/icons/lightbulb.js.map +1 -1
  721. package/dist/icon/icons/lightning-bolt-solid.js +1 -2
  722. package/dist/icon/icons/lightning-bolt-solid.js.map +1 -1
  723. package/dist/icon/icons/lightning-bolt.js +1 -2
  724. package/dist/icon/icons/lightning-bolt.js.map +1 -1
  725. package/dist/icon/icons/link.js +1 -2
  726. package/dist/icon/icons/link.js.map +1 -1
  727. package/dist/icon/icons/list-ordered.js +1 -2
  728. package/dist/icon/icons/list-ordered.js.map +1 -1
  729. package/dist/icon/icons/list-unordered.js +1 -2
  730. package/dist/icon/icons/list-unordered.js.map +1 -1
  731. package/dist/icon/icons/lock-solid.js +1 -2
  732. package/dist/icon/icons/lock-solid.js.map +1 -1
  733. package/dist/icon/icons/lock.js +1 -2
  734. package/dist/icon/icons/lock.js.map +1 -1
  735. package/dist/icon/icons/login.js +1 -2
  736. package/dist/icon/icons/login.js.map +1 -1
  737. package/dist/icon/icons/logout.js +1 -2
  738. package/dist/icon/icons/logout.js.map +1 -1
  739. package/dist/icon/icons/looping-off.js +1 -2
  740. package/dist/icon/icons/looping-off.js.map +1 -1
  741. package/dist/icon/icons/looping.js +1 -2
  742. package/dist/icon/icons/looping.js.map +1 -1
  743. package/dist/icon/icons/map-drives.js +1 -2
  744. package/dist/icon/icons/map-drives.js.map +1 -1
  745. package/dist/icon/icons/map-pin.js +1 -2
  746. package/dist/icon/icons/map-pin.js.map +1 -1
  747. package/dist/icon/icons/map.js +1 -2
  748. package/dist/icon/icons/map.js.map +1 -1
  749. package/dist/icon/icons/markdown.js +1 -2
  750. package/dist/icon/icons/markdown.js.map +1 -1
  751. package/dist/icon/icons/maximize.js +1 -2
  752. package/dist/icon/icons/maximize.js.map +1 -1
  753. package/dist/icon/icons/megaphone.js +1 -2
  754. package/dist/icon/icons/megaphone.js.map +1 -1
  755. package/dist/icon/icons/menu.js +1 -2
  756. package/dist/icon/icons/menu.js.map +1 -1
  757. package/dist/icon/icons/merge.js +1 -2
  758. package/dist/icon/icons/merge.js.map +1 -1
  759. package/dist/icon/icons/meter.js +1 -2
  760. package/dist/icon/icons/meter.js.map +1 -1
  761. package/dist/icon/icons/minimize.js +1 -2
  762. package/dist/icon/icons/minimize.js.map +1 -1
  763. package/dist/icon/icons/minus-circle-solid.js +1 -2
  764. package/dist/icon/icons/minus-circle-solid.js.map +1 -1
  765. package/dist/icon/icons/minus-circle.js +1 -2
  766. package/dist/icon/icons/minus-circle.js.map +1 -1
  767. package/dist/icon/icons/minus.js +1 -2
  768. package/dist/icon/icons/minus.js.map +1 -1
  769. package/dist/icon/icons/moon.js +1 -2
  770. package/dist/icon/icons/moon.js.map +1 -1
  771. package/dist/icon/icons/more-actions.js +1 -2
  772. package/dist/icon/icons/more-actions.js.map +1 -1
  773. package/dist/icon/icons/multiselect.js +1 -2
  774. package/dist/icon/icons/multiselect.js.map +1 -1
  775. package/dist/icon/icons/music-note.js +1 -2
  776. package/dist/icon/icons/music-note.js.map +1 -1
  777. package/dist/icon/icons/newspaper.js +1 -2
  778. package/dist/icon/icons/newspaper.js.map +1 -1
  779. package/dist/icon/icons/not-allowed.js +1 -2
  780. package/dist/icon/icons/not-allowed.js.map +1 -1
  781. package/dist/icon/icons/numbers.js +1 -2
  782. package/dist/icon/icons/numbers.js.map +1 -1
  783. package/dist/icon/icons/office-building.js +1 -2
  784. package/dist/icon/icons/office-building.js.map +1 -1
  785. package/dist/icon/icons/outline.js +1 -2
  786. package/dist/icon/icons/outline.js.map +1 -1
  787. package/dist/icon/icons/paper-airplane.js +1 -2
  788. package/dist/icon/icons/paper-airplane.js.map +1 -1
  789. package/dist/icon/icons/paper-clip.js +1 -2
  790. package/dist/icon/icons/paper-clip.js.map +1 -1
  791. package/dist/icon/icons/pause.js +1 -2
  792. package/dist/icon/icons/pause.js.map +1 -1
  793. package/dist/icon/icons/pencil-square.js +1 -2
  794. package/dist/icon/icons/pencil-square.js.map +1 -1
  795. package/dist/icon/icons/person-2.js +1 -2
  796. package/dist/icon/icons/person-2.js.map +1 -1
  797. package/dist/icon/icons/person-3.js +1 -2
  798. package/dist/icon/icons/person-3.js.map +1 -1
  799. package/dist/icon/icons/person-circle.js +1 -2
  800. package/dist/icon/icons/person-circle.js.map +1 -1
  801. package/dist/icon/icons/person-solid.js +1 -2
  802. package/dist/icon/icons/person-solid.js.map +1 -1
  803. package/dist/icon/icons/person.js +1 -2
  804. package/dist/icon/icons/person.js.map +1 -1
  805. package/dist/icon/icons/phone.js +1 -2
  806. package/dist/icon/icons/phone.js.map +1 -1
  807. package/dist/icon/icons/picture-in-picture.js +1 -2
  808. package/dist/icon/icons/picture-in-picture.js.map +1 -1
  809. package/dist/icon/icons/pie-chart.js +1 -2
  810. package/dist/icon/icons/pie-chart.js.map +1 -1
  811. package/dist/icon/icons/pin-solid.js +1 -2
  812. package/dist/icon/icons/pin-solid.js.map +1 -1
  813. package/dist/icon/icons/pin.js +1 -2
  814. package/dist/icon/icons/pin.js.map +1 -1
  815. package/dist/icon/icons/pizza-slice.js +1 -2
  816. package/dist/icon/icons/pizza-slice.js.map +1 -1
  817. package/dist/icon/icons/placeholder.js +1 -2
  818. package/dist/icon/icons/placeholder.js.map +1 -1
  819. package/dist/icon/icons/play.js +1 -2
  820. package/dist/icon/icons/play.js.map +1 -1
  821. package/dist/icon/icons/plug.js +1 -2
  822. package/dist/icon/icons/plug.js.map +1 -1
  823. package/dist/icon/icons/plus-circle-solid.js +1 -2
  824. package/dist/icon/icons/plus-circle-solid.js.map +1 -1
  825. package/dist/icon/icons/plus-circle.js +1 -2
  826. package/dist/icon/icons/plus-circle.js.map +1 -1
  827. package/dist/icon/icons/plus-minus.js +1 -2
  828. package/dist/icon/icons/plus-minus.js.map +1 -1
  829. package/dist/icon/icons/pointer-solid.js +1 -2
  830. package/dist/icon/icons/pointer-solid.js.map +1 -1
  831. package/dist/icon/icons/pointer.js +1 -2
  832. package/dist/icon/icons/pointer.js.map +1 -1
  833. package/dist/icon/icons/priority-high.js +1 -2
  834. package/dist/icon/icons/priority-high.js.map +1 -1
  835. package/dist/icon/icons/priority-low.js +1 -2
  836. package/dist/icon/icons/priority-low.js.map +1 -1
  837. package/dist/icon/icons/priority-medium.js +1 -2
  838. package/dist/icon/icons/priority-medium.js.map +1 -1
  839. package/dist/icon/icons/projector.js +1 -2
  840. package/dist/icon/icons/projector.js.map +1 -1
  841. package/dist/icon/icons/pull-close.js +1 -2
  842. package/dist/icon/icons/pull-close.js.map +1 -1
  843. package/dist/icon/icons/pull-draft.js +1 -2
  844. package/dist/icon/icons/pull-draft.js.map +1 -1
  845. package/dist/icon/icons/pull-open.js +1 -2
  846. package/dist/icon/icons/pull-open.js.map +1 -1
  847. package/dist/icon/icons/pulse.js +1 -2
  848. package/dist/icon/icons/pulse.js.map +1 -1
  849. package/dist/icon/icons/puzzle-piece.js +1 -2
  850. package/dist/icon/icons/puzzle-piece.js.map +1 -1
  851. package/dist/icon/icons/question-mark-circle-solid.js +1 -2
  852. package/dist/icon/icons/question-mark-circle-solid.js.map +1 -1
  853. package/dist/icon/icons/question-mark-circle.js +1 -2
  854. package/dist/icon/icons/question-mark-circle.js.map +1 -1
  855. package/dist/icon/icons/rectangle-group.js +1 -2
  856. package/dist/icon/icons/rectangle-group.js.map +1 -1
  857. package/dist/icon/icons/rectangle-stack-horizontal.js +1 -2
  858. package/dist/icon/icons/rectangle-stack-horizontal.js.map +1 -1
  859. package/dist/icon/icons/rectangle-stack-vertical.js +1 -2
  860. package/dist/icon/icons/rectangle-stack-vertical.js.map +1 -1
  861. package/dist/icon/icons/redo.js +1 -2
  862. package/dist/icon/icons/redo.js.map +1 -1
  863. package/dist/icon/icons/refresh.js +1 -2
  864. package/dist/icon/icons/refresh.js.map +1 -1
  865. package/dist/icon/icons/reply.js +1 -2
  866. package/dist/icon/icons/reply.js.map +1 -1
  867. package/dist/icon/icons/rewind-10.js +1 -2
  868. package/dist/icon/icons/rewind-10.js.map +1 -1
  869. package/dist/icon/icons/rewind.js +1 -2
  870. package/dist/icon/icons/rewind.js.map +1 -1
  871. package/dist/icon/icons/rocketship.js +1 -2
  872. package/dist/icon/icons/rocketship.js.map +1 -1
  873. package/dist/icon/icons/running.js +1 -2
  874. package/dist/icon/icons/running.js.map +1 -1
  875. package/dist/icon/icons/scale.js +1 -2
  876. package/dist/icon/icons/scale.js.map +1 -1
  877. package/dist/icon/icons/scissors.js +1 -2
  878. package/dist/icon/icons/scissors.js.map +1 -1
  879. package/dist/icon/icons/search.js +1 -2
  880. package/dist/icon/icons/search.js.map +1 -1
  881. package/dist/icon/icons/sensor.js +1 -2
  882. package/dist/icon/icons/sensor.js.map +1 -1
  883. package/dist/icon/icons/server-stack.js +1 -2
  884. package/dist/icon/icons/server-stack.js.map +1 -1
  885. package/dist/icon/icons/server.js +1 -2
  886. package/dist/icon/icons/server.js.map +1 -1
  887. package/dist/icon/icons/shapes.js +1 -2
  888. package/dist/icon/icons/shapes.js.map +1 -1
  889. package/dist/icon/icons/share.js +1 -2
  890. package/dist/icon/icons/share.js.map +1 -1
  891. package/dist/icon/icons/signal-slash.js +1 -2
  892. package/dist/icon/icons/signal-slash.js.map +1 -1
  893. package/dist/icon/icons/signal.js +1 -2
  894. package/dist/icon/icons/signal.js.map +1 -1
  895. package/dist/icon/icons/signpost.js +1 -2
  896. package/dist/icon/icons/signpost.js.map +1 -1
  897. package/dist/icon/icons/sort-ascending.js +1 -2
  898. package/dist/icon/icons/sort-ascending.js.map +1 -1
  899. package/dist/icon/icons/sort-descending.js +1 -2
  900. package/dist/icon/icons/sort-descending.js.map +1 -1
  901. package/dist/icon/icons/soundwave.js +1 -2
  902. package/dist/icon/icons/soundwave.js.map +1 -1
  903. package/dist/icon/icons/sparkles-solid.js +1 -2
  904. package/dist/icon/icons/sparkles-solid.js.map +1 -1
  905. package/dist/icon/icons/sparkles.js +1 -2
  906. package/dist/icon/icons/sparkles.js.map +1 -1
  907. package/dist/icon/icons/split-horizontal.js +1 -2
  908. package/dist/icon/icons/split-horizontal.js.map +1 -1
  909. package/dist/icon/icons/split-none.js +1 -2
  910. package/dist/icon/icons/split-none.js.map +1 -1
  911. package/dist/icon/icons/split-vertical.js +1 -2
  912. package/dist/icon/icons/split-vertical.js.map +1 -1
  913. package/dist/icon/icons/star-half.js +1 -2
  914. package/dist/icon/icons/star-half.js.map +1 -1
  915. package/dist/icon/icons/star-stroke.js +1 -2
  916. package/dist/icon/icons/star-stroke.js.map +1 -1
  917. package/dist/icon/icons/star.js +1 -2
  918. package/dist/icon/icons/star.js.map +1 -1
  919. package/dist/icon/icons/start.js +1 -2
  920. package/dist/icon/icons/start.js.map +1 -1
  921. package/dist/icon/icons/status-offline.js +1 -2
  922. package/dist/icon/icons/status-offline.js.map +1 -1
  923. package/dist/icon/icons/status-online.js +1 -2
  924. package/dist/icon/icons/status-online.js.map +1 -1
  925. package/dist/icon/icons/stop-sign.js +1 -2
  926. package/dist/icon/icons/stop-sign.js.map +1 -1
  927. package/dist/icon/icons/stop.js +1 -2
  928. package/dist/icon/icons/stop.js.map +1 -1
  929. package/dist/icon/icons/stopwatch.js +1 -2
  930. package/dist/icon/icons/stopwatch.js.map +1 -1
  931. package/dist/icon/icons/strikethrough.js +1 -2
  932. package/dist/icon/icons/strikethrough.js.map +1 -1
  933. package/dist/icon/icons/sun.js +1 -2
  934. package/dist/icon/icons/sun.js.map +1 -1
  935. package/dist/icon/icons/swatch.js +1 -2
  936. package/dist/icon/icons/swatch.js.map +1 -1
  937. package/dist/icon/icons/switch-apps.js +1 -2
  938. package/dist/icon/icons/switch-apps.js.map +1 -1
  939. package/dist/icon/icons/switch.js +1 -2
  940. package/dist/icon/icons/switch.js.map +1 -1
  941. package/dist/icon/icons/table.js +1 -2
  942. package/dist/icon/icons/table.js.map +1 -1
  943. package/dist/icon/icons/tag.js +1 -2
  944. package/dist/icon/icons/tag.js.map +1 -1
  945. package/dist/icon/icons/task.js +1 -2
  946. package/dist/icon/icons/task.js.map +1 -1
  947. package/dist/icon/icons/telescope.js +1 -2
  948. package/dist/icon/icons/telescope.js.map +1 -1
  949. package/dist/icon/icons/template.js +1 -2
  950. package/dist/icon/icons/template.js.map +1 -1
  951. package/dist/icon/icons/terminal.js +1 -2
  952. package/dist/icon/icons/terminal.js.map +1 -1
  953. package/dist/icon/icons/thumb-solid.js +1 -2
  954. package/dist/icon/icons/thumb-solid.js.map +1 -1
  955. package/dist/icon/icons/thumb.js +1 -2
  956. package/dist/icon/icons/thumb.js.map +1 -1
  957. package/dist/icon/icons/traffic-cone.js +1 -2
  958. package/dist/icon/icons/traffic-cone.js.map +1 -1
  959. package/dist/icon/icons/transparent-box.js +1 -2
  960. package/dist/icon/icons/transparent-box.js.map +1 -1
  961. package/dist/icon/icons/trend-down.js +1 -2
  962. package/dist/icon/icons/trend-down.js.map +1 -1
  963. package/dist/icon/icons/trend-up.js +1 -2
  964. package/dist/icon/icons/trend-up.js.map +1 -1
  965. package/dist/icon/icons/trophy.js +1 -2
  966. package/dist/icon/icons/trophy.js.map +1 -1
  967. package/dist/icon/icons/truck.js +1 -2
  968. package/dist/icon/icons/truck.js.map +1 -1
  969. package/dist/icon/icons/typography.js +1 -2
  970. package/dist/icon/icons/typography.js.map +1 -1
  971. package/dist/icon/icons/undo.js +1 -2
  972. package/dist/icon/icons/undo.js.map +1 -1
  973. package/dist/icon/icons/unlock-solid.js +1 -2
  974. package/dist/icon/icons/unlock-solid.js.map +1 -1
  975. package/dist/icon/icons/unlock.js +1 -2
  976. package/dist/icon/icons/unlock.js.map +1 -1
  977. package/dist/icon/icons/upload.js +1 -2
  978. package/dist/icon/icons/upload.js.map +1 -1
  979. package/dist/icon/icons/video-camera.js +1 -2
  980. package/dist/icon/icons/video-camera.js.map +1 -1
  981. package/dist/icon/icons/view-as-grid.js +1 -2
  982. package/dist/icon/icons/view-as-grid.js.map +1 -1
  983. package/dist/icon/icons/volume-muted.js +1 -2
  984. package/dist/icon/icons/volume-muted.js.map +1 -1
  985. package/dist/icon/icons/volume-solid.js +1 -2
  986. package/dist/icon/icons/volume-solid.js.map +1 -1
  987. package/dist/icon/icons/volume.js +1 -2
  988. package/dist/icon/icons/volume.js.map +1 -1
  989. package/dist/icon/icons/wifi.js +1 -2
  990. package/dist/icon/icons/wifi.js.map +1 -1
  991. package/dist/icon/icons/wrench-solid.js +1 -2
  992. package/dist/icon/icons/wrench-solid.js.map +1 -1
  993. package/dist/icon/icons/wrench.js +1 -2
  994. package/dist/icon/icons/wrench.js.map +1 -1
  995. package/dist/icon/icons/x-circle-solid.js +1 -2
  996. package/dist/icon/icons/x-circle-solid.js.map +1 -1
  997. package/dist/icon/icons/x-circle.js +1 -2
  998. package/dist/icon/icons/x-circle.js.map +1 -1
  999. package/dist/icon/icons/zoom-in.js +1 -2
  1000. package/dist/icon/icons/zoom-in.js.map +1 -1
  1001. package/dist/icon/icons/zoom-out.js +1 -2
  1002. package/dist/icon/icons/zoom-out.js.map +1 -1
  1003. package/dist/icon/icons.js +1 -2
  1004. package/dist/icon/icons.js.map +1 -1
  1005. package/dist/icon/server.js +1 -2
  1006. package/dist/icon/server.js.map +1 -1
  1007. package/dist/icon-button/define.js +1 -2
  1008. package/dist/icon-button/define.js.map +1 -1
  1009. package/dist/icon-button/icon-button.examples.js +1 -2
  1010. package/dist/icon-button/icon-button.examples.js.map +1 -1
  1011. package/dist/icon-button/icon-button.js +1 -2
  1012. package/dist/icon-button/icon-button.js.map +1 -1
  1013. package/dist/icon-button/icon-button2.js +3 -4
  1014. package/dist/icon-button/icon-button2.js.map +1 -1
  1015. package/dist/icon-button/index.js +1 -2
  1016. package/dist/iframe/define.js +1 -2
  1017. package/dist/iframe/define.js.map +1 -1
  1018. package/dist/iframe/iframe.examples.js +1 -2
  1019. package/dist/iframe/iframe.examples.js.map +1 -1
  1020. package/dist/iframe/iframe.js +1 -2
  1021. package/dist/iframe/iframe.js.map +1 -1
  1022. package/dist/iframe/iframe2.js +12 -27
  1023. package/dist/iframe/iframe2.js.map +1 -1
  1024. package/dist/iframe/index.js +1 -2
  1025. package/dist/index.js +2 -2
  1026. package/dist/index.js.map +1 -1
  1027. package/dist/input/define.js +0 -1
  1028. package/dist/input/define.js.map +1 -1
  1029. package/dist/input/input-group.examples.js +1 -2
  1030. package/dist/input/input-group.examples.js.map +1 -1
  1031. package/dist/input/input-group.global.js +1 -2
  1032. package/dist/input/input-group.global.js.map +1 -1
  1033. package/dist/input/input-group.js +1 -2
  1034. package/dist/input/input-group.js.map +1 -1
  1035. package/dist/input/input-group2.js +2 -3
  1036. package/dist/input/input-group2.js.map +1 -1
  1037. package/dist/input/input.examples.js +1 -2
  1038. package/dist/input/input.examples.js.map +1 -1
  1039. package/dist/input/input.js +1 -2
  1040. package/dist/input/input.js.map +1 -1
  1041. package/dist/input/input2.js +3 -4
  1042. package/dist/input/input2.js.map +1 -1
  1043. package/dist/internal/controllers/audit.controller.js +1 -2
  1044. package/dist/internal/controllers/audit.controller.js.map +1 -1
  1045. package/dist/internal/controllers/gesture.controller.examples.js +1 -2
  1046. package/dist/internal/controllers/gesture.controller.examples.js.map +1 -1
  1047. package/dist/internal/controllers/gesture.controller.js +14 -41
  1048. package/dist/internal/controllers/gesture.controller.js.map +1 -1
  1049. package/dist/internal/controllers/key-state.controller.js +1 -2
  1050. package/dist/internal/controllers/key-state.controller.js.map +1 -1
  1051. package/dist/internal/controllers/keynav-grid.controller.examples.js +1 -2
  1052. package/dist/internal/controllers/keynav-grid.controller.examples.js.map +1 -1
  1053. package/dist/internal/controllers/keynav-grid.controller.js +3 -7
  1054. package/dist/internal/controllers/keynav-grid.controller.js.map +1 -1
  1055. package/dist/internal/controllers/keynav-list.controller.examples.js +1 -2
  1056. package/dist/internal/controllers/keynav-list.controller.examples.js.map +1 -1
  1057. package/dist/internal/controllers/keynav-list.controller.js +2 -3
  1058. package/dist/internal/controllers/keynav-list.controller.js.map +1 -1
  1059. package/dist/internal/controllers/keynav-spatial.controller.js +1 -2
  1060. package/dist/internal/controllers/keynav-spatial.controller.js.map +1 -1
  1061. package/dist/internal/controllers/popover.examples.js +1 -2
  1062. package/dist/internal/controllers/popover.examples.js.map +1 -1
  1063. package/dist/internal/controllers/state-expanded.controller.js +1 -2
  1064. package/dist/internal/controllers/state-expanded.controller.js.map +1 -1
  1065. package/dist/internal/controllers/state-highlighted.controller.js +1 -2
  1066. package/dist/internal/controllers/state-highlighted.controller.js.map +1 -1
  1067. package/dist/internal/controllers/state-scroll.controller.js +1 -2
  1068. package/dist/internal/controllers/state-scroll.controller.js.map +1 -1
  1069. package/dist/internal/controllers/state-selected.controller.js +2 -11
  1070. package/dist/internal/controllers/state-selected.controller.js.map +1 -1
  1071. package/dist/internal/controllers/type-anchor.controller.js +1 -2
  1072. package/dist/internal/controllers/type-anchor.controller.js.map +1 -1
  1073. package/dist/internal/controllers/type-closable.controller.js +1 -2
  1074. package/dist/internal/controllers/type-closable.controller.js.map +1 -1
  1075. package/dist/internal/controllers/type-expandable.controller.js +1 -2
  1076. package/dist/internal/controllers/type-expandable.controller.js.map +1 -1
  1077. package/dist/internal/controllers/type-native-popover.controller.js +2 -7
  1078. package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
  1079. package/dist/internal/controllers/type-native-popover.utils.js +1 -2
  1080. package/dist/internal/controllers/type-native-popover.utils.js.map +1 -1
  1081. package/dist/internal/controllers/type-popover.controller.examples.js +1 -2
  1082. package/dist/internal/controllers/type-popover.controller.examples.js.map +1 -1
  1083. package/dist/internal/controllers/type-selectable.controller.js +1 -2
  1084. package/dist/internal/controllers/type-selectable.controller.js.map +1 -1
  1085. package/dist/internal/controllers/type-ssr.controller.js +1 -2
  1086. package/dist/internal/controllers/type-ssr.controller.js.map +1 -1
  1087. package/dist/internal/decorators/host-attr.js +1 -2
  1088. package/dist/internal/decorators/host-attr.js.map +1 -1
  1089. package/dist/internal/decorators/scoped-registry.js +1 -2
  1090. package/dist/internal/decorators/scoped-registry.js.map +1 -1
  1091. package/dist/internal/index.js +1 -2
  1092. package/dist/internal/index.js.map +1 -1
  1093. package/dist/internal/services/log.service.js +1 -2
  1094. package/dist/internal/services/log.service.js.map +1 -1
  1095. package/dist/internal/services/transition.service.js +0 -1
  1096. package/dist/internal/services/transition.service.js.map +1 -1
  1097. package/dist/internal/styles/base.js +1 -2
  1098. package/dist/internal/styles/base.js.map +1 -1
  1099. package/dist/internal/styles/color.state.js +1 -2
  1100. package/dist/internal/styles/color.state.js.map +1 -1
  1101. package/dist/internal/styles/index.js +1 -2
  1102. package/dist/internal/styles/index.js.map +1 -1
  1103. package/dist/internal/styles/interaction-state.js +1 -2
  1104. package/dist/internal/styles/interaction-state.js.map +1 -1
  1105. package/dist/internal/styles/popover.js +1 -2
  1106. package/dist/internal/styles/popover.js.map +1 -1
  1107. package/dist/internal/styles/popover2.js +1 -2
  1108. package/dist/internal/styles/popover2.js.map +1 -1
  1109. package/dist/internal/styles/status.state.js +1 -2
  1110. package/dist/internal/styles/status.state.js.map +1 -1
  1111. package/dist/internal/styles/support.state.js +1 -2
  1112. package/dist/internal/styles/support.state.js.map +1 -1
  1113. package/dist/internal/types/index.js +1 -2
  1114. package/dist/internal/types/index.js.map +1 -1
  1115. package/dist/internal/utils/a11y.js +1 -2
  1116. package/dist/internal/utils/a11y.js.map +1 -1
  1117. package/dist/internal/utils/audit-logs.js +1 -2
  1118. package/dist/internal/utils/audit-logs.js.map +1 -1
  1119. package/dist/internal/utils/audit.js +1 -2
  1120. package/dist/internal/utils/audit.js.map +1 -1
  1121. package/dist/internal/utils/dom.js +2 -9
  1122. package/dist/internal/utils/dom.js.map +1 -1
  1123. package/dist/internal/utils/events.js +3 -8
  1124. package/dist/internal/utils/events.js.map +1 -1
  1125. package/dist/internal/utils/focus.js +3 -26
  1126. package/dist/internal/utils/focus.js.map +1 -1
  1127. package/dist/internal/utils/keynav.js +1 -2
  1128. package/dist/internal/utils/keynav.js.map +1 -1
  1129. package/dist/internal/utils/numeric.js +1 -2
  1130. package/dist/internal/utils/numeric.js.map +1 -1
  1131. package/dist/internal/utils/objects.js +1 -2
  1132. package/dist/internal/utils/objects.js.map +1 -1
  1133. package/dist/internal/utils/strings.js +1 -2
  1134. package/dist/internal/utils/strings.js.map +1 -1
  1135. package/dist/internal/utils/supports.js +1 -2
  1136. package/dist/internal/utils/supports.js.map +1 -1
  1137. package/dist/joystick/define.js +1 -2
  1138. package/dist/joystick/define.js.map +1 -1
  1139. package/dist/joystick/index.js +1 -2
  1140. package/dist/joystick/joystick.examples.js +1 -2
  1141. package/dist/joystick/joystick.examples.js.map +1 -1
  1142. package/dist/joystick/joystick.js +1 -2
  1143. package/dist/joystick/joystick.js.map +1 -1
  1144. package/dist/joystick/joystick2.js +7 -8
  1145. package/dist/joystick/joystick2.js.map +1 -1
  1146. package/dist/logo/define.js +1 -2
  1147. package/dist/logo/define.js.map +1 -1
  1148. package/dist/logo/index.js +1 -2
  1149. package/dist/logo/logo.examples.js +1 -2
  1150. package/dist/logo/logo.examples.js.map +1 -1
  1151. package/dist/logo/logo.js +1 -2
  1152. package/dist/logo/logo.js.map +1 -1
  1153. package/dist/logo/logo2.js +3 -4
  1154. package/dist/logo/logo2.js.map +1 -1
  1155. package/dist/menu/define.js +0 -1
  1156. package/dist/menu/define.js.map +1 -1
  1157. package/dist/menu/menu-group.js +1 -2
  1158. package/dist/menu/menu-group.js.map +1 -1
  1159. package/dist/menu/menu-group2.js +3 -4
  1160. package/dist/menu/menu-group2.js.map +1 -1
  1161. package/dist/menu/menu-item.js +1 -2
  1162. package/dist/menu/menu-item.js.map +1 -1
  1163. package/dist/menu/menu-item2.js +3 -4
  1164. package/dist/menu/menu-item2.js.map +1 -1
  1165. package/dist/menu/menu.examples.js +1 -2
  1166. package/dist/menu/menu.examples.js.map +1 -1
  1167. package/dist/menu/menu.global.js +1 -2
  1168. package/dist/menu/menu.global.js.map +1 -1
  1169. package/dist/menu/menu.js +1 -2
  1170. package/dist/menu/menu.js.map +1 -1
  1171. package/dist/menu/menu2.js +19 -15
  1172. package/dist/menu/menu2.js.map +1 -1
  1173. package/dist/month/define.js +0 -1
  1174. package/dist/month/define.js.map +1 -1
  1175. package/dist/month/index.js +1 -2
  1176. package/dist/month/month.examples.js +1 -2
  1177. package/dist/month/month.examples.js.map +1 -1
  1178. package/dist/month/month.js +1 -2
  1179. package/dist/month/month.js.map +1 -1
  1180. package/dist/month/month2.js +3 -4
  1181. package/dist/month/month2.js.map +1 -1
  1182. package/dist/notification/define.js +0 -1
  1183. package/dist/notification/define.js.map +1 -1
  1184. package/dist/notification/notification-group.js +1 -2
  1185. package/dist/notification/notification-group.js.map +1 -1
  1186. package/dist/notification/notification-group2.js +3 -4
  1187. package/dist/notification/notification-group2.js.map +1 -1
  1188. package/dist/notification/notification.examples.js +1 -2
  1189. package/dist/notification/notification.examples.js.map +1 -1
  1190. package/dist/notification/notification.js +1 -2
  1191. package/dist/notification/notification.js.map +1 -1
  1192. package/dist/notification/notification2.js +3 -4
  1193. package/dist/notification/notification2.js.map +1 -1
  1194. package/dist/page/define.js +0 -1
  1195. package/dist/page/define.js.map +1 -1
  1196. package/dist/page/page-panel/page-panel-content.js +1 -2
  1197. package/dist/page/page-panel/page-panel-content.js.map +1 -1
  1198. package/dist/page/page-panel/page-panel-content2.js +2 -3
  1199. package/dist/page/page-panel/page-panel-content2.js.map +1 -1
  1200. package/dist/page/page-panel/page-panel-footer.js +1 -2
  1201. package/dist/page/page-panel/page-panel-footer.js.map +1 -1
  1202. package/dist/page/page-panel/page-panel-footer2.js +3 -4
  1203. package/dist/page/page-panel/page-panel-footer2.js.map +1 -1
  1204. package/dist/page/page-panel/page-panel-header.js +1 -2
  1205. package/dist/page/page-panel/page-panel-header.js.map +1 -1
  1206. package/dist/page/page-panel/page-panel-header2.js +3 -4
  1207. package/dist/page/page-panel/page-panel-header2.js.map +1 -1
  1208. package/dist/page/page-panel/page-panel.global.js +1 -2
  1209. package/dist/page/page-panel/page-panel.global.js.map +1 -1
  1210. package/dist/page/page-panel/page-panel.js +1 -2
  1211. package/dist/page/page-panel/page-panel.js.map +1 -1
  1212. package/dist/page/page-panel/page-panel2.js +3 -4
  1213. package/dist/page/page-panel/page-panel2.js.map +1 -1
  1214. package/dist/page/page.examples.js +1 -2
  1215. package/dist/page/page.examples.js.map +1 -1
  1216. package/dist/page/page.js +2 -3
  1217. package/dist/page/page.js.map +1 -1
  1218. package/dist/page/page2.js +3 -4
  1219. package/dist/page/page2.js.map +1 -1
  1220. package/dist/page-header/define.js +1 -2
  1221. package/dist/page-header/define.js.map +1 -1
  1222. package/dist/page-header/index.js +1 -2
  1223. package/dist/page-header/page-header.examples.js +1 -2
  1224. package/dist/page-header/page-header.examples.js.map +1 -1
  1225. package/dist/page-header/page-header.global.js +1 -2
  1226. package/dist/page-header/page-header.global.js.map +1 -1
  1227. package/dist/page-header/page-header.js +1 -2
  1228. package/dist/page-header/page-header.js.map +1 -1
  1229. package/dist/page-header/page-header2.js +2 -3
  1230. package/dist/page-header/page-header2.js.map +1 -1
  1231. package/dist/page-loader/define.js +1 -2
  1232. package/dist/page-loader/define.js.map +1 -1
  1233. package/dist/page-loader/index.js +1 -2
  1234. package/dist/page-loader/page-loader.examples.js +1 -2
  1235. package/dist/page-loader/page-loader.examples.js.map +1 -1
  1236. package/dist/page-loader/page-loader.js +1 -2
  1237. package/dist/page-loader/page-loader.js.map +1 -1
  1238. package/dist/page-loader/page-loader2.js +3 -4
  1239. package/dist/page-loader/page-loader2.js.map +1 -1
  1240. package/dist/pagination/define.js +1 -2
  1241. package/dist/pagination/define.js.map +1 -1
  1242. package/dist/pagination/index.js +1 -2
  1243. package/dist/pagination/pagination.examples.js +1 -2
  1244. package/dist/pagination/pagination.examples.js.map +1 -1
  1245. package/dist/pagination/pagination.js +1 -2
  1246. package/dist/pagination/pagination.js.map +1 -1
  1247. package/dist/pagination/pagination2.js +3 -4
  1248. package/dist/pagination/pagination2.js.map +1 -1
  1249. package/dist/panel/define.js +0 -1
  1250. package/dist/panel/define.js.map +1 -1
  1251. package/dist/panel/index.js +1 -2
  1252. package/dist/panel/panel-content.js +1 -2
  1253. package/dist/panel/panel-content.js.map +1 -1
  1254. package/dist/panel/panel-footer.js +1 -2
  1255. package/dist/panel/panel-footer.js.map +1 -1
  1256. package/dist/panel/panel-header.js +1 -2
  1257. package/dist/panel/panel-header.js.map +1 -1
  1258. package/dist/panel/panel.examples.js +1 -2
  1259. package/dist/panel/panel.examples.js.map +1 -1
  1260. package/dist/panel/panel.js +1 -2
  1261. package/dist/panel/panel.js.map +1 -1
  1262. package/dist/panel/panel2.js +6 -7
  1263. package/dist/panel/panel2.js.map +1 -1
  1264. package/dist/password/define.js +0 -1
  1265. package/dist/password/define.js.map +1 -1
  1266. package/dist/password/index.js +1 -2
  1267. package/dist/password/password.examples.js +1 -2
  1268. package/dist/password/password.examples.js.map +1 -1
  1269. package/dist/password/password.js +1 -2
  1270. package/dist/password/password.js.map +1 -1
  1271. package/dist/password/password2.js +3 -4
  1272. package/dist/password/password2.js.map +1 -1
  1273. package/dist/polyfills/index.js +1 -2
  1274. package/dist/polyfills/index.js.map +1 -1
  1275. package/dist/preferences-input/define.js +1 -2
  1276. package/dist/preferences-input/define.js.map +1 -1
  1277. package/dist/preferences-input/index.js +1 -2
  1278. package/dist/preferences-input/preferences-input.examples.js +1 -2
  1279. package/dist/preferences-input/preferences-input.examples.js.map +1 -1
  1280. package/dist/preferences-input/preferences-input.js +1 -2
  1281. package/dist/preferences-input/preferences-input.js.map +1 -1
  1282. package/dist/preferences-input/preferences-input2.js +3 -4
  1283. package/dist/preferences-input/preferences-input2.js.map +1 -1
  1284. package/dist/progress-bar/define.js +1 -2
  1285. package/dist/progress-bar/define.js.map +1 -1
  1286. package/dist/progress-bar/index.js +1 -2
  1287. package/dist/progress-bar/progress-bar.examples.js +1 -2
  1288. package/dist/progress-bar/progress-bar.examples.js.map +1 -1
  1289. package/dist/progress-bar/progress-bar.js +1 -2
  1290. package/dist/progress-bar/progress-bar.js.map +1 -1
  1291. package/dist/progress-bar/progress-bar2.js +3 -4
  1292. package/dist/progress-bar/progress-bar2.js.map +1 -1
  1293. package/dist/progress-dot/define.js +1 -2
  1294. package/dist/progress-dot/define.js.map +1 -1
  1295. package/dist/progress-dot/index.js +1 -2
  1296. package/dist/progress-dot/progress-dot.examples.js +1 -2
  1297. package/dist/progress-dot/progress-dot.examples.js.map +1 -1
  1298. package/dist/progress-dot/progress-dot.js +1 -2
  1299. package/dist/progress-dot/progress-dot.js.map +1 -1
  1300. package/dist/progress-dot/progress-dot2.js +3 -4
  1301. package/dist/progress-dot/progress-dot2.js.map +1 -1
  1302. package/dist/progress-ring/define.js +1 -2
  1303. package/dist/progress-ring/define.js.map +1 -1
  1304. package/dist/progress-ring/index.js +1 -2
  1305. package/dist/progress-ring/progress-ring.examples.js +1 -2
  1306. package/dist/progress-ring/progress-ring.examples.js.map +1 -1
  1307. package/dist/progress-ring/progress-ring.js +1 -2
  1308. package/dist/progress-ring/progress-ring.js.map +1 -1
  1309. package/dist/progress-ring/progress-ring2.js +3 -4
  1310. package/dist/progress-ring/progress-ring2.js.map +1 -1
  1311. package/dist/progressive-filter-chip/define.js +1 -2
  1312. package/dist/progressive-filter-chip/define.js.map +1 -1
  1313. package/dist/progressive-filter-chip/index.js +1 -2
  1314. package/dist/progressive-filter-chip/progressive-filter-chip.examples.js +1 -2
  1315. package/dist/progressive-filter-chip/progressive-filter-chip.examples.js.map +1 -1
  1316. package/dist/progressive-filter-chip/progressive-filter-chip.global.js +1 -2
  1317. package/dist/progressive-filter-chip/progressive-filter-chip.global.js.map +1 -1
  1318. package/dist/progressive-filter-chip/progressive-filter-chip.js +1 -2
  1319. package/dist/progressive-filter-chip/progressive-filter-chip.js.map +1 -1
  1320. package/dist/progressive-filter-chip/progressive-filter-chip2.js +3 -4
  1321. package/dist/progressive-filter-chip/progressive-filter-chip2.js.map +1 -1
  1322. package/dist/pulse/define.js +1 -2
  1323. package/dist/pulse/define.js.map +1 -1
  1324. package/dist/pulse/index.js +1 -2
  1325. package/dist/pulse/pulse.examples.js +1 -2
  1326. package/dist/pulse/pulse.examples.js.map +1 -1
  1327. package/dist/pulse/pulse.js +1 -2
  1328. package/dist/pulse/pulse.js.map +1 -1
  1329. package/dist/pulse/pulse2.js +3 -4
  1330. package/dist/pulse/pulse2.js.map +1 -1
  1331. package/dist/radio/define.js +0 -1
  1332. package/dist/radio/define.js.map +1 -1
  1333. package/dist/radio/radio-group.js +1 -2
  1334. package/dist/radio/radio-group.js.map +1 -1
  1335. package/dist/radio/radio-group2.js +3 -4
  1336. package/dist/radio/radio-group2.js.map +1 -1
  1337. package/dist/radio/radio.examples.js +1 -2
  1338. package/dist/radio/radio.examples.js.map +1 -1
  1339. package/dist/radio/radio.js +1 -2
  1340. package/dist/radio/radio.js.map +1 -1
  1341. package/dist/radio/radio2.js +3 -4
  1342. package/dist/radio/radio2.js.map +1 -1
  1343. package/dist/range/define.js +0 -1
  1344. package/dist/range/define.js.map +1 -1
  1345. package/dist/range/index.js +1 -2
  1346. package/dist/range/range.examples.js +1 -2
  1347. package/dist/range/range.examples.js.map +1 -1
  1348. package/dist/range/range.global.js +1 -2
  1349. package/dist/range/range.global.js.map +1 -1
  1350. package/dist/range/range.js +1 -2
  1351. package/dist/range/range.js.map +1 -1
  1352. package/dist/range/range2.js +3 -4
  1353. package/dist/range/range2.js.map +1 -1
  1354. package/dist/resize-handle/define.js +1 -2
  1355. package/dist/resize-handle/define.js.map +1 -1
  1356. package/dist/resize-handle/index.js +1 -2
  1357. package/dist/resize-handle/resize-handle.examples.js +1 -2
  1358. package/dist/resize-handle/resize-handle.examples.js.map +1 -1
  1359. package/dist/resize-handle/resize-handle.js +1 -2
  1360. package/dist/resize-handle/resize-handle.js.map +1 -1
  1361. package/dist/resize-handle/resize-handle2.js +5 -6
  1362. package/dist/resize-handle/resize-handle2.js.map +1 -1
  1363. package/dist/search/define.js +0 -1
  1364. package/dist/search/define.js.map +1 -1
  1365. package/dist/search/index.js +1 -2
  1366. package/dist/search/search.examples.js +1 -2
  1367. package/dist/search/search.examples.js.map +1 -1
  1368. package/dist/search/search.js +1 -2
  1369. package/dist/search/search.js.map +1 -1
  1370. package/dist/search/search2.js +3 -4
  1371. package/dist/search/search2.js.map +1 -1
  1372. package/dist/select/define.js +0 -1
  1373. package/dist/select/define.js.map +1 -1
  1374. package/dist/select/index.js +1 -2
  1375. package/dist/select/select.examples.js +1 -2
  1376. package/dist/select/select.examples.js.map +1 -1
  1377. package/dist/select/select.global.js +1 -2
  1378. package/dist/select/select.global.js.map +1 -1
  1379. package/dist/select/select.js +1 -2
  1380. package/dist/select/select.js.map +1 -1
  1381. package/dist/select/select2.js +3 -4
  1382. package/dist/select/select2.js.map +1 -1
  1383. package/dist/skeleton/define.js +1 -2
  1384. package/dist/skeleton/define.js.map +1 -1
  1385. package/dist/skeleton/index.js +1 -2
  1386. package/dist/skeleton/skeleton.examples.js +1 -2
  1387. package/dist/skeleton/skeleton.examples.js.map +1 -1
  1388. package/dist/skeleton/skeleton.js +1 -2
  1389. package/dist/skeleton/skeleton.js.map +1 -1
  1390. package/dist/skeleton/skeleton2.js +3 -4
  1391. package/dist/skeleton/skeleton2.js.map +1 -1
  1392. package/dist/sort-button/define.js +1 -2
  1393. package/dist/sort-button/define.js.map +1 -1
  1394. package/dist/sort-button/index.js +1 -2
  1395. package/dist/sort-button/sort-button.examples.js +1 -2
  1396. package/dist/sort-button/sort-button.examples.js.map +1 -1
  1397. package/dist/sort-button/sort-button.js +1 -2
  1398. package/dist/sort-button/sort-button.js.map +1 -1
  1399. package/dist/sort-button/sort-button2.js +3 -4
  1400. package/dist/sort-button/sort-button2.js.map +1 -1
  1401. package/dist/sparkline/define.js +1 -2
  1402. package/dist/sparkline/define.js.map +1 -1
  1403. package/dist/sparkline/index.js +1 -2
  1404. package/dist/sparkline/sparkline.examples.js +1 -2
  1405. package/dist/sparkline/sparkline.examples.js.map +1 -1
  1406. package/dist/sparkline/sparkline.js +1 -2
  1407. package/dist/sparkline/sparkline.js.map +1 -1
  1408. package/dist/sparkline/sparkline.utils.js +0 -1
  1409. package/dist/sparkline/sparkline.utils.js.map +1 -1
  1410. package/dist/sparkline/sparkline2.js +3 -4
  1411. package/dist/sparkline/sparkline2.js.map +1 -1
  1412. package/dist/star-rating/define.js +0 -1
  1413. package/dist/star-rating/define.js.map +1 -1
  1414. package/dist/star-rating/index.js +1 -2
  1415. package/dist/star-rating/star-rating.examples.js +1 -2
  1416. package/dist/star-rating/star-rating.examples.js.map +1 -1
  1417. package/dist/star-rating/star-rating.js +1 -2
  1418. package/dist/star-rating/star-rating.js.map +1 -1
  1419. package/dist/star-rating/star-rating2.js +3 -4
  1420. package/dist/star-rating/star-rating2.js.map +1 -1
  1421. package/dist/steps/define.js +0 -1
  1422. package/dist/steps/define.js.map +1 -1
  1423. package/dist/steps/index.js +1 -2
  1424. package/dist/steps/steps-item.js +1 -2
  1425. package/dist/steps/steps-item.js.map +1 -1
  1426. package/dist/steps/steps.examples.js +1 -2
  1427. package/dist/steps/steps.examples.js.map +1 -1
  1428. package/dist/steps/steps.js +1 -2
  1429. package/dist/steps/steps.js.map +1 -1
  1430. package/dist/steps/steps2.js +5 -6
  1431. package/dist/steps/steps2.js.map +1 -1
  1432. package/dist/switch/define.js +0 -1
  1433. package/dist/switch/define.js.map +1 -1
  1434. package/dist/switch/switch-group.js +1 -2
  1435. package/dist/switch/switch-group.js.map +1 -1
  1436. package/dist/switch/switch-group2.js +3 -4
  1437. package/dist/switch/switch-group2.js.map +1 -1
  1438. package/dist/switch/switch.examples.js +1 -2
  1439. package/dist/switch/switch.examples.js.map +1 -1
  1440. package/dist/switch/switch.js +1 -2
  1441. package/dist/switch/switch.js.map +1 -1
  1442. package/dist/switch/switch2.js +3 -4
  1443. package/dist/switch/switch2.js.map +1 -1
  1444. package/dist/tabs/define.js +0 -1
  1445. package/dist/tabs/define.js.map +1 -1
  1446. package/dist/tabs/tabs-group.js +1 -2
  1447. package/dist/tabs/tabs-group.js.map +1 -1
  1448. package/dist/tabs/tabs-group2.js +8 -17
  1449. package/dist/tabs/tabs-group2.js.map +1 -1
  1450. package/dist/tabs/tabs-item-group.js +1 -2
  1451. package/dist/tabs/tabs-item-group.js.map +1 -1
  1452. package/dist/tabs/tabs-item-group2.js +3 -4
  1453. package/dist/tabs/tabs-item-group2.js.map +1 -1
  1454. package/dist/tabs/tabs-item.js +1 -2
  1455. package/dist/tabs/tabs-item.js.map +1 -1
  1456. package/dist/tabs/tabs.examples.js +1 -2
  1457. package/dist/tabs/tabs.examples.js.map +1 -1
  1458. package/dist/tabs/tabs.global.js +1 -2
  1459. package/dist/tabs/tabs.global.js.map +1 -1
  1460. package/dist/tabs/tabs.js +1 -2
  1461. package/dist/tabs/tabs.js.map +1 -1
  1462. package/dist/tabs/tabs2.js +5 -6
  1463. package/dist/tabs/tabs2.js.map +1 -1
  1464. package/dist/tabs/utils.js +1 -2
  1465. package/dist/tabs/utils.js.map +1 -1
  1466. package/dist/tag/define.js +1 -2
  1467. package/dist/tag/define.js.map +1 -1
  1468. package/dist/tag/index.js +1 -2
  1469. package/dist/tag/tag.examples.js +1 -2
  1470. package/dist/tag/tag.examples.js.map +1 -1
  1471. package/dist/tag/tag.js +1 -2
  1472. package/dist/tag/tag.js.map +1 -1
  1473. package/dist/tag/tag2.js +3 -4
  1474. package/dist/tag/tag2.js.map +1 -1
  1475. package/dist/textarea/define.js +0 -1
  1476. package/dist/textarea/define.js.map +1 -1
  1477. package/dist/textarea/index.js +1 -2
  1478. package/dist/textarea/textarea.examples.js +1 -2
  1479. package/dist/textarea/textarea.examples.js.map +1 -1
  1480. package/dist/textarea/textarea.js +1 -2
  1481. package/dist/textarea/textarea.js.map +1 -1
  1482. package/dist/textarea/textarea2.js +2 -3
  1483. package/dist/textarea/textarea2.js.map +1 -1
  1484. package/dist/time/define.js +0 -1
  1485. package/dist/time/define.js.map +1 -1
  1486. package/dist/time/index.js +1 -2
  1487. package/dist/time/time.examples.js +1 -2
  1488. package/dist/time/time.examples.js.map +1 -1
  1489. package/dist/time/time.js +1 -2
  1490. package/dist/time/time.js.map +1 -1
  1491. package/dist/time/time2.js +3 -4
  1492. package/dist/time/time2.js.map +1 -1
  1493. package/dist/toast/define.js +1 -2
  1494. package/dist/toast/define.js.map +1 -1
  1495. package/dist/toast/index.js +1 -2
  1496. package/dist/toast/toast.examples.js +1 -2
  1497. package/dist/toast/toast.examples.js.map +1 -1
  1498. package/dist/toast/toast.js +1 -2
  1499. package/dist/toast/toast.js.map +1 -1
  1500. package/dist/toast/toast2.js +3 -4
  1501. package/dist/toast/toast2.js.map +1 -1
  1502. package/dist/toggletip/define.js +0 -1
  1503. package/dist/toggletip/define.js.map +1 -1
  1504. package/dist/toggletip/toggletip-footer.js +1 -2
  1505. package/dist/toggletip/toggletip-footer.js.map +1 -1
  1506. package/dist/toggletip/toggletip-footer2.js +2 -3
  1507. package/dist/toggletip/toggletip-footer2.js.map +1 -1
  1508. package/dist/toggletip/toggletip-header.js +1 -2
  1509. package/dist/toggletip/toggletip-header.js.map +1 -1
  1510. package/dist/toggletip/toggletip-header2.js +2 -3
  1511. package/dist/toggletip/toggletip-header2.js.map +1 -1
  1512. package/dist/toggletip/toggletip.examples.js +1 -2
  1513. package/dist/toggletip/toggletip.examples.js.map +1 -1
  1514. package/dist/toggletip/toggletip.global.js +1 -2
  1515. package/dist/toggletip/toggletip.global.js.map +1 -1
  1516. package/dist/toggletip/toggletip.js +1 -2
  1517. package/dist/toggletip/toggletip.js.map +1 -1
  1518. package/dist/toggletip/toggletip2.js +3 -4
  1519. package/dist/toggletip/toggletip2.js.map +1 -1
  1520. package/dist/toolbar/define.js +1 -2
  1521. package/dist/toolbar/define.js.map +1 -1
  1522. package/dist/toolbar/index.js +1 -2
  1523. package/dist/toolbar/toolbar.examples.js +1 -2
  1524. package/dist/toolbar/toolbar.examples.js.map +1 -1
  1525. package/dist/toolbar/toolbar.js +1 -2
  1526. package/dist/toolbar/toolbar.js.map +1 -1
  1527. package/dist/toolbar/toolbar2.js +3 -4
  1528. package/dist/toolbar/toolbar2.js.map +1 -1
  1529. package/dist/tooltip/define.js +1 -2
  1530. package/dist/tooltip/define.js.map +1 -1
  1531. package/dist/tooltip/index.js +1 -2
  1532. package/dist/tooltip/tooltip.examples.js +1 -2
  1533. package/dist/tooltip/tooltip.examples.js.map +1 -1
  1534. package/dist/tooltip/tooltip.js +1 -2
  1535. package/dist/tooltip/tooltip.js.map +1 -1
  1536. package/dist/tooltip/tooltip2.js +3 -4
  1537. package/dist/tooltip/tooltip2.js.map +1 -1
  1538. package/dist/tree/define.js +0 -1
  1539. package/dist/tree/define.js.map +1 -1
  1540. package/dist/tree/tree-node.js +1 -2
  1541. package/dist/tree/tree-node.js.map +1 -1
  1542. package/dist/tree/tree-node2.js +3 -4
  1543. package/dist/tree/tree-node2.js.map +1 -1
  1544. package/dist/tree/tree.examples.js +1 -2
  1545. package/dist/tree/tree.examples.js.map +1 -1
  1546. package/dist/tree/tree.global.js +1 -2
  1547. package/dist/tree/tree.global.js.map +1 -1
  1548. package/dist/tree/tree.js +1 -2
  1549. package/dist/tree/tree.js.map +1 -1
  1550. package/dist/tree/tree2.js +3 -4
  1551. package/dist/tree/tree2.js.map +1 -1
  1552. package/dist/tree/utils.js +1 -2
  1553. package/dist/tree/utils.js.map +1 -1
  1554. package/dist/week/define.js +0 -1
  1555. package/dist/week/define.js.map +1 -1
  1556. package/dist/week/index.js +1 -2
  1557. package/dist/week/week.examples.js +1 -2
  1558. package/dist/week/week.examples.js.map +1 -1
  1559. package/dist/week/week.js +1 -2
  1560. package/dist/week/week.js.map +1 -1
  1561. package/dist/week/week2.js +3 -4
  1562. package/dist/week/week2.js.map +1 -1
  1563. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"keynav-grid.controller.js","names":[],"sources":["../../../src/internal/controllers/keynav-grid.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { throttle } from '../utils/events.js';\nimport { GlobalStateService } from '@nvidia-elements/foundations/internal/state';\nimport { LogService } from '../services/log.service.js';\nimport {\n validKeyNavigationCode,\n isContextMenuClick,\n getFlattenedDOMTree,\n getFlattenedFocusableItems,\n KeynavCode,\n hasInvalidDOMGrid\n} from '../utils/dom.js';\nimport { focusElement, getActiveElement, setActiveKeyListItem, isSimpleFocusable } from '../utils/focus.js';\n\nexport interface KeynavGridConfig {\n grid?: HTMLElement;\n columnRow?: HTMLElement;\n columns?: NodeListOf<HTMLElement> | HTMLElement[];\n rows: NodeListOf<HTMLElement> | HTMLElement[];\n cells: NodeListOf<HTMLElement> | HTMLElement[];\n}\n\nexport interface KeynavGridElement {\n keynavGridConfig: KeynavGridConfig;\n}\n\n/**\n * https://w3c.github.io/aria-practices/#gridNav_focus\n */\nexport function keyNavigationGrid<T extends ReactiveElement & KeynavGridElement>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new KeyNavigationGridController(instance));\n}\n\nexport class KeyNavigationGridController<T extends ReactiveElement & KeynavGridElement> implements ReactiveController {\n #observer?: MutationObserver;\n #grid?: HTMLElement;\n #activeCell?: HTMLElement;\n #cells = new WeakSet<HTMLElement>();\n #updateCells = throttle(() => this.#initializeCells(), 500, { trailing: true });\n\n get #config() {\n return {\n grid: this.host,\n ...this.host.keynavGridConfig\n };\n }\n\n get #hostRows() {\n const rows = Array.from(this.#config.rows);\n\n if (this.#config.columnRow) {\n rows.unshift(this.#config.columnRow);\n }\n\n return rows;\n }\n\n get #hostCells() {\n const { columns, cells } = this.#config;\n return [...Array.from(columns ?? []), ...Array.from(cells)];\n }\n\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n async hostConnected() {\n await this.host.updateComplete;\n if (!this.host.isConnected) return;\n\n this.#grid = this.#config.grid;\n this.#initializeCells();\n this.#grid.addEventListener('keyup', this.#onKeyUp);\n this.#grid.addEventListener('keydown', this.#onKeyDown);\n this.#grid.addEventListener('mouseup', this.#onMouseUp);\n this.#observer?.disconnect();\n this.#observer = new MutationObserver(this.#onMutations);\n this.#observer.observe(this.#grid, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['tabindex']\n });\n }\n\n hostDisconnected() {\n this.#observer?.disconnect();\n this.#observer = undefined;\n this.#updateCells.cancel();\n this.#grid?.removeEventListener('keyup', this.#onKeyUp);\n this.#grid?.removeEventListener('keydown', this.#onKeyDown);\n this.#grid?.removeEventListener('mouseup', this.#onMouseUp);\n this.#grid = undefined;\n this.#activeCell = undefined;\n }\n\n #initializeCells() {\n const cells = this.#hostCells;\n const activeCell =\n cells.find(cell => cell.tabIndex === 0) ??\n (this.#activeCell && cells.includes(this.#activeCell) ? this.#activeCell : cells[0]);\n this.#activeCell = activeCell;\n this.#cells = new WeakSet(cells);\n for (const cell of cells) {\n const tabIndex = cell === activeCell ? '0' : '-1';\n // Avoid observing our own unchanged writes after a DOM morph or key change.\n if (cell.getAttribute('tabindex') !== tabIndex) {\n cell.setAttribute('tabindex', tabIndex);\n }\n }\n }\n\n #onMutations = (mutations: MutationRecord[]) => {\n const changed = mutations.some(mutation => {\n if (mutation.type === 'attributes') {\n const cell = mutation.target;\n // Ignore nested controls and our own tabindex writes.\n return (\n cell instanceof HTMLElement &&\n this.#cells.has(cell) &&\n cell.getAttribute('tabindex') !== (cell === this.#activeCell ? '0' : '-1')\n );\n }\n return [...mutation.addedNodes, ...mutation.removedNodes].some(node => node.nodeType === Node.ELEMENT_NODE);\n });\n if (changed) this.#updateCells();\n };\n\n #flushCellUpdates() {\n // A key event can arrive before the observer delivers a synchronous DOM update.\n this.#onMutations(this.#observer?.takeRecords() ?? []);\n this.#updateCells.flush();\n }\n\n #onMouseUp = (e: MouseEvent) => {\n if (!isContextMenuClick(e)) {\n this.#flushCellUpdates();\n const focusedElement = e.composedPath()[0] as HTMLElement;\n const activeCell = this.#hostCells.find(i => i === focusedElement) ? focusedElement : null;\n if (activeCell) {\n this.#setActiveCell(e, activeCell);\n }\n }\n };\n\n #onKeyDown = (e: KeyboardEvent) => {\n if (!validKeyNavigationCode(e)) return;\n this.#flushCellUpdates();\n const rows = Array.from(this.#hostRows);\n const cells = Array.from(this.#hostCells);\n\n if (GlobalStateService.state.env !== 'production' && hasInvalidDOMGrid(rows)) {\n LogService.warn('Invalid grid structure, all rows must have the same number of cells');\n return;\n }\n\n if (isSimpleFocusable(getActiveElement() as Element)) {\n const { x, y } = getNextKeyGridItem(cells, rows, {\n code: e.code,\n ctrlKey: e.ctrlKey,\n dir: this.host.dir\n });\n\n const nextCell = Array.from(getFlattenedDOMTree(rows[y]!)).filter(c => !!cells.find(i => i === c))[\n x\n ] as HTMLElement;\n this.#setActiveCell(e, nextCell);\n e.preventDefault();\n }\n };\n\n #setActiveCell(e: KeyboardEvent | MouseEvent, activeCell: HTMLElement) {\n this.#activeCell = activeCell;\n setActiveKeyListItem(this.#hostCells, activeCell);\n\n const items = getFlattenedFocusableItems(activeCell);\n const simpleItems = items.filter(i => isSimpleFocusable(i));\n\n if (simpleItems.length === 1 && items.length === 1) {\n focusElement(simpleItems[0]!);\n } else {\n focusElement(activeCell);\n }\n\n const detail = { code: e instanceof KeyboardEvent ? e.code : null, shiftKey: e.shiftKey, activeItem: activeCell };\n activeCell.dispatchEvent(new CustomEvent('nve-key-change', { bubbles: true, composed: true, detail }));\n }\n\n #onKeyUp = (e: KeyboardEvent) => {\n if (e.code !== 'Enter' && e.code !== 'Escape') return;\n this.#flushCellUpdates();\n const activeCell = Array.from(this.#hostCells).find(i => i.tabIndex === 0) as HTMLElement;\n if (e.code === 'Escape') {\n activeCell?.focus();\n }\n\n if (e.code === 'Enter' && activeCell === e.composedPath()[0]) {\n getFlattenedFocusableItems(activeCell)[0]?.focus();\n }\n };\n}\n\nfunction getGridDelta(code: KeynavCode | string, dir: string): { dx: number; dy: number } | null {\n const start = dir === 'rtl' ? KeynavCode.ArrowRight : KeynavCode.ArrowLeft;\n const end = dir === 'rtl' ? KeynavCode.ArrowLeft : KeynavCode.ArrowRight;\n\n if (code === KeynavCode.ArrowUp) return { dx: 0, dy: -1 };\n if (code === KeynavCode.ArrowDown) return { dx: 0, dy: 1 };\n if (code === start) return { dx: -1, dy: 0 };\n if (code === end) return { dx: 1, dy: 0 };\n if (code === KeynavCode.PageUp) return { dx: 0, dy: -4 };\n if (code === KeynavCode.PageDown) return { dx: 0, dy: 4 };\n return null;\n}\n\nfunction applyGridHomeEnd(\n code: KeynavCode | string,\n position: { x: number; y: number },\n bounds: { columnCount: number; rowCount: number; ctrlKey: boolean }\n) {\n const { x, y } = position;\n const { columnCount, rowCount, ctrlKey } = bounds;\n if (code === KeynavCode.End) {\n return { x: columnCount, y: ctrlKey ? rowCount : y };\n }\n\n if (code === KeynavCode.Home) {\n return { x: 0, y: ctrlKey ? 0 : y };\n }\n\n return { x, y };\n}\n\nexport function getNextKeyGridItem(\n cells: HTMLElement[],\n rows: HTMLElement[],\n config: { code: KeynavCode | string; ctrlKey: boolean; dir: string }\n) {\n const currentCell = cells.find(i => i.tabIndex === 0) as HTMLElement;\n const currentRow = rows.find(r => getFlattenedDOMTree(r).find(c => c === currentCell)) as HTMLElement;\n const currentRowCells = Array.from(getFlattenedDOMTree(currentRow)).filter(c => !!cells.find(i => i === c));\n const rowCount = rows.length - 1;\n const columnCount = currentRowCells.length - 1;\n\n let x = currentRowCells.indexOf(currentCell);\n let y = rows.indexOf(currentRow);\n\n const delta = getGridDelta(config.code, config.dir);\n if (delta) {\n x = Math.max(0, Math.min(columnCount, x + delta.dx));\n y = Math.max(0, Math.min(rowCount, y + delta.dy));\n } else {\n ({ x, y } = applyGridHomeEnd(config.code, { x, y }, { columnCount, rowCount, ctrlKey: config.ctrlKey }));\n }\n\n return { x, y };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"keynav-grid.controller.js","names":["keyNavigationGrid","target","KeyNavigationGridController","instance","throttle","#initializeCells","#config","#hostRows","rows","#hostCells","columns","cells","host","#grid","#onKeyUp","#onKeyDown","#onMouseUp","#observer","#onMutations","#updateCells","#activeCell","activeCell","cell","#cells","tabIndex","mutations","mutation","node","isContextMenuClick","#flushCellUpdates","focusedElement","i","#setActiveCell","validKeyNavigationCode","e","GlobalStateService","hasInvalidDOMGrid","isSimpleFocusable","getActiveElement","getNextKeyGridItem","nextCell","getFlattenedDOMTree","y","c","x","setActiveKeyListItem","items","getFlattenedFocusableItems","simpleItems","focusElement","detail","getGridDelta","start","dir","KeynavCode","end","code","applyGridHomeEnd","position","bounds","columnCount","ctrlKey","rowCount","currentCell","currentRow","r","currentRowCells","delta","config"],"sources":["../../../src/internal/controllers/keynav-grid.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { throttle } from '../utils/events.js';\nimport { GlobalStateService } from '@nvidia-elements/foundations/internal/state';\nimport { LogService } from '../services/log.service.js';\nimport {\n validKeyNavigationCode,\n isContextMenuClick,\n getFlattenedDOMTree,\n getFlattenedFocusableItems,\n KeynavCode,\n hasInvalidDOMGrid\n} from '../utils/dom.js';\nimport { focusElement, getActiveElement, setActiveKeyListItem, isSimpleFocusable } from '../utils/focus.js';\n\nexport interface KeynavGridConfig {\n grid?: HTMLElement;\n columnRow?: HTMLElement;\n columns?: NodeListOf<HTMLElement> | HTMLElement[];\n rows: NodeListOf<HTMLElement> | HTMLElement[];\n cells: NodeListOf<HTMLElement> | HTMLElement[];\n}\n\nexport interface KeynavGridElement {\n keynavGridConfig: KeynavGridConfig;\n}\n\n/**\n * https://w3c.github.io/aria-practices/#gridNav_focus\n */\nexport function keyNavigationGrid<T extends ReactiveElement & KeynavGridElement>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new KeyNavigationGridController(instance));\n}\n\nexport class KeyNavigationGridController<T extends ReactiveElement & KeynavGridElement> implements ReactiveController {\n #observer?: MutationObserver;\n #grid?: HTMLElement;\n #activeCell?: HTMLElement;\n #cells = new WeakSet<HTMLElement>();\n #updateCells = throttle(() => this.#initializeCells(), 500, { trailing: true });\n\n get #config() {\n return {\n grid: this.host,\n ...this.host.keynavGridConfig\n };\n }\n\n get #hostRows() {\n const rows = Array.from(this.#config.rows);\n\n if (this.#config.columnRow) {\n rows.unshift(this.#config.columnRow);\n }\n\n return rows;\n }\n\n get #hostCells() {\n const { columns, cells } = this.#config;\n return [...Array.from(columns ?? []), ...Array.from(cells)];\n }\n\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n async hostConnected() {\n await this.host.updateComplete;\n if (!this.host.isConnected) return;\n\n this.#grid = this.#config.grid;\n this.#initializeCells();\n this.#grid.addEventListener('keyup', this.#onKeyUp);\n this.#grid.addEventListener('keydown', this.#onKeyDown);\n this.#grid.addEventListener('mouseup', this.#onMouseUp);\n this.#observer?.disconnect();\n this.#observer = new MutationObserver(this.#onMutations);\n this.#observer.observe(this.#grid, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['tabindex']\n });\n }\n\n hostDisconnected() {\n this.#observer?.disconnect();\n this.#observer = undefined;\n this.#updateCells.cancel();\n this.#grid?.removeEventListener('keyup', this.#onKeyUp);\n this.#grid?.removeEventListener('keydown', this.#onKeyDown);\n this.#grid?.removeEventListener('mouseup', this.#onMouseUp);\n this.#grid = undefined;\n this.#activeCell = undefined;\n }\n\n #initializeCells() {\n const cells = this.#hostCells;\n const activeCell =\n cells.find(cell => cell.tabIndex === 0) ??\n (this.#activeCell && cells.includes(this.#activeCell) ? this.#activeCell : cells[0]);\n this.#activeCell = activeCell;\n this.#cells = new WeakSet(cells);\n for (const cell of cells) {\n const tabIndex = cell === activeCell ? '0' : '-1';\n // Avoid observing our own unchanged writes after a DOM morph or key change.\n if (cell.getAttribute('tabindex') !== tabIndex) {\n cell.setAttribute('tabindex', tabIndex);\n }\n }\n }\n\n #onMutations = (mutations: MutationRecord[]) => {\n const changed = mutations.some(mutation => {\n if (mutation.type === 'attributes') {\n const cell = mutation.target;\n // Ignore nested controls and our own tabindex writes.\n return (\n cell instanceof HTMLElement &&\n this.#cells.has(cell) &&\n cell.getAttribute('tabindex') !== (cell === this.#activeCell ? '0' : '-1')\n );\n }\n return [...mutation.addedNodes, ...mutation.removedNodes].some(node => node.nodeType === Node.ELEMENT_NODE);\n });\n if (changed) this.#updateCells();\n };\n\n #flushCellUpdates() {\n // A key event can arrive before the observer delivers a synchronous DOM update.\n this.#onMutations(this.#observer?.takeRecords() ?? []);\n this.#updateCells.flush();\n }\n\n #onMouseUp = (e: MouseEvent) => {\n if (!isContextMenuClick(e)) {\n this.#flushCellUpdates();\n const focusedElement = e.composedPath()[0] as HTMLElement;\n const activeCell = this.#hostCells.find(i => i === focusedElement) ? focusedElement : null;\n if (activeCell) {\n this.#setActiveCell(e, activeCell);\n }\n }\n };\n\n #onKeyDown = (e: KeyboardEvent) => {\n if (!validKeyNavigationCode(e)) return;\n this.#flushCellUpdates();\n const rows = Array.from(this.#hostRows);\n const cells = Array.from(this.#hostCells);\n\n if (GlobalStateService.state.env !== 'production' && hasInvalidDOMGrid(rows)) {\n LogService.warn('Invalid grid structure, all rows must have the same number of cells');\n return;\n }\n\n if (isSimpleFocusable(getActiveElement() as Element)) {\n const { x, y } = getNextKeyGridItem(cells, rows, {\n code: e.code,\n ctrlKey: e.ctrlKey,\n dir: this.host.dir\n });\n\n const nextCell = Array.from(getFlattenedDOMTree(rows[y]!)).filter(c => !!cells.find(i => i === c))[\n x\n ] as HTMLElement;\n this.#setActiveCell(e, nextCell);\n e.preventDefault();\n }\n };\n\n #setActiveCell(e: KeyboardEvent | MouseEvent, activeCell: HTMLElement) {\n this.#activeCell = activeCell;\n setActiveKeyListItem(this.#hostCells, activeCell);\n\n const items = getFlattenedFocusableItems(activeCell);\n const simpleItems = items.filter(i => isSimpleFocusable(i));\n\n if (simpleItems.length === 1 && items.length === 1) {\n focusElement(simpleItems[0]!);\n } else {\n focusElement(activeCell);\n }\n\n const detail = { code: e instanceof KeyboardEvent ? e.code : null, shiftKey: e.shiftKey, activeItem: activeCell };\n activeCell.dispatchEvent(new CustomEvent('nve-key-change', { bubbles: true, composed: true, detail }));\n }\n\n #onKeyUp = (e: KeyboardEvent) => {\n if (e.code !== 'Enter' && e.code !== 'Escape') return;\n this.#flushCellUpdates();\n const activeCell = Array.from(this.#hostCells).find(i => i.tabIndex === 0) as HTMLElement;\n if (e.code === 'Escape') {\n activeCell?.focus();\n }\n\n if (e.code === 'Enter' && activeCell === e.composedPath()[0]) {\n getFlattenedFocusableItems(activeCell)[0]?.focus();\n }\n };\n}\n\nfunction getGridDelta(code: KeynavCode | string, dir: string): { dx: number; dy: number } | null {\n const start = dir === 'rtl' ? KeynavCode.ArrowRight : KeynavCode.ArrowLeft;\n const end = dir === 'rtl' ? KeynavCode.ArrowLeft : KeynavCode.ArrowRight;\n\n if (code === KeynavCode.ArrowUp) return { dx: 0, dy: -1 };\n if (code === KeynavCode.ArrowDown) return { dx: 0, dy: 1 };\n if (code === start) return { dx: -1, dy: 0 };\n if (code === end) return { dx: 1, dy: 0 };\n if (code === KeynavCode.PageUp) return { dx: 0, dy: -4 };\n if (code === KeynavCode.PageDown) return { dx: 0, dy: 4 };\n return null;\n}\n\nfunction applyGridHomeEnd(\n code: KeynavCode | string,\n position: { x: number; y: number },\n bounds: { columnCount: number; rowCount: number; ctrlKey: boolean }\n) {\n const { x, y } = position;\n const { columnCount, rowCount, ctrlKey } = bounds;\n if (code === KeynavCode.End) {\n return { x: columnCount, y: ctrlKey ? rowCount : y };\n }\n\n if (code === KeynavCode.Home) {\n return { x: 0, y: ctrlKey ? 0 : y };\n }\n\n return { x, y };\n}\n\nexport function getNextKeyGridItem(\n cells: HTMLElement[],\n rows: HTMLElement[],\n config: { code: KeynavCode | string; ctrlKey: boolean; dir: string }\n) {\n const currentCell = cells.find(i => i.tabIndex === 0) as HTMLElement;\n const currentRow = rows.find(r => getFlattenedDOMTree(r).find(c => c === currentCell)) as HTMLElement;\n const currentRowCells = Array.from(getFlattenedDOMTree(currentRow)).filter(c => !!cells.find(i => i === c));\n const rowCount = rows.length - 1;\n const columnCount = currentRowCells.length - 1;\n\n let x = currentRowCells.indexOf(currentCell);\n let y = rows.indexOf(currentRow);\n\n const delta = getGridDelta(config.code, config.dir);\n if (delta) {\n x = Math.max(0, Math.min(columnCount, x + delta.dx));\n y = Math.max(0, Math.min(rowCount, y + delta.dy));\n } else {\n ({ x, y } = applyGridHomeEnd(config.code, { x, y }, { columnCount, rowCount, ctrlKey: config.ctrlKey }));\n }\n\n return { x, y };\n}\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- //#region src/internal/controllers/keynav-list.controller.examples.ts
1
+ // src/internal/controllers/keynav-list.controller.examples.ts
2
2
  var e = "";
3
- //#endregion
4
3
  export { e as default };
5
4
 
6
5
  //# sourceMappingURL=keynav-list.controller.examples.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keynav-list.controller.examples.js","names":[],"sources":["../../../src/internal/controllers/keynav-list.controller.examples.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { css, html, LitElement } from 'lit';\nimport { state } from 'lit/decorators/state.js';\nimport type { KeynavListConfig } from '@nvidia-elements/core/internal';\nimport { keyNavigationList } from '@nvidia-elements/core/internal';\n\nexport default {\n title: 'Internal/Controllers'\n}\n\nconst styles = css`\n section {\n display: grid;\n gap: 4px;\n grid-template-columns: repeat(10, 50px);\n }\n\n .vertical {\n grid-template-rows: repeat(10, 1fr);\n grid-template-columns: 50px;\n }\n\n .row {\n display: contents;\n }\n\n button {\n width: 100%;\n height: 30px;\n min-width: 30px;\n display: block;\n }\n\n button[selected] {\n background: green;\n color: white;\n }\n`;\n\n@keyNavigationList<DemoKeyNavigationList>()\nclass DemoKeyNavigationList extends LitElement {\n get keynavListConfig() {\n return {\n items: this.shadowRoot.querySelectorAll<HTMLElement>('button')\n }\n }\n\n @state() private selected = '0';\n @state() private active = '';\n\n static styles = [styles];\n\n render() {\n return html`\n <p nve-text=\"body\">Selected: ${this.selected}</p>\n <p nve-text=\"body\">Active: ${this.active}</p>\n <section @nve-key-change=${e => (this.active = e.detail.activeItem.textContent)}>\n ${Array.from(Array(10).keys()).map(i => html`<div>\n <button ?selected=${this.selected === `${i}`} @click=${e => (this.selected = e.target.innerText)}>${i}</button>\n </div>`)}\n </section>`;\n }\n}\ncustomElements.get('demo-key-navigation-list') || customElements.define('demo-key-navigation-list', DemoKeyNavigationList);\n\n/**\n * @summary Horizontal list keyboard navigation controller with arrow key support.\n * @tags test-case\n */\nexport const ListDemo = {\n render: () => html`<demo-key-navigation-list></demo-key-navigation-list>`\n};\n\n@keyNavigationList<DemoKeyNavigationListVertical>()\nclass DemoKeyNavigationListVertical extends LitElement {\n get keynavListConfig(): KeynavListConfig {\n return {\n layout: 'vertical',\n items: this.shadowRoot.querySelectorAll<HTMLElement>('button')\n }\n }\n\n @state() private selected = '0';\n @state() private active = '';\n\n static styles = [styles];\n\n render() {\n return html`\n <p nve-text=\"body\">Selected: ${this.selected}</p>\n <p nve-text=\"body\">Active: ${this.active}</p>\n <section class=\"vertical\" @nve-key-change=${e => (this.active = e.detail.activeItem.textContent)}>\n ${Array.from(Array(10).keys()).map(i => html`<div>\n <button ?selected=${this.selected === `${i}`} @click=${e => (this.selected = e.target.innerText)}>${i}</button>\n </div>`)}\n </section>\n `;\n }\n}\ncustomElements.get('demo-key-navigation-list-vertical') || customElements.define('demo-key-navigation-list-vertical', DemoKeyNavigationListVertical);\n\n/**\n * @summary Vertical list keyboard navigation controller with up and down arrow key support.\n * @tags test-case\n */\nexport const VerticalDemo = {\n render: () => html`<demo-key-navigation-list-vertical></demo-key-navigation-list-vertical>`\n};\n\n@keyNavigationList<DemoKeyNavigationListLoop>()\nclass DemoKeyNavigationListLoop extends LitElement {\n get keynavListConfig(): KeynavListConfig {\n return {\n loop: true,\n layout: 'vertical',\n items: this.shadowRoot.querySelectorAll<HTMLElement>('button')\n }\n }\n\n @state() private selected = '0';\n @state() private active = '';\n\n static styles = [styles];\n\n render() {\n return html`\n <p nve-text=\"body\">Selected: ${this.selected}</p>\n <p nve-text=\"body\">Active: ${this.active}</p>\n <section class=\"vertical\" @nve-key-change=${e => (this.active = e.detail.activeItem.textContent)}>\n ${Array.from(Array(10).keys()).map(i => html`<div>\n <button ?selected=${this.selected === `${i}`} @click=${e => (this.selected = e.target.innerText)}>${i}</button>\n </div>`)}\n </section>`;\n }\n}\ncustomElements.get('demo-key-navigation-list-loop') || customElements.define('demo-key-navigation-list-loop', DemoKeyNavigationListLoop);\n\n/**\n * @summary Vertical list keyboard navigation with looping enabled to wrap from last item to first.\n * @tags test-case\n */\nexport const LoopDemo = {\n render: () => html`<demo-key-navigation-list-loop></demo-key-navigation-list-loop>`\n};\n"],"mappings":";AAGA,IAAA,IAAc"}
1
+ {"version":3,"file":"keynav-list.controller.examples.js","names":["keynav_list_controller_examples_default"],"sources":["../../../src/internal/controllers/keynav-list.controller.examples.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { css, html, LitElement } from 'lit';\nimport { state } from 'lit/decorators/state.js';\nimport type { KeynavListConfig } from '@nvidia-elements/core/internal';\nimport { keyNavigationList } from '@nvidia-elements/core/internal';\n\nexport default {\n title: 'Internal/Controllers'\n}\n\nconst styles = css`\n section {\n display: grid;\n gap: 4px;\n grid-template-columns: repeat(10, 50px);\n }\n\n .vertical {\n grid-template-rows: repeat(10, 1fr);\n grid-template-columns: 50px;\n }\n\n .row {\n display: contents;\n }\n\n button {\n width: 100%;\n height: 30px;\n min-width: 30px;\n display: block;\n }\n\n button[selected] {\n background: green;\n color: white;\n }\n`;\n\n@keyNavigationList<DemoKeyNavigationList>()\nclass DemoKeyNavigationList extends LitElement {\n get keynavListConfig() {\n return {\n items: this.shadowRoot.querySelectorAll<HTMLElement>('button')\n }\n }\n\n @state() private selected = '0';\n @state() private active = '';\n\n static styles = [styles];\n\n render() {\n return html`\n <p nve-text=\"body\">Selected: ${this.selected}</p>\n <p nve-text=\"body\">Active: ${this.active}</p>\n <section @nve-key-change=${e => (this.active = e.detail.activeItem.textContent)}>\n ${Array.from(Array(10).keys()).map(i => html`<div>\n <button ?selected=${this.selected === `${i}`} @click=${e => (this.selected = e.target.innerText)}>${i}</button>\n </div>`)}\n </section>`;\n }\n}\ncustomElements.get('demo-key-navigation-list') || customElements.define('demo-key-navigation-list', DemoKeyNavigationList);\n\n/**\n * @summary Horizontal list keyboard navigation controller with arrow key support.\n * @tags test-case\n */\nexport const ListDemo = {\n render: () => html`<demo-key-navigation-list></demo-key-navigation-list>`\n};\n\n@keyNavigationList<DemoKeyNavigationListVertical>()\nclass DemoKeyNavigationListVertical extends LitElement {\n get keynavListConfig(): KeynavListConfig {\n return {\n layout: 'vertical',\n items: this.shadowRoot.querySelectorAll<HTMLElement>('button')\n }\n }\n\n @state() private selected = '0';\n @state() private active = '';\n\n static styles = [styles];\n\n render() {\n return html`\n <p nve-text=\"body\">Selected: ${this.selected}</p>\n <p nve-text=\"body\">Active: ${this.active}</p>\n <section class=\"vertical\" @nve-key-change=${e => (this.active = e.detail.activeItem.textContent)}>\n ${Array.from(Array(10).keys()).map(i => html`<div>\n <button ?selected=${this.selected === `${i}`} @click=${e => (this.selected = e.target.innerText)}>${i}</button>\n </div>`)}\n </section>\n `;\n }\n}\ncustomElements.get('demo-key-navigation-list-vertical') || customElements.define('demo-key-navigation-list-vertical', DemoKeyNavigationListVertical);\n\n/**\n * @summary Vertical list keyboard navigation controller with up and down arrow key support.\n * @tags test-case\n */\nexport const VerticalDemo = {\n render: () => html`<demo-key-navigation-list-vertical></demo-key-navigation-list-vertical>`\n};\n\n@keyNavigationList<DemoKeyNavigationListLoop>()\nclass DemoKeyNavigationListLoop extends LitElement {\n get keynavListConfig(): KeynavListConfig {\n return {\n loop: true,\n layout: 'vertical',\n items: this.shadowRoot.querySelectorAll<HTMLElement>('button')\n }\n }\n\n @state() private selected = '0';\n @state() private active = '';\n\n static styles = [styles];\n\n render() {\n return html`\n <p nve-text=\"body\">Selected: ${this.selected}</p>\n <p nve-text=\"body\">Active: ${this.active}</p>\n <section class=\"vertical\" @nve-key-change=${e => (this.active = e.detail.activeItem.textContent)}>\n ${Array.from(Array(10).keys()).map(i => html`<div>\n <button ?selected=${this.selected === `${i}`} @click=${e => (this.selected = e.target.innerText)}>${i}</button>\n </div>`)}\n </section>`;\n }\n}\ncustomElements.get('demo-key-navigation-list-loop') || customElements.define('demo-key-navigation-list-loop', DemoKeyNavigationListLoop);\n\n/**\n * @summary Vertical list keyboard navigation with looping enabled to wrap from last item to first.\n * @tags test-case\n */\nexport const LoopDemo = {\n render: () => html`<demo-key-navigation-list-loop></demo-key-navigation-list-loop>`\n};\n"],"mappings":";AAGA,IAAAA,IAAc"}
@@ -1,6 +1,6 @@
1
1
  import { focusElement as e, initializeKeyListItems as t, isFocusable as n, setActiveKeyListItem as r } from "../utils/focus.js";
2
2
  import { KeynavCode as i, validKeyNavigationCode as a } from "../utils/dom.js";
3
- //#region src/internal/controllers/keynav-list.controller.ts
3
+ // src/internal/controllers/keynav-list.controller.ts
4
4
  function o() {
5
5
  return (e) => e.addInitializer((e) => new s(e));
6
6
  }
@@ -31,7 +31,7 @@ var s = class {
31
31
  refreshItems(e) {
32
32
  let { manageFocus: t, manageTabindex: n, items: r, initialItem: i } = this.#e;
33
33
  if (!t || !n || this.#t) return;
34
- let a = r.find((t) => e.includes(t) && t.tabIndex === 0) ?? (i && r.includes(i) ? i : r[0]);
34
+ let a = r.find((e) => e.matches(":focus-within")) ?? r.find((t) => e.includes(t) && t.tabIndex === 0) ?? (i && r.includes(i) ? i : r[0]);
35
35
  Array.from(this.host.keynavListConfig.items).forEach((e) => {
36
36
  e.tabIndex = e === a ? 0 : -1;
37
37
  });
@@ -135,7 +135,6 @@ function d(e, t, n) {
135
135
  previous: i
136
136
  };
137
137
  }
138
- //#endregion
139
138
  export { s as KeyNavigationListController, d as getNextKeyListItem, o as keyNavigationList };
140
139
 
141
140
  //# sourceMappingURL=keynav-list.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keynav-list.controller.js","names":[],"sources":["../../../src/internal/controllers/keynav-list.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { focusElement, initializeKeyListItems, isFocusable, setActiveKeyListItem } from '../utils/focus.js';\nimport { KeynavCode, validKeyNavigationCode } from '../utils/dom.js';\n\nexport interface KeynavListConfig {\n items: NodeListOf<HTMLElement> | HTMLElement[];\n initialItem?: HTMLElement;\n layout?: 'both' | 'horizontal' | 'vertical';\n manageFocus?: boolean;\n manageTabindex?: boolean;\n loop?: boolean;\n dir?: string | null;\n}\n\nexport interface KeynavListElement {\n keynavListConfig: KeynavListConfig;\n}\n\n/** https://webaim.org/techniques/keyboard/ */\nexport function keyNavigationList<T extends ReactiveElement & KeynavListElement>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new KeyNavigationListController(instance));\n}\n\nexport class KeyNavigationListController<T extends ReactiveElement & KeynavListElement> implements ReactiveController {\n get #config(): KeynavListConfig & { items: HTMLElement[] } {\n return {\n layout: 'horizontal',\n manageFocus: true,\n manageTabindex: true,\n loop: false,\n dir: this.host.getAttribute('rtl'),\n ...this.host.keynavListConfig,\n items: Array.from(this.host.keynavListConfig.items).filter(\n (i: HTMLElement & { disabled?: boolean }) => !i.disabled\n )\n };\n }\n\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n /** @private attr nve-keynav-disabled is an internal API for advanced use cases only */\n get #keynavDisabled() {\n return this.host.hasAttribute('nve-keynav-disabled');\n }\n\n async hostConnected() {\n await this.host.updateComplete;\n if (!this.host.isConnected) return;\n this.#initializeTabIndex();\n this.host.addEventListener('pointerup', this.#onPointerUp);\n this.host.addEventListener('keydown', this.#onKeyDown);\n }\n\n hostDisconnected() {\n this.host.removeEventListener('pointerup', this.#onPointerUp);\n this.host.removeEventListener('keydown', this.#onKeyDown);\n }\n\n /** Updates the focus order after configured items change without moving focus. */\n refreshItems(previousItems: readonly HTMLElement[]) {\n const { manageFocus, manageTabindex, items, initialItem } = this.#config;\n if (!manageFocus || !manageTabindex || this.#keynavDisabled) return;\n\n const activeItem =\n items.find(item => previousItems.includes(item) && item.tabIndex === 0) ??\n (initialItem && items.includes(initialItem) ? initialItem : items[0]);\n Array.from(this.host.keynavListConfig.items).forEach(item => {\n item.tabIndex = item === activeItem ? 0 : -1;\n });\n }\n\n #initializeTabIndex() {\n const { manageFocus, manageTabindex, items, initialItem } = this.#config;\n if (manageFocus && manageTabindex && !this.#keynavDisabled) {\n initializeKeyListItems(items);\n if (initialItem && items.includes(initialItem)) {\n setActiveKeyListItem(items, initialItem);\n }\n }\n }\n\n #clickItem(e: PointerEvent) {\n const item = this.#getPointerActiveItem(e, this.#config.items);\n if (item) {\n this.#setActiveItem(e, item);\n }\n }\n\n #focusItem(e: KeyboardEvent) {\n if (validKeyNavigationCode(e) && !this.#keynavDisabled) {\n const { loop, layout, dir, items } = this.#config;\n const activeItem = this.#getKeyboardActiveItem(e, items);\n if (activeItem) {\n const { next, previous } = getNextKeyListItem(activeItem, Array.from(items), {\n loop,\n layout,\n dir,\n code: e.code\n });\n\n if (next !== previous) {\n this.#setActiveItem(e, items[next]!, items[previous]);\n }\n }\n }\n }\n\n #getKeyboardActiveItem(e: KeyboardEvent, items: HTMLElement[]) {\n const target = e.composedPath()[0];\n return target instanceof HTMLElement && items.includes(target) ? target : null;\n }\n\n #getPointerActiveItem(e: PointerEvent, items: HTMLElement[]) {\n const path = e.composedPath();\n const itemIndex = path.findIndex(item => item instanceof HTMLElement && items.includes(item));\n const item = path[itemIndex];\n\n if (!(item instanceof HTMLElement)) return null;\n\n const hasFocusableDescendant = path\n .slice(0, itemIndex)\n .some(descendant => descendant instanceof Element && isFocusable(descendant));\n return hasFocusableDescendant ? null : item;\n }\n\n #setActiveItem(e: KeyboardEvent | PointerEvent, activeItem: HTMLElement, previousItem?: HTMLElement) {\n const { manageFocus, manageTabindex, items } = this.#config;\n if (manageFocus) {\n if (manageTabindex) {\n setActiveKeyListItem(items, activeItem);\n }\n\n focusElement(activeItem);\n e.preventDefault();\n }\n\n const detail = {\n activeItem,\n previousItem,\n code: e instanceof KeyboardEvent ? e.code : null,\n metaKey: e.ctrlKey || e.metaKey,\n items\n };\n activeItem.dispatchEvent(new CustomEvent('nve-key-change', { bubbles: true, composed: true, detail }));\n }\n\n #onPointerUp = (e: PointerEvent) => this.#clickItem(e);\n\n #onKeyDown = (e: KeyboardEvent) => this.#focusItem(e);\n}\n\ninterface KeyListConfig {\n code: KeynavCode;\n loop?: boolean;\n layout?: 'horizontal' | 'vertical' | 'both';\n dir: string | null | undefined;\n}\n\nfunction resolveArrowDirection(config: KeyListConfig): 'backward' | 'forward' | null {\n const { code, layout, dir } = config;\n const start = dir === 'rtl' ? KeynavCode.ArrowRight : KeynavCode.ArrowLeft;\n const end = dir === 'rtl' ? KeynavCode.ArrowLeft : KeynavCode.ArrowRight;\n\n if (layout !== 'horizontal') {\n if (code === KeynavCode.ArrowUp) return 'backward';\n if (code === KeynavCode.ArrowDown) return 'forward';\n }\n\n if (layout !== 'vertical') {\n if (code === start) return 'backward';\n if (code === end) return 'forward';\n }\n\n return null;\n}\n\nfunction resolveSpecialKey(code: KeynavCode): 'home' | 'end' | 'pageup' | 'pagedown' | null {\n if (code === KeynavCode.End) return 'end';\n if (code === KeynavCode.Home) return 'home';\n if (code === KeynavCode.PageUp) return 'pageup';\n if (code === KeynavCode.PageDown) return 'pagedown';\n return null;\n}\n\nfunction navigateWithLoop(current: number, step: number, options: { limit: number; loop: boolean | undefined }) {\n const { limit, loop } = options;\n const next = current + step;\n if (next >= 0 && next <= limit) return next;\n return loop ? (step < 0 ? limit : 0) : current;\n}\n\nexport function getNextKeyListItem(item: HTMLElement, items: HTMLElement[], config: KeyListConfig) {\n let next = items.indexOf(item);\n const previous = next;\n const itemCount = items.length - 1;\n const direction = resolveArrowDirection(config);\n\n switch (direction ?? resolveSpecialKey(config.code)) {\n case 'backward':\n next = navigateWithLoop(next, -1, { limit: itemCount, loop: config.loop });\n break;\n case 'forward':\n next = navigateWithLoop(next, 1, { limit: itemCount, loop: config.loop });\n break;\n case 'end':\n next = itemCount;\n break;\n case 'home':\n next = 0;\n break;\n case 'pageup':\n next = Math.max(0, next - 4);\n break;\n case 'pagedown':\n next = Math.min(itemCount, next + 4);\n break;\n case null:\n break;\n }\n\n return { next, previous };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"keynav-list.controller.js","names":["keyNavigationList","target","KeyNavigationListController","instance","#config","i","host","#keynavDisabled","#initializeTabIndex","#onPointerUp","#onKeyDown","manageFocus","manageTabindex","activeItem","items","item","previousItems","initialItem","initializeKeyListItems","setActiveKeyListItem","#getPointerActiveItem","#setActiveItem","validKeyNavigationCode","#getKeyboardActiveItem","getNextKeyListItem","next","previous","path","itemIndex","descendant","isFocusable","focusElement","e","detail","#clickItem","#focusItem","resolveArrowDirection","config","start","dir","KeynavCode","end","layout","code","resolveSpecialKey","navigateWithLoop","options","current","step","limit","loop","itemCount"],"sources":["../../../src/internal/controllers/keynav-list.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { focusElement, initializeKeyListItems, isFocusable, setActiveKeyListItem } from '../utils/focus.js';\nimport { KeynavCode, validKeyNavigationCode } from '../utils/dom.js';\n\nexport interface KeynavListConfig {\n items: NodeListOf<HTMLElement> | HTMLElement[];\n initialItem?: HTMLElement;\n layout?: 'both' | 'horizontal' | 'vertical';\n manageFocus?: boolean;\n manageTabindex?: boolean;\n loop?: boolean;\n dir?: string | null;\n}\n\nexport interface KeynavListElement {\n keynavListConfig: KeynavListConfig;\n}\n\n/** https://webaim.org/techniques/keyboard/ */\nexport function keyNavigationList<T extends ReactiveElement & KeynavListElement>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new KeyNavigationListController(instance));\n}\n\nexport class KeyNavigationListController<T extends ReactiveElement & KeynavListElement> implements ReactiveController {\n get #config(): KeynavListConfig & { items: HTMLElement[] } {\n return {\n layout: 'horizontal',\n manageFocus: true,\n manageTabindex: true,\n loop: false,\n dir: this.host.getAttribute('rtl'),\n ...this.host.keynavListConfig,\n items: Array.from(this.host.keynavListConfig.items).filter(\n (i: HTMLElement & { disabled?: boolean }) => !i.disabled\n )\n };\n }\n\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n /** @private attr nve-keynav-disabled is an internal API for advanced use cases only */\n get #keynavDisabled() {\n return this.host.hasAttribute('nve-keynav-disabled');\n }\n\n async hostConnected() {\n await this.host.updateComplete;\n if (!this.host.isConnected) return;\n this.#initializeTabIndex();\n this.host.addEventListener('pointerup', this.#onPointerUp);\n this.host.addEventListener('keydown', this.#onKeyDown);\n }\n\n hostDisconnected() {\n this.host.removeEventListener('pointerup', this.#onPointerUp);\n this.host.removeEventListener('keydown', this.#onKeyDown);\n }\n\n /** Updates the focus order after configured items change without moving focus. */\n refreshItems(previousItems: readonly HTMLElement[]) {\n const { manageFocus, manageTabindex, items, initialItem } = this.#config;\n if (!manageFocus || !manageTabindex || this.#keynavDisabled) return;\n\n const activeItem =\n items.find(item => item.matches(':focus-within')) ??\n items.find(item => previousItems.includes(item) && item.tabIndex === 0) ??\n (initialItem && items.includes(initialItem) ? initialItem : items[0]);\n Array.from(this.host.keynavListConfig.items).forEach(item => {\n item.tabIndex = item === activeItem ? 0 : -1;\n });\n }\n\n #initializeTabIndex() {\n const { manageFocus, manageTabindex, items, initialItem } = this.#config;\n if (manageFocus && manageTabindex && !this.#keynavDisabled) {\n initializeKeyListItems(items);\n if (initialItem && items.includes(initialItem)) {\n setActiveKeyListItem(items, initialItem);\n }\n }\n }\n\n #clickItem(e: PointerEvent) {\n const item = this.#getPointerActiveItem(e, this.#config.items);\n if (item) {\n this.#setActiveItem(e, item);\n }\n }\n\n #focusItem(e: KeyboardEvent) {\n if (validKeyNavigationCode(e) && !this.#keynavDisabled) {\n const { loop, layout, dir, items } = this.#config;\n const activeItem = this.#getKeyboardActiveItem(e, items);\n if (activeItem) {\n const { next, previous } = getNextKeyListItem(activeItem, Array.from(items), {\n loop,\n layout,\n dir,\n code: e.code\n });\n\n if (next !== previous) {\n this.#setActiveItem(e, items[next]!, items[previous]);\n }\n }\n }\n }\n\n #getKeyboardActiveItem(e: KeyboardEvent, items: HTMLElement[]) {\n const target = e.composedPath()[0];\n return target instanceof HTMLElement && items.includes(target) ? target : null;\n }\n\n #getPointerActiveItem(e: PointerEvent, items: HTMLElement[]) {\n const path = e.composedPath();\n const itemIndex = path.findIndex(item => item instanceof HTMLElement && items.includes(item));\n const item = path[itemIndex];\n\n if (!(item instanceof HTMLElement)) return null;\n\n const hasFocusableDescendant = path\n .slice(0, itemIndex)\n .some(descendant => descendant instanceof Element && isFocusable(descendant));\n return hasFocusableDescendant ? null : item;\n }\n\n #setActiveItem(e: KeyboardEvent | PointerEvent, activeItem: HTMLElement, previousItem?: HTMLElement) {\n const { manageFocus, manageTabindex, items } = this.#config;\n if (manageFocus) {\n if (manageTabindex) {\n setActiveKeyListItem(items, activeItem);\n }\n\n focusElement(activeItem);\n e.preventDefault();\n }\n\n const detail = {\n activeItem,\n previousItem,\n code: e instanceof KeyboardEvent ? e.code : null,\n metaKey: e.ctrlKey || e.metaKey,\n items\n };\n activeItem.dispatchEvent(new CustomEvent('nve-key-change', { bubbles: true, composed: true, detail }));\n }\n\n #onPointerUp = (e: PointerEvent) => this.#clickItem(e);\n\n #onKeyDown = (e: KeyboardEvent) => this.#focusItem(e);\n}\n\ninterface KeyListConfig {\n code: KeynavCode;\n loop?: boolean;\n layout?: 'horizontal' | 'vertical' | 'both';\n dir: string | null | undefined;\n}\n\nfunction resolveArrowDirection(config: KeyListConfig): 'backward' | 'forward' | null {\n const { code, layout, dir } = config;\n const start = dir === 'rtl' ? KeynavCode.ArrowRight : KeynavCode.ArrowLeft;\n const end = dir === 'rtl' ? KeynavCode.ArrowLeft : KeynavCode.ArrowRight;\n\n if (layout !== 'horizontal') {\n if (code === KeynavCode.ArrowUp) return 'backward';\n if (code === KeynavCode.ArrowDown) return 'forward';\n }\n\n if (layout !== 'vertical') {\n if (code === start) return 'backward';\n if (code === end) return 'forward';\n }\n\n return null;\n}\n\nfunction resolveSpecialKey(code: KeynavCode): 'home' | 'end' | 'pageup' | 'pagedown' | null {\n if (code === KeynavCode.End) return 'end';\n if (code === KeynavCode.Home) return 'home';\n if (code === KeynavCode.PageUp) return 'pageup';\n if (code === KeynavCode.PageDown) return 'pagedown';\n return null;\n}\n\nfunction navigateWithLoop(current: number, step: number, options: { limit: number; loop: boolean | undefined }) {\n const { limit, loop } = options;\n const next = current + step;\n if (next >= 0 && next <= limit) return next;\n return loop ? (step < 0 ? limit : 0) : current;\n}\n\nexport function getNextKeyListItem(item: HTMLElement, items: HTMLElement[], config: KeyListConfig) {\n let next = items.indexOf(item);\n const previous = next;\n const itemCount = items.length - 1;\n const direction = resolveArrowDirection(config);\n\n switch (direction ?? resolveSpecialKey(config.code)) {\n case 'backward':\n next = navigateWithLoop(next, -1, { limit: itemCount, loop: config.loop });\n break;\n case 'forward':\n next = navigateWithLoop(next, 1, { limit: itemCount, loop: config.loop });\n break;\n case 'end':\n next = itemCount;\n break;\n case 'home':\n next = 0;\n break;\n case 'pageup':\n next = Math.max(0, next - 4);\n break;\n case 'pagedown':\n next = Math.min(itemCount, next + 4);\n break;\n case null:\n break;\n }\n\n return { next, previous };\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- //#region src/internal/controllers/keynav-spatial.controller.ts
1
+ // src/internal/controllers/keynav-spatial.controller.ts
2
2
  var e = class {
3
3
  #e;
4
4
  #t;
@@ -70,7 +70,6 @@ function t(e) {
70
70
  default: return;
71
71
  }
72
72
  }
73
- //#endregion
74
73
  export { e as KeyNavigationSpatialController };
75
74
 
76
75
  //# sourceMappingURL=keynav-spatial.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keynav-spatial.controller.js","names":[],"sources":["../../../src/internal/controllers/keynav-spatial.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveControllerHost } from 'lit';\n\ntype SpatialKeyHost = ReactiveControllerHost & HTMLElement;\n\nexport type SpatialKeyHandling = 'handled' | 'ignored';\n\nexport interface KeyNavigationSpatialControllerOptions {\n readonly isEnabled?: () => boolean;\n}\n\nexport type SpatialKeyCommand =\n | {\n readonly ctrlKey: boolean;\n readonly event: KeyboardEvent;\n readonly kind: 'direction';\n readonly horizontal: -1 | 0 | 1;\n readonly key: 'ArrowDown' | 'ArrowLeft' | 'ArrowRight' | 'ArrowUp';\n readonly shiftKey: boolean;\n readonly vertical: -1 | 0 | 1;\n }\n | {\n readonly event: KeyboardEvent;\n readonly kind: 'zoom';\n readonly key: '+' | '-' | '=';\n };\n\n/** Converts direct-host keyboard input into spatial direction and zoom commands. */\nexport class KeyNavigationSpatialController implements ReactiveController {\n readonly #host: SpatialKeyHost;\n readonly #isEnabled: () => boolean;\n\n constructor(host: SpatialKeyHost, { isEnabled = () => true }: KeyNavigationSpatialControllerOptions = {}) {\n this.#host = host;\n this.#isEnabled = isEnabled;\n host.addController(this);\n }\n\n hostConnected(): void {\n this.#host.addEventListener('keydown', this.#handleKeydown);\n }\n\n hostDisconnected(): void {\n this.#host.removeEventListener('keydown', this.#handleKeydown);\n }\n\n #handleKeydown = (event: KeyboardEvent): void => {\n if (!this.#isEnabled() || event.composedPath()[0] !== this.#host) return;\n const command = getSpatialKeyCommand(event);\n if (!command) return;\n this.#host.dispatchEvent(\n new CustomEvent<SpatialKeyCommand>('nve-key', {\n bubbles: false,\n cancelable: false,\n composed: false,\n detail: command\n })\n );\n };\n}\n\nfunction getSpatialKeyCommand(event: KeyboardEvent): SpatialKeyCommand | undefined {\n switch (event.key) {\n case 'ArrowDown':\n return {\n ctrlKey: event.ctrlKey,\n event,\n horizontal: 0,\n key: event.key,\n kind: 'direction',\n shiftKey: event.shiftKey,\n vertical: -1\n };\n case 'ArrowLeft':\n return {\n ctrlKey: event.ctrlKey,\n event,\n horizontal: -1,\n key: event.key,\n kind: 'direction',\n shiftKey: event.shiftKey,\n vertical: 0\n };\n case 'ArrowRight':\n return {\n ctrlKey: event.ctrlKey,\n event,\n horizontal: 1,\n key: event.key,\n kind: 'direction',\n shiftKey: event.shiftKey,\n vertical: 0\n };\n case 'ArrowUp':\n return {\n ctrlKey: event.ctrlKey,\n event,\n horizontal: 0,\n key: event.key,\n kind: 'direction',\n shiftKey: event.shiftKey,\n vertical: 1\n };\n case '+':\n case '-':\n case '=':\n return { event, key: event.key, kind: 'zoom' };\n default:\n return undefined;\n }\n}\n"],"mappings":";AA8BA,IAAa,IAAb,MAA0E;CACxE;CACA;CAEA,YAAY,GAAsB,EAAE,qBAAkB,OAAgD,CAAC,GAAG;EAGxG,AAFA,KAAK,KAAQ,GACb,KAAK,KAAa,GAClB,EAAK,cAAc,IAAI;CACzB;CAEA,gBAAsB;EACpB,KAAK,GAAM,iBAAiB,WAAW,KAAK,EAAc;CAC5D;CAEA,mBAAyB;EACvB,KAAK,GAAM,oBAAoB,WAAW,KAAK,EAAc;CAC/D;CAEA,MAAkB,MAA+B;EAC/C,IAAI,CAAC,KAAK,GAAW,KAAK,EAAM,aAAa,CAAC,CAAC,OAAO,KAAK,IAAO;EAClE,IAAM,IAAU,EAAqB,CAAK;EACrC,KACL,KAAK,GAAM,cACT,IAAI,YAA+B,WAAW;GAC5C,SAAS;GACT,YAAY;GACZ,UAAU;GACV,QAAQ;EACV,CAAC,CACH;CACF;AACF;AAEA,SAAS,EAAqB,GAAqD;CACjF,QAAQ,EAAM,KAAd;EACE,KAAK,aACH,OAAO;GACL,SAAS,EAAM;GACf;GACA,YAAY;GACZ,KAAK,EAAM;GACX,MAAM;GACN,UAAU,EAAM;GAChB,UAAU;EACZ;EACF,KAAK,aACH,OAAO;GACL,SAAS,EAAM;GACf;GACA,YAAY;GACZ,KAAK,EAAM;GACX,MAAM;GACN,UAAU,EAAM;GAChB,UAAU;EACZ;EACF,KAAK,cACH,OAAO;GACL,SAAS,EAAM;GACf;GACA,YAAY;GACZ,KAAK,EAAM;GACX,MAAM;GACN,UAAU,EAAM;GAChB,UAAU;EACZ;EACF,KAAK,WACH,OAAO;GACL,SAAS,EAAM;GACf;GACA,YAAY;GACZ,KAAK,EAAM;GACX,MAAM;GACN,UAAU,EAAM;GAChB,UAAU;EACZ;EACF,KAAK;EACL,KAAK;EACL,KAAK,KACH,OAAO;GAAE;GAAO,KAAK,EAAM;GAAK,MAAM;EAAO;EAC/C,SACE;CACJ;AACF"}
1
+ {"version":3,"file":"keynav-spatial.controller.js","names":["KeyNavigationSpatialController","#host","host","#isEnabled","isEnabled","#handleKeydown","event","command","getSpatialKeyCommand"],"sources":["../../../src/internal/controllers/keynav-spatial.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveControllerHost } from 'lit';\n\ntype SpatialKeyHost = ReactiveControllerHost & HTMLElement;\n\nexport type SpatialKeyHandling = 'handled' | 'ignored';\n\nexport interface KeyNavigationSpatialControllerOptions {\n readonly isEnabled?: () => boolean;\n}\n\nexport type SpatialKeyCommand =\n | {\n readonly ctrlKey: boolean;\n readonly event: KeyboardEvent;\n readonly kind: 'direction';\n readonly horizontal: -1 | 0 | 1;\n readonly key: 'ArrowDown' | 'ArrowLeft' | 'ArrowRight' | 'ArrowUp';\n readonly shiftKey: boolean;\n readonly vertical: -1 | 0 | 1;\n }\n | {\n readonly event: KeyboardEvent;\n readonly kind: 'zoom';\n readonly key: '+' | '-' | '=';\n };\n\n/** Converts direct-host keyboard input into spatial direction and zoom commands. */\nexport class KeyNavigationSpatialController implements ReactiveController {\n readonly #host: SpatialKeyHost;\n readonly #isEnabled: () => boolean;\n\n constructor(host: SpatialKeyHost, { isEnabled = () => true }: KeyNavigationSpatialControllerOptions = {}) {\n this.#host = host;\n this.#isEnabled = isEnabled;\n host.addController(this);\n }\n\n hostConnected(): void {\n this.#host.addEventListener('keydown', this.#handleKeydown);\n }\n\n hostDisconnected(): void {\n this.#host.removeEventListener('keydown', this.#handleKeydown);\n }\n\n #handleKeydown = (event: KeyboardEvent): void => {\n if (!this.#isEnabled() || event.composedPath()[0] !== this.#host) return;\n const command = getSpatialKeyCommand(event);\n if (!command) return;\n this.#host.dispatchEvent(\n new CustomEvent<SpatialKeyCommand>('nve-key', {\n bubbles: false,\n cancelable: false,\n composed: false,\n detail: command\n })\n );\n };\n}\n\nfunction getSpatialKeyCommand(event: KeyboardEvent): SpatialKeyCommand | undefined {\n switch (event.key) {\n case 'ArrowDown':\n return {\n ctrlKey: event.ctrlKey,\n event,\n horizontal: 0,\n key: event.key,\n kind: 'direction',\n shiftKey: event.shiftKey,\n vertical: -1\n };\n case 'ArrowLeft':\n return {\n ctrlKey: event.ctrlKey,\n event,\n horizontal: -1,\n key: event.key,\n kind: 'direction',\n shiftKey: event.shiftKey,\n vertical: 0\n };\n case 'ArrowRight':\n return {\n ctrlKey: event.ctrlKey,\n event,\n horizontal: 1,\n key: event.key,\n kind: 'direction',\n shiftKey: event.shiftKey,\n vertical: 0\n };\n case 'ArrowUp':\n return {\n ctrlKey: event.ctrlKey,\n event,\n horizontal: 0,\n key: event.key,\n kind: 'direction',\n shiftKey: event.shiftKey,\n vertical: 1\n };\n case '+':\n case '-':\n case '=':\n return { event, key: event.key, kind: 'zoom' };\n default:\n return undefined;\n }\n}\n"],"mappings":";AA8BA,IAAaA,IAAb,MAA0E;CACxE;CACA;CAEA,YAAY,GAAsB,EAAE,qBAAkB,OAAgD,CAAC,GAAG;EAGxG,AAFA,KAAKC,KAAQC,GACb,KAAKC,KAAaC,GAClBF,EAAK,cAAc,IAAI;CACzB;CAEA,gBAAsB;EACpB,KAAKD,GAAM,iBAAiB,WAAW,KAAKI,EAAc;CAC5D;CAEA,mBAAyB;EACvB,KAAKJ,GAAM,oBAAoB,WAAW,KAAKI,EAAc;CAC/D;CAEA,MAAkB,MAA+B;EAC/C,IAAI,CAAC,KAAKF,GAAW,KAAKG,EAAM,aAAa,CAAC,CAAC,OAAO,KAAKL,IAAO;EAClE,IAAMM,IAAUC,EAAqBF,CAAK;EAC1C,AAAKC,KACL,KAAKN,GAAM,cACT,IAAI,YAA+B,WAAW;GAC5C,SAAS;GACT,YAAY;GACZ,UAAU;GACV,QAAQM;EACV,CAAC,CACH;CACF;AACF;AAEA,SAASC,EAAqB,GAAqD;CACjF,QAAQF,EAAM,KAAd;EACE,KAAK,aACH,OAAO;GACL,SAASA,EAAM;GACf;GACA,YAAY;GACZ,KAAKA,EAAM;GACX,MAAM;GACN,UAAUA,EAAM;GAChB,UAAU;EACZ;EACF,KAAK,aACH,OAAO;GACL,SAASA,EAAM;GACf;GACA,YAAY;GACZ,KAAKA,EAAM;GACX,MAAM;GACN,UAAUA,EAAM;GAChB,UAAU;EACZ;EACF,KAAK,cACH,OAAO;GACL,SAASA,EAAM;GACf;GACA,YAAY;GACZ,KAAKA,EAAM;GACX,MAAM;GACN,UAAUA,EAAM;GAChB,UAAU;EACZ;EACF,KAAK,WACH,OAAO;GACL,SAASA,EAAM;GACf;GACA,YAAY;GACZ,KAAKA,EAAM;GACX,MAAM;GACN,UAAUA,EAAM;GAChB,UAAU;EACZ;EACF,KAAK;EACL,KAAK;EACL,KAAK,KACH,OAAO;GAAE;GAAO,KAAKA,EAAM;GAAK,MAAM;EAAO;EAC/C,SACE;CACJ;AACF"}
@@ -1,6 +1,5 @@
1
- //#region src/internal/controllers/popover.examples.ts
1
+ // src/internal/controllers/popover.examples.ts
2
2
  var e = "";
3
- //#endregion
4
3
  export { e as default };
5
4
 
6
5
  //# sourceMappingURL=popover.examples.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover.examples.js","names":[],"sources":["../../../src/internal/controllers/popover.examples.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 '@nvidia-elements/core/forms/define.js';\nimport '@nvidia-elements/core/button/define.js';\nimport '@nvidia-elements/core/icon-button/define.js';\nimport '@nvidia-elements/core/search/define.js';\nimport '@nvidia-elements/core/dialog/define.js';\nimport '@nvidia-elements/core/tooltip/define.js';\nimport '@nvidia-elements/core/toast/define.js';\nimport '@nvidia-elements/core/drawer/define.js';\nimport '@nvidia-elements/core/dropdown/define.js';\nimport '@nvidia-elements/core/notification/define.js';\nimport '@nvidia-elements/core/toggletip/define.js';\n\nexport default {\n title: 'Elements/Popovers',\n parameters: {\n layout: 'centered'\n }\n}\n\n/* eslint-disable @nvidia-elements/lint/no-missing-popover-trigger */\n\n/**\n * @summary Anchor-based positioning where popovers anchor to specific elements rather than their triggers.\n * @tags test-case\n */\nexport const Anchor = {\n render: () => html`\n <nve-tooltip id=\"popover-1\" anchor=\"btn-2\">tooltip 1</nve-tooltip>\n <nve-tooltip id=\"popover-2\" anchor=\"btn-1\">tooltip 2</nve-tooltip>\n <div nve-layout=\"row gap:xs align:center\">\n <nve-button id=\"btn-1\" popovertarget=\"popover-1\">button 1</nve-button>\n <nve-button id=\"btn-2\" popovertarget=\"popover-2\">button 2</nve-button>\n </div>\n `\n}\n\n/**\n * @summary Nested popovers within dialogs and notifications, with proper layering and stacking order.\n * @tags test-case\n */\nexport const Nested = {\n render: () => html`\n<style>\n #root-inner { height: 2000px;}\n</style>\n<nve-dialog closable modal>\n <h3 nve-text=\"heading\">Dialog</h3>\n <p nve-text=\"body\" style=\"margin-bottom: 48px\">hello there</p>\n\n <nve-button id=\"dropdown-btn\">search</nve-button>\n <nve-dropdown anchor=\"dropdown-btn\" closable position=\"bottom\" alignment=\"start\">\n <nve-search rounded>\n <label>search dataset</label>\n <nve-icon-button id=\"tooltip-btn\" icon-name=\"information-circle\" container=\"flat\" aria-label=\"more details\" slot=\"label\"></nve-icon-button>\n <input type=\"search\" placeholder=\"search\" />\n </nve-search>\n <nve-tooltip anchor=\"tooltip-btn\" position=\"top\">hello there</nve-tooltip>\n </nve-dropdown>\n</nve-dialog>\n\n<nve-notification closable position=\"bottom\" alignment=\"end\">\n <h3 nve-text=\"label\">notification</h3>\n <p nve-text=\"body\">some text content in a notification</p> \n</nve-notification>\n `\n}\n\n/**\n * @summary Programmatic popover control with async operations before showing the popover.\n * @tags test-case\n */\nexport const ProgrammaticTrigger = {\n render: () => html`\n<nve-toast hidden close-timeout=\"3000\">hello there</nve-toast>\n<nve-button>open after 2s</nve-button>\n\n<script type=\"module\">\n const toast = document.querySelector('nve-toast');\n const button = document.querySelector('nve-button');\n\n button.addEventListener('click', async () => {\n await new Promise(r => setTimeout(r, 2000)); // do an async task then open the popover\n toast.showPopover();\n });\n</script>`\n}\n\n/**\n * @summary Interactive showcase of all popover types (tooltip, toast, drawer, dropdown, dialog, notification) using modern popovertarget API.\n */\nexport const Interactive = {\n render: () => html`\n <div nve-layout=\"row align:center gap:xl\" style=\"height: 300px\">\n <nve-tooltip id=\"tooltip\">hello there</nve-tooltip>\n <nve-button popovertarget=\"tooltip\">tooltip</nve-button>\n\n <nve-toast id=\"toast\" close-timeout=\"1500\">copied!</nve-toast>\n <nve-button popovertarget=\"toast\">toast</nve-button>\n\n <nve-drawer id=\"drawer\" closable modal>\n <nve-drawer-header>\n <h3 nve-text=\"heading semibold sm\">Title</h3>\n </nve-drawer-header>\n <p nve-text=\"body\">some text content in a drawer</p>\n </nve-drawer>\n <nve-button popovertarget=\"drawer\">drawer</nve-button>\n\n <nve-dropdown id=\"dropdown\" closable>\n <h3 nve-text=\"heading\">Title</h3>\n <p nve-text=\"body\">some text content in a dropdown</p>\n </nve-dropdown>\n <nve-button popovertarget=\"dropdown\">dropdown</nve-button>\n\n <nve-dialog id=\"dialog\" closable modal>\n <h3 nve-text=\"heading\">Title</h3>\n <p nve-text=\"body\">some text content in a closable dialog</p>\n </nve-dialog>\n <nve-button popovertarget=\"dialog\">dialog</nve-button>\n\n <nve-notification id=\"notification\" closable position=\"bottom\" alignment=\"end\" close-timeout=\"2000\">\n <h3 nve-text=\"label\">notification</h3>\n <p nve-text=\"body\">some text content in a notification</p> \n </nve-notification>\n <nve-button popovertarget=\"notification\">notification snackbar</nve-button>\n </div>\n `\n}\n\n/* eslint-disable @nvidia-elements/lint/no-deprecated-popover-attributes */\n\n/**\n * @deprecated\n * @summary Legacy implementation showing all popover types using the older trigger/behavior-trigger API for backward compatibility.\n * @tags test-case\n */\nexport const LegacyInteractive = {\n render: () => html`\n <div nve-layout=\"row align:center gap:xl\" style=\"height: 300px\">\n <nve-tooltip trigger=\"tooltip-btn\" behavior-trigger position=\"top\" hidden>hello there</nve-tooltip>\n <nve-button id=\"tooltip-btn\">tooltip</nve-button>\n\n <nve-button id=\"toast-btn\">toast</nve-button>\n <nve-toast trigger=\"toast-btn\" behavior-trigger position=\"top\" close-timeout=\"1500\" hidden>copied!</nve-toast>\n\n <nve-button id=\"drawer-btn\" size=\"sm\">drawer</nve-button>\n <nve-drawer trigger=\"drawer-btn\" behavior-trigger hidden closable modal>\n <nve-drawer-header>\n <h3 nve-text=\"heading semibold sm\">Title</h3>\n </nve-drawer-header>\n <p nve-text=\"body\">some text content in a drawer</p>\n </nve-drawer>\n\n <nve-button id=\"dropdown-btn\">dropdown</nve-button>\n <nve-dropdown trigger=\"dropdown-btn\" behavior-trigger closable hidden>\n <h3 nve-text=\"heading\">Title</h3>\n <p nve-text=\"body\">some text content in a dropdown</p>\n </nve-dropdown>\n\n <nve-button id=\"dialog-btn\">dialog</nve-button>\n <nve-dialog trigger=\"dialog-btn\" behavior-trigger closable modal hidden>\n <h3 nve-text=\"heading\">Title</h3>\n <p nve-text=\"body\">some text content in a closable dialog</p>\n </nve-dialog>\n\n <nve-button id=\"notification-btn\">notification snackbar</nve-button>\n <nve-notification trigger=\"notification-btn\" behavior-trigger hidden closable position=\"bottom\" alignment=\"end\" close-timeout=\"2000\">\n <h3 nve-text=\"label\">notification</h3>\n <p nve-text=\"body\">some text content in a notification</p> \n </nve-notification>\n </div>\n `\n}\n\n/**\n * @summary Simple modal dialog with keyboard accessibility, including escape key to close functionality.\n * @tags test-case\n */\nexport const Closable = {\n render: () => html`\n <nve-button popovertarget=\"popover\">open dialog</nve-button>\n <nve-dialog id=\"popover\" modal>\n <p nve-text=\"body\">Press \"escape\" key to close.</p>\n </nve-dialog>\n `\n}\n\n/**\n * @summary example of declarative popovers using the Invoker Commands API\n */\nexport const InvokerCommand = {\n render: () => html`\n <nve-button commandfor=\"popover\" command=\"toggle-popover\">toggle-popover</nve-button>\n <nve-button commandfor=\"popover\" command=\"show-popover\">show-popover</nve-button>\n <nve-toggletip id=\"popover\">\n toggletip\n <nve-button commandfor=\"popover\" command=\"hide-popover\">hide-popover</nve-button>\n </nve-toggletip>\n `\n};\n\n/**\n * @summary Custom events like many standard DOM events bubble. When listening\n * to larger DOM trees, check which element dispatched the source event.\n */\nexport const EventBubbling = {\n render: () => html`\n <div style=\"width: 100vw; height: 100vh;\">\n <p nve-text=\"body\" id=\"event-example\">event:</p>\n <nve-button popovertarget=\"event-example-dialog\">open</nve-button>\n\n <nve-dialog id=\"event-example-dialog\" closable modal (close)=\"close($event)\" (open)=\"open($event)\">\n <nve-dialog-header>Header</nve-dialog-header>\n <div>\n <nve-button popovertarget=\"event-example-dropdown\">show dropdown</nve-button>\n </div>\n <nve-dropdown id=\"event-example-dropdown\">\n dropdown content\n </nve-dropdown>\n </nve-dialog>\n </div>\n\n <script type=\"module\">\n const dialog = document.querySelector('#event-example-dialog');\n const eventLabel = document.querySelector('#event-example');\n\n // Custom events like many standard DOM events bubble. By listening to\n // larger DOM trees check which element dispatched the source event\n dialog.addEventListener('open', e => {\n eventLabel.innerText = 'open: ' + e.target.localName;\n });\n\n dialog.addEventListener('close', e => {\n eventLabel.innerText = 'close: ' + e.target.localName;\n });\n </script>\n `\n}\n"],"mappings":";AAGA,IAAA,IAAS"}
1
+ {"version":3,"file":"popover.examples.js","names":["popover_examples_default"],"sources":["../../../src/internal/controllers/popover.examples.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 '@nvidia-elements/core/forms/define.js';\nimport '@nvidia-elements/core/button/define.js';\nimport '@nvidia-elements/core/icon-button/define.js';\nimport '@nvidia-elements/core/search/define.js';\nimport '@nvidia-elements/core/dialog/define.js';\nimport '@nvidia-elements/core/tooltip/define.js';\nimport '@nvidia-elements/core/toast/define.js';\nimport '@nvidia-elements/core/drawer/define.js';\nimport '@nvidia-elements/core/dropdown/define.js';\nimport '@nvidia-elements/core/notification/define.js';\nimport '@nvidia-elements/core/toggletip/define.js';\n\nexport default {\n title: 'Elements/Popovers',\n parameters: {\n layout: 'centered'\n }\n}\n\n/* eslint-disable @nvidia-elements/lint/no-missing-popover-trigger */\n\n/**\n * @summary Anchor-based positioning where popovers anchor to specific elements rather than their triggers.\n * @tags test-case\n */\nexport const Anchor = {\n render: () => html`\n <nve-tooltip id=\"popover-1\" anchor=\"btn-2\">tooltip 1</nve-tooltip>\n <nve-tooltip id=\"popover-2\" anchor=\"btn-1\">tooltip 2</nve-tooltip>\n <div nve-layout=\"row gap:xs align:center\">\n <nve-button id=\"btn-1\" popovertarget=\"popover-1\">button 1</nve-button>\n <nve-button id=\"btn-2\" popovertarget=\"popover-2\">button 2</nve-button>\n </div>\n `\n}\n\n/**\n * @summary Nested popovers within dialogs and notifications, with proper layering and stacking order.\n * @tags test-case\n */\nexport const Nested = {\n render: () => html`\n<style>\n #root-inner { height: 2000px;}\n</style>\n<nve-dialog closable modal>\n <h3 nve-text=\"heading\">Dialog</h3>\n <p nve-text=\"body\" style=\"margin-bottom: 48px\">hello there</p>\n\n <nve-button id=\"dropdown-btn\">search</nve-button>\n <nve-dropdown anchor=\"dropdown-btn\" closable position=\"bottom\" alignment=\"start\">\n <nve-search rounded>\n <label>search dataset</label>\n <nve-icon-button id=\"tooltip-btn\" icon-name=\"information-circle\" container=\"flat\" aria-label=\"more details\" slot=\"label\"></nve-icon-button>\n <input type=\"search\" placeholder=\"search\" />\n </nve-search>\n <nve-tooltip anchor=\"tooltip-btn\" position=\"top\">hello there</nve-tooltip>\n </nve-dropdown>\n</nve-dialog>\n\n<nve-notification closable position=\"bottom\" alignment=\"end\">\n <h3 nve-text=\"label\">notification</h3>\n <p nve-text=\"body\">some text content in a notification</p> \n</nve-notification>\n `\n}\n\n/**\n * @summary Programmatic popover control with async operations before showing the popover.\n * @tags test-case\n */\nexport const ProgrammaticTrigger = {\n render: () => html`\n<nve-toast hidden close-timeout=\"3000\">hello there</nve-toast>\n<nve-button>open after 2s</nve-button>\n\n<script type=\"module\">\n const toast = document.querySelector('nve-toast');\n const button = document.querySelector('nve-button');\n\n button.addEventListener('click', async () => {\n await new Promise(r => setTimeout(r, 2000)); // do an async task then open the popover\n toast.showPopover();\n });\n</script>`\n}\n\n/**\n * @summary Interactive showcase of all popover types (tooltip, toast, drawer, dropdown, dialog, notification) using modern popovertarget API.\n */\nexport const Interactive = {\n render: () => html`\n <div nve-layout=\"row align:center gap:xl\" style=\"height: 300px\">\n <nve-tooltip id=\"tooltip\">hello there</nve-tooltip>\n <nve-button popovertarget=\"tooltip\">tooltip</nve-button>\n\n <nve-toast id=\"toast\" close-timeout=\"1500\">copied!</nve-toast>\n <nve-button popovertarget=\"toast\">toast</nve-button>\n\n <nve-drawer id=\"drawer\" closable modal>\n <nve-drawer-header>\n <h3 nve-text=\"heading semibold sm\">Title</h3>\n </nve-drawer-header>\n <p nve-text=\"body\">some text content in a drawer</p>\n </nve-drawer>\n <nve-button popovertarget=\"drawer\">drawer</nve-button>\n\n <nve-dropdown id=\"dropdown\" closable>\n <h3 nve-text=\"heading\">Title</h3>\n <p nve-text=\"body\">some text content in a dropdown</p>\n </nve-dropdown>\n <nve-button popovertarget=\"dropdown\">dropdown</nve-button>\n\n <nve-dialog id=\"dialog\" closable modal>\n <h3 nve-text=\"heading\">Title</h3>\n <p nve-text=\"body\">some text content in a closable dialog</p>\n </nve-dialog>\n <nve-button popovertarget=\"dialog\">dialog</nve-button>\n\n <nve-notification id=\"notification\" closable position=\"bottom\" alignment=\"end\" close-timeout=\"2000\">\n <h3 nve-text=\"label\">notification</h3>\n <p nve-text=\"body\">some text content in a notification</p> \n </nve-notification>\n <nve-button popovertarget=\"notification\">notification snackbar</nve-button>\n </div>\n `\n}\n\n/* eslint-disable @nvidia-elements/lint/no-deprecated-popover-attributes */\n\n/**\n * @deprecated\n * @summary Legacy implementation showing all popover types using the older trigger/behavior-trigger API for backward compatibility.\n * @tags test-case\n */\nexport const LegacyInteractive = {\n render: () => html`\n <div nve-layout=\"row align:center gap:xl\" style=\"height: 300px\">\n <nve-tooltip trigger=\"tooltip-btn\" behavior-trigger position=\"top\" hidden>hello there</nve-tooltip>\n <nve-button id=\"tooltip-btn\">tooltip</nve-button>\n\n <nve-button id=\"toast-btn\">toast</nve-button>\n <nve-toast trigger=\"toast-btn\" behavior-trigger position=\"top\" close-timeout=\"1500\" hidden>copied!</nve-toast>\n\n <nve-button id=\"drawer-btn\" size=\"sm\">drawer</nve-button>\n <nve-drawer trigger=\"drawer-btn\" behavior-trigger hidden closable modal>\n <nve-drawer-header>\n <h3 nve-text=\"heading semibold sm\">Title</h3>\n </nve-drawer-header>\n <p nve-text=\"body\">some text content in a drawer</p>\n </nve-drawer>\n\n <nve-button id=\"dropdown-btn\">dropdown</nve-button>\n <nve-dropdown trigger=\"dropdown-btn\" behavior-trigger closable hidden>\n <h3 nve-text=\"heading\">Title</h3>\n <p nve-text=\"body\">some text content in a dropdown</p>\n </nve-dropdown>\n\n <nve-button id=\"dialog-btn\">dialog</nve-button>\n <nve-dialog trigger=\"dialog-btn\" behavior-trigger closable modal hidden>\n <h3 nve-text=\"heading\">Title</h3>\n <p nve-text=\"body\">some text content in a closable dialog</p>\n </nve-dialog>\n\n <nve-button id=\"notification-btn\">notification snackbar</nve-button>\n <nve-notification trigger=\"notification-btn\" behavior-trigger hidden closable position=\"bottom\" alignment=\"end\" close-timeout=\"2000\">\n <h3 nve-text=\"label\">notification</h3>\n <p nve-text=\"body\">some text content in a notification</p> \n </nve-notification>\n </div>\n `\n}\n\n/**\n * @summary Simple modal dialog with keyboard accessibility, including escape key to close functionality.\n * @tags test-case\n */\nexport const Closable = {\n render: () => html`\n <nve-button popovertarget=\"popover\">open dialog</nve-button>\n <nve-dialog id=\"popover\" modal>\n <p nve-text=\"body\">Press \"escape\" key to close.</p>\n </nve-dialog>\n `\n}\n\n/**\n * @summary example of declarative popovers using the Invoker Commands API\n */\nexport const InvokerCommand = {\n render: () => html`\n <nve-button commandfor=\"popover\" command=\"toggle-popover\">toggle-popover</nve-button>\n <nve-button commandfor=\"popover\" command=\"show-popover\">show-popover</nve-button>\n <nve-toggletip id=\"popover\">\n toggletip\n <nve-button commandfor=\"popover\" command=\"hide-popover\">hide-popover</nve-button>\n </nve-toggletip>\n `\n};\n\n/**\n * @summary Custom events like many standard DOM events bubble. When listening\n * to larger DOM trees, check which element dispatched the source event.\n */\nexport const EventBubbling = {\n render: () => html`\n <div style=\"width: 100vw; height: 100vh;\">\n <p nve-text=\"body\" id=\"event-example\">event:</p>\n <nve-button popovertarget=\"event-example-dialog\">open</nve-button>\n\n <nve-dialog id=\"event-example-dialog\" closable modal (close)=\"close($event)\" (open)=\"open($event)\">\n <nve-dialog-header>Header</nve-dialog-header>\n <div>\n <nve-button popovertarget=\"event-example-dropdown\">show dropdown</nve-button>\n </div>\n <nve-dropdown id=\"event-example-dropdown\">\n dropdown content\n </nve-dropdown>\n </nve-dialog>\n </div>\n\n <script type=\"module\">\n const dialog = document.querySelector('#event-example-dialog');\n const eventLabel = document.querySelector('#event-example');\n\n // Custom events like many standard DOM events bubble. By listening to\n // larger DOM trees check which element dispatched the source event\n dialog.addEventListener('open', e => {\n eventLabel.innerText = 'open: ' + e.target.localName;\n });\n\n dialog.addEventListener('close', e => {\n eventLabel.innerText = 'close: ' + e.target.localName;\n });\n </script>\n `\n}\n"],"mappings":";AAGA,IAAAA,IAAS"}
@@ -1,5 +1,5 @@
1
1
  import { attachInternals as e } from "../utils/a11y.js";
2
- //#region src/internal/controllers/state-expanded.controller.ts
2
+ // src/internal/controllers/state-expanded.controller.ts
3
3
  function t() {
4
4
  return (e) => e.addInitializer((e) => new n(e));
5
5
  }
@@ -14,7 +14,6 @@ var n = class {
14
14
  this.host.expanded !== null && this.host.expanded !== void 0 && (this.host._internals.ariaExpanded = `${this.host.expanded}`), this.host.expanded ? this.host._internals.states.add("expanded") : this.host._internals.states.delete("expanded"), this.host.readOnly && (this.host._internals.ariaExpanded = null, this.host._internals.states.delete("expanded"));
15
15
  }
16
16
  };
17
- //#endregion
18
17
  export { n as StateExpandedController, t as stateExpanded };
19
18
 
20
19
  //# sourceMappingURL=state-expanded.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-expanded.controller.js","names":[],"sources":["../../../src/internal/controllers/state-expanded.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals } from '../utils/a11y.js';\n\n/**\n * Adds expanded support for interactive custom elements including CSS State psuedo-selector :state(expanded) and aria-expanded.\n * https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded\n */\nexport function stateExpanded<T extends Expanded>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateExpandedController(instance));\n}\n\nexport type Expanded = ReactiveElement & { expanded: boolean; readOnly?: boolean; _internals?: ElementInternals };\n\nexport class StateExpandedController<T extends Expanded> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n }\n\n hostUpdated() {\n if (this.host.expanded !== null && this.host.expanded !== undefined) {\n this.host._internals!.ariaExpanded = `${this.host.expanded}`;\n }\n\n if (this.host.expanded) {\n this.host._internals!.states.add('expanded');\n } else {\n this.host._internals!.states.delete('expanded');\n }\n\n if (this.host.readOnly) {\n this.host._internals!.ariaExpanded = null;\n this.host._internals!.states.delete('expanded');\n }\n }\n}\n"],"mappings":";;AAYA,SAAgB,IAAoD;CAClE,QAAQ,MACN,EAAO,gBAAiB,MAAgB,IAAI,EAAwB,CAAQ,CAAC;AACjF;AAIA,IAAa,IAAb,MAAuF;CACrF,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAA,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EACd,EAAgB,KAAK,IAAI;CAC3B;CAEA,cAAc;EAWZ,AAVI,KAAK,KAAK,aAAa,QAAQ,KAAK,KAAK,aAAa,KAAA,MACxD,KAAK,KAAK,WAAY,eAAe,GAAG,KAAK,KAAK,aAGhD,KAAK,KAAK,WACZ,KAAK,KAAK,WAAY,OAAO,IAAI,UAAU,IAE3C,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU,GAG5C,KAAK,KAAK,aACZ,KAAK,KAAK,WAAY,eAAe,MACrC,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU;CAElD;AACF"}
1
+ {"version":3,"file":"state-expanded.controller.js","names":["stateExpanded","target","StateExpandedController","instance","host"],"sources":["../../../src/internal/controllers/state-expanded.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals } from '../utils/a11y.js';\n\n/**\n * Adds expanded support for interactive custom elements including CSS State psuedo-selector :state(expanded) and aria-expanded.\n * https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded\n */\nexport function stateExpanded<T extends Expanded>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateExpandedController(instance));\n}\n\nexport type Expanded = ReactiveElement & { expanded: boolean; readOnly?: boolean; _internals?: ElementInternals };\n\nexport class StateExpandedController<T extends Expanded> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n }\n\n hostUpdated() {\n if (this.host.expanded !== null && this.host.expanded !== undefined) {\n this.host._internals!.ariaExpanded = `${this.host.expanded}`;\n }\n\n if (this.host.expanded) {\n this.host._internals!.states.add('expanded');\n } else {\n this.host._internals!.states.delete('expanded');\n }\n\n if (this.host.readOnly) {\n this.host._internals!.ariaExpanded = null;\n this.host._internals!.states.delete('expanded');\n }\n }\n}\n"],"mappings":";;AAYA,SAAgBA,IAAoD;CAClE,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAAwBC,CAAQ,CAAC;AACjF;AAIA,IAAaD,IAAb,MAAuF;CACrF,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAE,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EACd,EAAgB,KAAK,IAAI;CAC3B;CAEA,cAAc;EAWZ,AAVI,KAAK,KAAK,aAAa,QAAQ,KAAK,KAAK,aAAa,KAAA,MACxD,KAAK,KAAK,WAAY,eAAe,GAAG,KAAK,KAAK,aAGhD,KAAK,KAAK,WACZ,KAAK,KAAK,WAAY,OAAO,IAAI,UAAU,IAE3C,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU,GAG5C,KAAK,KAAK,aACZ,KAAK,KAAK,WAAY,eAAe,MACrC,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU;CAElD;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { attachInternals as e } from "../utils/a11y.js";
2
- //#region src/internal/controllers/state-highlighted.controller.ts
2
+ // src/internal/controllers/state-highlighted.controller.ts
3
3
  function t() {
4
4
  return (e) => e.addInitializer((e) => new n(e));
5
5
  }
@@ -14,7 +14,6 @@ var n = class {
14
14
  this.host.highlighted ? this.host._internals.states.add("highlighted") : this.host._internals.states.delete("highlighted");
15
15
  }
16
16
  };
17
- //#endregion
18
17
  export { n as StateHighlightedController, t as stateHighlighted };
19
18
 
20
19
  //# sourceMappingURL=state-highlighted.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-highlighted.controller.js","names":[],"sources":["../../../src/internal/controllers/state-highlighted.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals } from '../utils/a11y.js';\n\n/**\n * Adds highlighted support for interactive custom elements including CSS State psuedo-selector :state(highlighted).\n * https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n */\nexport function stateHighlighted<T extends Highlighted>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateHighlightedController(instance));\n}\n\nexport type Highlighted = ReactiveElement & { highlighted: boolean; _internals?: ElementInternals };\n\nexport class StateHighlightedController<T extends Highlighted> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n }\n\n hostUpdated() {\n if (this.host.highlighted) {\n this.host._internals!.states.add('highlighted');\n } else {\n this.host._internals!.states.delete('highlighted');\n }\n }\n}\n"],"mappings":";;AAWA,SAAgB,IAA0D;CACxE,QAAQ,MACN,EAAO,gBAAiB,MAAgB,IAAI,EAA2B,CAAQ,CAAC;AACpF;AAIA,IAAa,IAAb,MAA6F;CAC3F,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAA,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EACd,EAAgB,KAAK,IAAI;CAC3B;CAEA,cAAc;EACZ,AAAI,KAAK,KAAK,cACZ,KAAK,KAAK,WAAY,OAAO,IAAI,aAAa,IAE9C,KAAK,KAAK,WAAY,OAAO,OAAO,aAAa;CAErD;AACF"}
1
+ {"version":3,"file":"state-highlighted.controller.js","names":["stateHighlighted","target","StateHighlightedController","instance","host"],"sources":["../../../src/internal/controllers/state-highlighted.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals } from '../utils/a11y.js';\n\n/**\n * Adds highlighted support for interactive custom elements including CSS State psuedo-selector :state(highlighted).\n * https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n */\nexport function stateHighlighted<T extends Highlighted>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateHighlightedController(instance));\n}\n\nexport type Highlighted = ReactiveElement & { highlighted: boolean; _internals?: ElementInternals };\n\nexport class StateHighlightedController<T extends Highlighted> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n }\n\n hostUpdated() {\n if (this.host.highlighted) {\n this.host._internals!.states.add('highlighted');\n } else {\n this.host._internals!.states.delete('highlighted');\n }\n }\n}\n"],"mappings":";;AAWA,SAAgBA,IAA0D;CACxE,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAA2BC,CAAQ,CAAC;AACpF;AAIA,IAAaD,IAAb,MAA6F;CAC3F,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAE,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EACd,EAAgB,KAAK,IAAI;CAC3B;CAEA,cAAc;EACZ,AAAI,KAAK,KAAK,cACZ,KAAK,KAAK,WAAY,OAAO,IAAI,aAAa,IAE9C,KAAK,KAAK,WAAY,OAAO,OAAO,aAAa;CAErD;AACF"}
@@ -1,6 +1,6 @@
1
1
  import { endOfScrollBox as e } from "../utils/dom.js";
2
2
  import { attachInternals as t } from "../utils/a11y.js";
3
- //#region src/internal/controllers/state-scroll.controller.ts
3
+ // src/internal/controllers/state-scroll.controller.ts
4
4
  function n() {
5
5
  return (e) => e.addInitializer((e) => new r(e));
6
6
  }
@@ -54,7 +54,6 @@ var r = class {
54
54
  e?.has("scrolling") && e.delete("scrolling");
55
55
  }
56
56
  };
57
- //#endregion
58
57
  export { r as StateScrollController, n as stateScroll };
59
58
 
60
59
  //# sourceMappingURL=state-scroll.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-scroll.controller.js","names":[],"sources":["../../../src/internal/controllers/state-scroll.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals, endOfScrollBox } from '@nvidia-elements/core/internal';\n\n/**\n * Adds active scroll state detection\n */\nexport function stateScroll<T extends Scroll>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateScrollController(instance));\n}\n\nexport interface StateScrollConfig {\n target?: HTMLElement;\n scrollOffset?: number;\n}\n\nexport type Scroll = ReactiveElement & {\n _internals?: ElementInternals;\n stateScrollConfig?: StateScrollConfig;\n};\n\nexport class StateScrollController<T extends Scroll> implements ReactiveController {\n #activeTarget?: HTMLElement;\n #scrollEndTimeout?: ReturnType<typeof setTimeout>;\n\n get #target(): HTMLElement {\n const target = this.host.stateScrollConfig?.target;\n return target ? target : this.host;\n }\n\n get #offset() {\n return this.host.stateScrollConfig?.scrollOffset ?? 0;\n }\n\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n async hostConnected() {\n await this.host.updateComplete;\n attachInternals(this.host);\n this.#syncTarget();\n }\n\n hostUpdated() {\n this.#syncTarget();\n }\n\n hostDisconnected() {\n this.#removeTargetListeners();\n }\n\n #syncTarget() {\n const target = this.#target;\n if (this.#activeTarget === target) return;\n\n this.#removeTargetListeners();\n this.#activeTarget = target;\n this.#activeTarget.addEventListener('scrollend', this.#onScrollEnd);\n this.#startScroll();\n }\n\n #onScrollEnd = () => {\n this.#cancelScrollEnd();\n // Keep brief scroll bursts in one state to reduce repeated style invalidation.\n if (this.host._internals!.states.has('scrolling')) {\n this.#scrollEndTimeout = setTimeout(() => {\n this.#scrollEndTimeout = undefined;\n this.host._internals!.states.delete('scrolling');\n }, 100);\n }\n this.#startScroll();\n\n if (this.#activeTarget && endOfScrollBox(this.#activeTarget, this.#offset)) {\n this.host.dispatchEvent(new CustomEvent('scrollboxend', { bubbles: true, composed: true }));\n }\n };\n\n #onScroll = () => {\n this.#cancelScrollEnd();\n const states = this.host._internals!.states;\n if (!states.has('scrolling')) states.add('scrolling');\n };\n\n #cancelScrollEnd() {\n if (this.#scrollEndTimeout !== undefined) {\n clearTimeout(this.#scrollEndTimeout);\n this.#scrollEndTimeout = undefined;\n }\n }\n\n #startScroll() {\n this.#activeTarget?.removeEventListener('scroll', this.#onScroll);\n this.#activeTarget?.addEventListener('scroll', this.#onScroll, { once: true });\n }\n\n #removeTargetListeners() {\n this.#cancelScrollEnd();\n this.#activeTarget?.removeEventListener('scroll', this.#onScroll);\n this.#activeTarget?.removeEventListener('scrollend', this.#onScrollEnd);\n this.#activeTarget = undefined;\n const states = this.host._internals?.states;\n if (states?.has('scrolling')) states.delete('scrolling');\n }\n}\n"],"mappings":";;;AAUA,SAAgB,IAAgD;CAC9D,QAAQ,MACN,EAAO,gBAAiB,MAAgB,IAAI,EAAsB,CAAQ,CAAC;AAC/E;AAYA,IAAa,IAAb,MAAmF;CACjF;CACA;CAEA,IAAI,KAAuB;EAEzB,OADe,KAAK,KAAK,mBAAmB,UACnB,KAAK;CAChC;CAEA,IAAI,KAAU;EACZ,OAAO,KAAK,KAAK,mBAAmB,gBAAgB;CACtD;CAEA,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAA,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,MAAM,gBAAgB;EAGpB,AAFA,MAAM,KAAK,KAAK,gBAChB,EAAgB,KAAK,IAAI,GACzB,KAAK,GAAY;CACnB;CAEA,cAAc;EACZ,KAAK,GAAY;CACnB;CAEA,mBAAmB;EACjB,KAAK,GAAuB;CAC9B;CAEA,KAAc;EACZ,IAAM,IAAS,KAAK;EAChB,KAAK,OAAkB,MAE3B,KAAK,GAAuB,GAC5B,KAAK,KAAgB,GACrB,KAAK,GAAc,iBAAiB,aAAa,KAAK,EAAY,GAClE,KAAK,GAAa;CACpB;CAEA,WAAqB;EAWnB,AAVA,KAAK,GAAiB,GAElB,KAAK,KAAK,WAAY,OAAO,IAAI,WAAW,MAC9C,KAAK,KAAoB,iBAAiB;GAExC,AADA,KAAK,KAAoB,KAAA,GACzB,KAAK,KAAK,WAAY,OAAO,OAAO,WAAW;EACjD,GAAG,GAAG,IAER,KAAK,GAAa,GAEd,KAAK,MAAiB,EAAe,KAAK,IAAe,KAAK,EAAO,KACvE,KAAK,KAAK,cAAc,IAAI,YAAY,gBAAgB;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CAE9F;CAEA,WAAkB;EAChB,KAAK,GAAiB;EACtB,IAAM,IAAS,KAAK,KAAK,WAAY;EACrC,AAAK,EAAO,IAAI,WAAW,KAAG,EAAO,IAAI,WAAW;CACtD;CAEA,KAAmB;EACjB,AAAI,KAAK,OAAsB,KAAA,MAC7B,aAAa,KAAK,EAAiB,GACnC,KAAK,KAAoB,KAAA;CAE7B;CAEA,KAAe;EAEb,AADA,KAAK,IAAe,oBAAoB,UAAU,KAAK,EAAS,GAChE,KAAK,IAAe,iBAAiB,UAAU,KAAK,IAAW,EAAE,MAAM,GAAK,CAAC;CAC/E;CAEA,KAAyB;EAIvB,AAHA,KAAK,GAAiB,GACtB,KAAK,IAAe,oBAAoB,UAAU,KAAK,EAAS,GAChE,KAAK,IAAe,oBAAoB,aAAa,KAAK,EAAY,GACtE,KAAK,KAAgB,KAAA;EACrB,IAAM,IAAS,KAAK,KAAK,YAAY;EACrC,AAAI,GAAQ,IAAI,WAAW,KAAG,EAAO,OAAO,WAAW;CACzD;AACF"}
1
+ {"version":3,"file":"state-scroll.controller.js","names":["stateScroll","target","StateScrollController","instance","#target","#offset","host","attachInternals","#syncTarget","#removeTargetListeners","#activeTarget","#onScrollEnd","#startScroll","#cancelScrollEnd","#scrollEndTimeout","endOfScrollBox","states","#onScroll"],"sources":["../../../src/internal/controllers/state-scroll.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals, endOfScrollBox } from '@nvidia-elements/core/internal';\n\n/**\n * Adds active scroll state detection\n */\nexport function stateScroll<T extends Scroll>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateScrollController(instance));\n}\n\nexport interface StateScrollConfig {\n target?: HTMLElement;\n scrollOffset?: number;\n}\n\nexport type Scroll = ReactiveElement & {\n _internals?: ElementInternals;\n stateScrollConfig?: StateScrollConfig;\n};\n\nexport class StateScrollController<T extends Scroll> implements ReactiveController {\n #activeTarget?: HTMLElement;\n #scrollEndTimeout?: ReturnType<typeof setTimeout>;\n\n get #target(): HTMLElement {\n const target = this.host.stateScrollConfig?.target;\n return target ? target : this.host;\n }\n\n get #offset() {\n return this.host.stateScrollConfig?.scrollOffset ?? 0;\n }\n\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n async hostConnected() {\n await this.host.updateComplete;\n attachInternals(this.host);\n this.#syncTarget();\n }\n\n hostUpdated() {\n this.#syncTarget();\n }\n\n hostDisconnected() {\n this.#removeTargetListeners();\n }\n\n #syncTarget() {\n const target = this.#target;\n if (this.#activeTarget === target) return;\n\n this.#removeTargetListeners();\n this.#activeTarget = target;\n this.#activeTarget.addEventListener('scrollend', this.#onScrollEnd);\n this.#startScroll();\n }\n\n #onScrollEnd = () => {\n this.#cancelScrollEnd();\n // Keep brief scroll bursts in one state to reduce repeated style invalidation.\n if (this.host._internals!.states.has('scrolling')) {\n this.#scrollEndTimeout = setTimeout(() => {\n this.#scrollEndTimeout = undefined;\n this.host._internals!.states.delete('scrolling');\n }, 100);\n }\n this.#startScroll();\n\n if (this.#activeTarget && endOfScrollBox(this.#activeTarget, this.#offset)) {\n this.host.dispatchEvent(new CustomEvent('scrollboxend', { bubbles: true, composed: true }));\n }\n };\n\n #onScroll = () => {\n this.#cancelScrollEnd();\n const states = this.host._internals!.states;\n if (!states.has('scrolling')) states.add('scrolling');\n };\n\n #cancelScrollEnd() {\n if (this.#scrollEndTimeout !== undefined) {\n clearTimeout(this.#scrollEndTimeout);\n this.#scrollEndTimeout = undefined;\n }\n }\n\n #startScroll() {\n this.#activeTarget?.removeEventListener('scroll', this.#onScroll);\n this.#activeTarget?.addEventListener('scroll', this.#onScroll, { once: true });\n }\n\n #removeTargetListeners() {\n this.#cancelScrollEnd();\n this.#activeTarget?.removeEventListener('scroll', this.#onScroll);\n this.#activeTarget?.removeEventListener('scrollend', this.#onScrollEnd);\n this.#activeTarget = undefined;\n const states = this.host._internals?.states;\n if (states?.has('scrolling')) states.delete('scrolling');\n }\n}\n"],"mappings":";;;AAUA,SAAgBA,IAAgD;CAC9D,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAAsBC,CAAQ,CAAC;AAC/E;AAYA,IAAaD,IAAb,MAAmF;CACjF;CACA;CAEA,IAAIE,KAAuB;EAEzB,OADe,KAAK,KAAK,mBAAmB,UACnB,KAAK;CAChC;CAEA,IAAIC,KAAU;EACZ,OAAO,KAAK,KAAK,mBAAmB,gBAAgB;CACtD;CAEA,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAC,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,MAAM,gBAAgB;EAGpB,AAFA,MAAM,KAAK,KAAK,gBAChBC,EAAgB,KAAK,IAAI,GACzB,KAAKC,GAAY;CACnB;CAEA,cAAc;EACZ,KAAKA,GAAY;CACnB;CAEA,mBAAmB;EACjB,KAAKC,GAAuB;CAC9B;CAEA,KAAc;EACZ,IAAMR,IAAS,KAAKG;EACpB,AAAI,KAAKM,OAAkBT,MAE3B,KAAKQ,GAAuB,GAC5B,KAAKC,KAAgBT,GACrB,KAAKS,GAAc,iBAAiB,aAAa,KAAKC,EAAY,GAClE,KAAKC,GAAa;CACpB;CAEA,WAAqB;EAWnB,AAVA,KAAKC,GAAiB,GAElB,KAAK,KAAK,WAAY,OAAO,IAAI,WAAW,MAC9C,KAAKC,KAAoB,iBAAiB;GAExC,AADA,KAAKA,KAAoB,KAAA,GACzB,KAAK,KAAK,WAAY,OAAO,OAAO,WAAW;EACjD,GAAG,GAAG,IAER,KAAKF,GAAa,GAEd,KAAKF,MAAiBK,EAAe,KAAKL,IAAe,KAAKL,EAAO,KACvE,KAAK,KAAK,cAAc,IAAI,YAAY,gBAAgB;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CAE9F;CAEA,WAAkB;EAChB,KAAKQ,GAAiB;EACtB,IAAMG,IAAS,KAAK,KAAK,WAAY;EACrC,AAAKA,EAAO,IAAI,WAAW,KAAGA,EAAO,IAAI,WAAW;CACtD;CAEA,KAAmB;EACjB,AAAI,KAAKF,OAAsB,KAAA,MAC7B,aAAa,KAAKA,EAAiB,GACnC,KAAKA,KAAoB,KAAA;CAE7B;CAEA,KAAe;EAEb,AADA,KAAKJ,IAAe,oBAAoB,UAAU,KAAKO,EAAS,GAChE,KAAKP,IAAe,iBAAiB,UAAU,KAAKO,IAAW,EAAE,MAAM,GAAK,CAAC;CAC/E;CAEA,KAAyB;EAIvB,AAHA,KAAKJ,GAAiB,GACtB,KAAKH,IAAe,oBAAoB,UAAU,KAAKO,EAAS,GAChE,KAAKP,IAAe,oBAAoB,aAAa,KAAKC,EAAY,GACtE,KAAKD,KAAgB,KAAA;EACrB,IAAMM,IAAS,KAAK,KAAK,YAAY;EACrC,AAAIA,GAAQ,IAAI,WAAW,KAAGA,EAAO,OAAO,WAAW;CACzD;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { attachInternals as e } from "../utils/a11y.js";
2
- //#region src/internal/controllers/state-selected.controller.ts
2
+ // src/internal/controllers/state-selected.controller.ts
3
3
  function t() {
4
4
  return (e) => e.addInitializer((e) => new n(e));
5
5
  }
@@ -11,18 +11,9 @@ var n = class {
11
11
  e(this.host);
12
12
  }
13
13
  hostUpdated() {
14
- if (this.host.readOnly) {
15
- this.host._internals.ariaSelected = null, this.host._internals.states.delete("selected");
16
- return;
17
- }
18
- if (this.host._internals?.states.has("anchor") && this.host.selected) {
19
- this.host._internals.ariaSelected = null, this.host._internals.states.add("selected"), this.host.querySelector("a")?.setAttribute("aria-current", "page");
20
- return;
21
- }
22
- this.host.selected !== null && this.host.selected !== void 0 && (this.host._internals.ariaSelected = `${this.host.selected}`), this.host.selected ? this.host._internals.states.add("selected") : this.host._internals.states.delete("selected");
14
+ this.host.readOnly ? (this.host._internals.ariaSelected = null, this.host._internals.states.delete("selected")) : this.host._internals?.states.has("anchor") && this.host.selected ? (this.host._internals.ariaSelected = null, this.host._internals.states.add("selected"), this.host.querySelector("a")?.setAttribute("aria-current", "page")) : (this.host.selected !== null && this.host.selected !== void 0 && (this.host._internals.ariaSelected = `${this.host.selected}`), this.host.selected ? this.host._internals.states.add("selected") : this.host._internals.states.delete("selected"));
23
15
  }
24
16
  };
25
- //#endregion
26
17
  export { n as StateSelectedController, t as stateSelected };
27
18
 
28
19
  //# sourceMappingURL=state-selected.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-selected.controller.js","names":[],"sources":["../../../src/internal/controllers/state-selected.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals } from '../utils/a11y.js';\n\n/**\n * Adds selected support for interactive custom elements including CSS State psuedo-selector :state(selected) and aria-selected.\n * https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected\n */\nexport function stateSelected<T extends Selected>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateSelectedController(instance));\n}\n\nexport type Selected = ReactiveElement & { selected: boolean; readOnly?: boolean; _internals?: ElementInternals };\n\nexport class StateSelectedController<T extends Selected> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n }\n\n hostUpdated() {\n if (this.host.readOnly) {\n this.host._internals!.ariaSelected = null;\n this.host._internals!.states.delete('selected');\n return;\n }\n\n if (this.host._internals?.states.has('anchor') && this.host.selected) {\n this.host._internals!.ariaSelected = null;\n this.host._internals!.states.add('selected');\n this.host.querySelector('a')?.setAttribute('aria-current', 'page');\n return;\n }\n\n if (this.host.selected !== null && this.host.selected !== undefined) {\n this.host._internals!.ariaSelected = `${this.host.selected}`;\n }\n\n if (this.host.selected) {\n this.host._internals!.states.add('selected');\n } else {\n this.host._internals!.states.delete('selected');\n }\n }\n}\n"],"mappings":";;AAYA,SAAgB,IAAoD;CAClE,QAAQ,MACN,EAAO,gBAAiB,MAAgB,IAAI,EAAwB,CAAQ,CAAC;AACjF;AAIA,IAAa,IAAb,MAAuF;CACrF,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAA,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EACd,EAAgB,KAAK,IAAI;CAC3B;CAEA,cAAc;EACZ,IAAI,KAAK,KAAK,UAAU;GAEtB,AADA,KAAK,KAAK,WAAY,eAAe,MACrC,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU;GAC9C;EACF;EAEA,IAAI,KAAK,KAAK,YAAY,OAAO,IAAI,QAAQ,KAAK,KAAK,KAAK,UAAU;GAGpE,AAFA,KAAK,KAAK,WAAY,eAAe,MACrC,KAAK,KAAK,WAAY,OAAO,IAAI,UAAU,GAC3C,KAAK,KAAK,cAAc,GAAG,CAAC,EAAE,aAAa,gBAAgB,MAAM;GACjE;EACF;EAMA,AAJI,KAAK,KAAK,aAAa,QAAQ,KAAK,KAAK,aAAa,KAAA,MACxD,KAAK,KAAK,WAAY,eAAe,GAAG,KAAK,KAAK,aAGhD,KAAK,KAAK,WACZ,KAAK,KAAK,WAAY,OAAO,IAAI,UAAU,IAE3C,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU;CAElD;AACF"}
1
+ {"version":3,"file":"state-selected.controller.js","names":["stateSelected","target","StateSelectedController","instance","host"],"sources":["../../../src/internal/controllers/state-selected.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals } from '../utils/a11y.js';\n\n/**\n * Adds selected support for interactive custom elements including CSS State psuedo-selector :state(selected) and aria-selected.\n * https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected\n */\nexport function stateSelected<T extends Selected>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateSelectedController(instance));\n}\n\nexport type Selected = ReactiveElement & { selected: boolean; readOnly?: boolean; _internals?: ElementInternals };\n\nexport class StateSelectedController<T extends Selected> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n }\n\n hostUpdated() {\n if (this.host.readOnly) {\n this.host._internals!.ariaSelected = null;\n this.host._internals!.states.delete('selected');\n return;\n }\n\n if (this.host._internals?.states.has('anchor') && this.host.selected) {\n this.host._internals!.ariaSelected = null;\n this.host._internals!.states.add('selected');\n this.host.querySelector('a')?.setAttribute('aria-current', 'page');\n return;\n }\n\n if (this.host.selected !== null && this.host.selected !== undefined) {\n this.host._internals!.ariaSelected = `${this.host.selected}`;\n }\n\n if (this.host.selected) {\n this.host._internals!.states.add('selected');\n } else {\n this.host._internals!.states.delete('selected');\n }\n }\n}\n"],"mappings":";;AAYA,SAAgBA,IAAoD;CAClE,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAAwBC,CAAQ,CAAC;AACjF;AAIA,IAAaD,IAAb,MAAuF;CACrF,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAE,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EACd,EAAgB,KAAK,IAAI;CAC3B;CAEA,cAAc;EACZ,AAAI,KAAK,KAAK,YACZ,KAAK,KAAK,WAAY,eAAe,MACrC,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU,KAI5C,KAAK,KAAK,YAAY,OAAO,IAAI,QAAQ,KAAK,KAAK,KAAK,YAC1D,KAAK,KAAK,WAAY,eAAe,MACrC,KAAK,KAAK,WAAY,OAAO,IAAI,UAAU,GAC3C,KAAK,KAAK,cAAc,GAAG,CAAC,EAAE,aAAa,gBAAgB,MAAM,MAI/D,KAAK,KAAK,aAAa,QAAQ,KAAK,KAAK,aAAa,KAAA,MACxD,KAAK,KAAK,WAAY,eAAe,GAAG,KAAK,KAAK,aAGhD,KAAK,KAAK,WACZ,KAAK,KAAK,WAAY,OAAO,IAAI,UAAU,IAE3C,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU;CAElD;AACF"}
@@ -1,6 +1,6 @@
1
1
  import { removeEmptyTextNode as e } from "../utils/dom.js";
2
2
  import { attachInternals as t } from "../utils/a11y.js";
3
- //#region src/internal/controllers/type-anchor.controller.ts
3
+ // src/internal/controllers/type-anchor.controller.ts
4
4
  function n() {
5
5
  return (e) => e.addInitializer((e) => new r(e));
6
6
  }
@@ -32,7 +32,6 @@ var r = class {
32
32
  this.#e && this.#i && (this.#e.slot = "anchor", this.#r?.assignedNodes().forEach((t) => e(t)));
33
33
  }
34
34
  };
35
- //#endregion
36
35
  export { r as TypeAnchorController, n as typeAnchor };
37
36
 
38
37
  //# sourceMappingURL=type-anchor.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-anchor.controller.js","names":[],"sources":["../../../src/internal/controllers/type-anchor.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { removeEmptyTextNode } from '../utils/dom.js';\nimport { attachInternals } from '../utils/a11y.js';\n\n/**\n * Adds anchor/link support for interactive custom elements.\n */\nexport function typeAnchor<T extends Anchor>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) => target.addInitializer!((instance: T) => new TypeAnchorController(instance));\n}\n\nexport interface Anchor extends ReactiveElement {\n disabled: boolean;\n readOnly: boolean;\n _internals: ElementInternals;\n}\n\nexport class TypeAnchorController<T extends Anchor> implements ReactiveController {\n get #anchor() {\n return this.#slottedAnchor ? this.#slottedAnchor : this.#parentAnchor;\n }\n\n get #slottedAnchor() {\n // return elements that nest in a slot\n return this.host\n .shadowRoot!.querySelector<HTMLSlotElement>('slot, slot[name=anchor]')\n ?.assignedElements()\n ?.find(e => e?.tagName === 'A');\n }\n\n get #parentAnchor() {\n return this.host.parentElement?.tagName === 'A' ? (this.host.parentElement as HTMLAnchorElement) : null;\n }\n\n get #defaultSlot() {\n return this.host.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])');\n }\n\n get #anchorSlot() {\n return this.host.shadowRoot!.querySelector<HTMLSlotElement>('slot[name=anchor]');\n }\n\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n async hostConnected() {\n attachInternals(this.host);\n await this.host.updateComplete;\n\n this.#updateAnchorSlotAssignment();\n\n if (this.#anchor) {\n this.host.readOnly = true;\n this.host._internals?.states.add('anchor');\n } else {\n this.host._internals?.states.delete('anchor');\n }\n\n if (this.#parentAnchor) {\n this.#parentAnchor.style.textDecoration = 'none';\n this.host.style.cursor = 'pointer';\n }\n\n this.#anchor?.addEventListener('click', e => {\n if (this.host.disabled) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n });\n }\n\n #updateAnchorSlotAssignment() {\n if (this.#anchor && this.#anchorSlot) {\n this.#anchor.slot = 'anchor';\n this.#defaultSlot?.assignedNodes().forEach(node => removeEmptyTextNode(node));\n }\n }\n}\n"],"mappings":";;;AAWA,SAAgB,IAA+C;CAC7D,QAAQ,MAAkC,EAAO,gBAAiB,MAAgB,IAAI,EAAqB,CAAQ,CAAC;AACtH;AAQA,IAAa,IAAb,MAAkF;CAChF,IAAI,KAAU;EACZ,OAAO,KAAK,KAAiB,KAAK,KAAiB,KAAK;CAC1D;CAEA,IAAI,KAAiB;EAEnB,OAAO,KAAK,KACT,WAAY,cAA+B,yBAAyB,CAAC,EACpE,iBAAiB,CAAC,EAClB,MAAK,MAAK,GAAG,YAAY,GAAG;CAClC;CAEA,IAAI,KAAgB;EAClB,OAAO,KAAK,KAAK,eAAe,YAAY,MAAO,KAAK,KAAK,gBAAsC;CACrG;CAEA,IAAI,KAAe;EACjB,OAAO,KAAK,KAAK,WAAY,cAA+B,kBAAkB;CAChF;CAEA,IAAI,KAAc;EAChB,OAAO,KAAK,KAAK,WAAY,cAA+B,mBAAmB;CACjF;CAEA,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAA,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,MAAM,gBAAgB;EAkBpB,AAjBA,EAAgB,KAAK,IAAI,GACzB,MAAM,KAAK,KAAK,gBAEhB,KAAK,GAA4B,GAE7B,KAAK,MACP,KAAK,KAAK,WAAW,IACrB,KAAK,KAAK,YAAY,OAAO,IAAI,QAAQ,KAEzC,KAAK,KAAK,YAAY,OAAO,OAAO,QAAQ,GAG1C,KAAK,OACP,KAAK,GAAc,MAAM,iBAAiB,QAC1C,KAAK,KAAK,MAAM,SAAS,YAG3B,KAAK,IAAS,iBAAiB,UAAS,MAAK;GAC3C,AAAI,KAAK,KAAK,aACZ,EAAE,eAAe,GACjB,EAAE,yBAAyB;EAE/B,CAAC;CACH;CAEA,KAA8B;EAC5B,AAAI,KAAK,MAAW,KAAK,OACvB,KAAK,GAAQ,OAAO,UACpB,KAAK,IAAc,cAAc,CAAC,CAAC,SAAQ,MAAQ,EAAoB,CAAI,CAAC;CAEhF;AACF"}
1
+ {"version":3,"file":"type-anchor.controller.js","names":["typeAnchor","target","TypeAnchorController","instance","#anchor","#slottedAnchor","#parentAnchor","#defaultSlot","#anchorSlot","host","attachInternals","#updateAnchorSlotAssignment","removeEmptyTextNode","node"],"sources":["../../../src/internal/controllers/type-anchor.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { removeEmptyTextNode } from '../utils/dom.js';\nimport { attachInternals } from '../utils/a11y.js';\n\n/**\n * Adds anchor/link support for interactive custom elements.\n */\nexport function typeAnchor<T extends Anchor>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) => target.addInitializer!((instance: T) => new TypeAnchorController(instance));\n}\n\nexport interface Anchor extends ReactiveElement {\n disabled: boolean;\n readOnly: boolean;\n _internals: ElementInternals;\n}\n\nexport class TypeAnchorController<T extends Anchor> implements ReactiveController {\n get #anchor() {\n return this.#slottedAnchor ? this.#slottedAnchor : this.#parentAnchor;\n }\n\n get #slottedAnchor() {\n // return elements that nest in a slot\n return this.host\n .shadowRoot!.querySelector<HTMLSlotElement>('slot, slot[name=anchor]')\n ?.assignedElements()\n ?.find(e => e?.tagName === 'A');\n }\n\n get #parentAnchor() {\n return this.host.parentElement?.tagName === 'A' ? (this.host.parentElement as HTMLAnchorElement) : null;\n }\n\n get #defaultSlot() {\n return this.host.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])');\n }\n\n get #anchorSlot() {\n return this.host.shadowRoot!.querySelector<HTMLSlotElement>('slot[name=anchor]');\n }\n\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n async hostConnected() {\n attachInternals(this.host);\n await this.host.updateComplete;\n\n this.#updateAnchorSlotAssignment();\n\n if (this.#anchor) {\n this.host.readOnly = true;\n this.host._internals?.states.add('anchor');\n } else {\n this.host._internals?.states.delete('anchor');\n }\n\n if (this.#parentAnchor) {\n this.#parentAnchor.style.textDecoration = 'none';\n this.host.style.cursor = 'pointer';\n }\n\n this.#anchor?.addEventListener('click', e => {\n if (this.host.disabled) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n });\n }\n\n #updateAnchorSlotAssignment() {\n if (this.#anchor && this.#anchorSlot) {\n this.#anchor.slot = 'anchor';\n this.#defaultSlot?.assignedNodes().forEach(node => removeEmptyTextNode(node));\n }\n }\n}\n"],"mappings":";;;AAWA,SAAgBA,IAA+C;CAC7D,QAAQ,MAAkCC,EAAO,gBAAiB,MAAgB,IAAIC,EAAqBC,CAAQ,CAAC;AACtH;AAQA,IAAaD,IAAb,MAAkF;CAChF,IAAIE,KAAU;EACZ,OAAO,KAAKC,KAAiB,KAAKA,KAAiB,KAAKC;CAC1D;CAEA,IAAID,KAAiB;EAEnB,OAAO,KAAK,KACT,WAAY,cAA+B,yBAAyB,CAAC,EACpE,iBAAiB,CAAC,EAClB,MAAK,MAAK,GAAG,YAAY,GAAG;CAClC;CAEA,IAAIC,KAAgB;EAClB,OAAO,KAAK,KAAK,eAAe,YAAY,MAAO,KAAK,KAAK,gBAAsC;CACrG;CAEA,IAAIC,KAAe;EACjB,OAAO,KAAK,KAAK,WAAY,cAA+B,kBAAkB;CAChF;CAEA,IAAIC,KAAc;EAChB,OAAO,KAAK,KAAK,WAAY,cAA+B,mBAAmB;CACjF;CAEA,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAC,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,MAAM,gBAAgB;EAkBpB,AAjBAC,EAAgB,KAAK,IAAI,GACzB,MAAM,KAAK,KAAK,gBAEhB,KAAKC,GAA4B,GAE7B,KAAKP,MACP,KAAK,KAAK,WAAW,IACrB,KAAK,KAAK,YAAY,OAAO,IAAI,QAAQ,KAEzC,KAAK,KAAK,YAAY,OAAO,OAAO,QAAQ,GAG1C,KAAKE,OACP,KAAKA,GAAc,MAAM,iBAAiB,QAC1C,KAAK,KAAK,MAAM,SAAS,YAG3B,KAAKF,IAAS,iBAAiB,UAAS,MAAK;GAC3C,AAAI,KAAK,KAAK,aACZ,EAAE,eAAe,GACjB,EAAE,yBAAyB;EAE/B,CAAC;CACH;CAEA,KAA8B;EAC5B,AAAI,KAAKA,MAAW,KAAKI,OACvB,KAAKJ,GAAQ,OAAO,UACpB,KAAKG,IAAc,cAAc,CAAC,CAAC,SAAQ,MAAQK,EAAoBC,CAAI,CAAC;CAEhF;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { attachInternals as e } from "../utils/a11y.js";
2
- //#region src/internal/controllers/type-closable.controller.ts
2
+ // src/internal/controllers/type-closable.controller.ts
3
3
  var t = class {
4
4
  constructor(e) {
5
5
  this.host = e, this.host.addController(this);
@@ -19,7 +19,6 @@ var t = class {
19
19
  }));
20
20
  }
21
21
  };
22
- //#endregion
23
22
  export { t as TypeClosableController };
24
23
 
25
24
  //# sourceMappingURL=type-closable.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-closable.controller.js","names":[],"sources":["../../../src/internal/controllers/type-closable.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport { attachInternals } from '../utils/a11y.js';\n\nexport type TypeClosable = ReactiveElement & { closable: boolean };\n\n/**\n * Controller for enabling closable behavior for elements.\n */\nexport class TypeClosableController<T extends TypeClosable> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n\n this.host.addEventListener('command', () => {\n this.host.hidden = true;\n this.#dispatchEvent();\n });\n }\n\n close() {\n if (this.host.closable) {\n this.#dispatchEvent();\n }\n }\n\n #dispatchEvent() {\n this.host.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }));\n }\n}\n"],"mappings":";;AAWA,IAAa,IAAb,MAA0F;CACxF,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAA,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EAGd,AAFA,EAAgB,KAAK,IAAI,GAEzB,KAAK,KAAK,iBAAiB,iBAAiB;GAE1C,AADA,KAAK,KAAK,SAAS,IACnB,KAAK,GAAe;EACtB,CAAC;CACH;CAEA,QAAQ;EACN,AAAI,KAAK,KAAK,YACZ,KAAK,GAAe;CAExB;CAEA,KAAiB;EACf,KAAK,KAAK,cAAc,IAAI,YAAY,SAAS;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACrF;AACF"}
1
+ {"version":3,"file":"type-closable.controller.js","names":["TypeClosableController","host","attachInternals","#dispatchEvent"],"sources":["../../../src/internal/controllers/type-closable.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport { attachInternals } from '../utils/a11y.js';\n\nexport type TypeClosable = ReactiveElement & { closable: boolean };\n\n/**\n * Controller for enabling closable behavior for elements.\n */\nexport class TypeClosableController<T extends TypeClosable> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n\n this.host.addEventListener('command', () => {\n this.host.hidden = true;\n this.#dispatchEvent();\n });\n }\n\n close() {\n if (this.host.closable) {\n this.#dispatchEvent();\n }\n }\n\n #dispatchEvent() {\n this.host.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }));\n }\n}\n"],"mappings":";;AAWA,IAAaA,IAAb,MAA0F;CACxF,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAC,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EAGd,AAFAC,EAAgB,KAAK,IAAI,GAEzB,KAAK,KAAK,iBAAiB,iBAAiB;GAE1C,AADA,KAAK,KAAK,SAAS,IACnB,KAAKC,GAAe;EACtB,CAAC;CACH;CAEA,QAAQ;EACN,AAAI,KAAK,KAAK,YACZ,KAAKA,GAAe;CAExB;CAEA,KAAiB;EACf,KAAK,KAAK,cAAc,IAAI,YAAY,SAAS;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACrF;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { attachInternals as e } from "../utils/a11y.js";
2
- //#region src/internal/controllers/type-expandable.controller.ts
2
+ // src/internal/controllers/type-expandable.controller.ts
3
3
  var t = class {
4
4
  #e = !1;
5
5
  #t = !1;
@@ -30,7 +30,6 @@ var t = class {
30
30
  this.host.expanded || this.#t && !this.host.hidden ? this.close() : this.open();
31
31
  }
32
32
  };
33
- //#endregion
34
33
  export { t as TypeExpandableController };
35
34
 
36
35
  //# sourceMappingURL=type-expandable.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-expandable.controller.js","names":[],"sources":["../../../src/internal/controllers/type-expandable.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport { attachInternals } from '../utils/a11y.js';\n\nexport type TypeExpandable = ReactiveElement & {\n expanded?: boolean;\n behaviorExpand?: boolean;\n expandable?: boolean;\n _internals?: ElementInternals;\n};\n\n/**\n * Controller for enabling expandable behavior for elements.\n * @event open - Dispatched when the expandable element opens.\n * @event close - Dispatched when the expandable element closes.\n * @property expanded - expanded state\n * @property behaviorExpand - determines if stateful auto behavior should enable\n */\nexport class TypeExpandableController<T extends TypeExpandable> implements ReactiveController {\n #commandTriggered = false;\n #useHidden = false;\n\n constructor(\n private host: T,\n config: { useHidden?: boolean } = {}\n ) {\n this.#useHidden = config.useHidden ?? false;\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n\n this.host.addEventListener('command', ((e: CommandEvent) => {\n this.#commandTriggered = true;\n if (e.command === '--toggle') {\n this.toggle();\n }\n\n if (e.command === '--open') {\n this.open();\n }\n\n if (e.command === '--close') {\n this.close();\n }\n this.#commandTriggered = false;\n }) as EventListener);\n }\n\n hostUpdated() {\n this.host.expandable\n ? this.host._internals!.states.add('expandable')\n : this.host._internals!.states.delete('expandable');\n }\n\n open() {\n if (this.host.behaviorExpand || this.#commandTriggered) {\n this.host.expanded = true;\n\n if (this.#useHidden) {\n this.host.hidden = false;\n }\n }\n\n this.host.dispatchEvent(new CustomEvent('open', { bubbles: true, composed: true }));\n }\n\n close() {\n if (this.host.behaviorExpand || this.#commandTriggered) {\n this.host.expanded = false;\n\n if (this.#useHidden) {\n this.host.hidden = true;\n }\n }\n\n this.host.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }));\n }\n\n toggle() {\n if (this.host.expanded || (this.#useHidden && !this.host.hidden)) {\n this.close();\n } else {\n this.open();\n }\n }\n}\n"],"mappings":";;AAoBA,IAAa,IAAb,MAA8F;CAC5F,KAAoB;CACpB,KAAa;CAEb,YACE,GACA,IAAkC,CAAC,GACnC;EAEA,AAJQ,KAAA,OAAA,GAGR,KAAK,KAAa,EAAO,aAAa,IACtC,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EAGd,AAFA,EAAgB,KAAK,IAAI,GAEzB,KAAK,KAAK,iBAAiB,aAAa,MAAoB;GAa1D,AAZA,KAAK,KAAoB,IACrB,EAAE,YAAY,cAChB,KAAK,OAAO,GAGV,EAAE,YAAY,YAChB,KAAK,KAAK,GAGR,EAAE,YAAY,aAChB,KAAK,MAAM,GAEb,KAAK,KAAoB;EAC3B,EAAmB;CACrB;CAEA,cAAc;EACZ,KAAK,KAAK,aACN,KAAK,KAAK,WAAY,OAAO,IAAI,YAAY,IAC7C,KAAK,KAAK,WAAY,OAAO,OAAO,YAAY;CACtD;CAEA,OAAO;EASL,CARI,KAAK,KAAK,kBAAkB,KAAK,QACnC,KAAK,KAAK,WAAW,IAEjB,KAAK,OACP,KAAK,KAAK,SAAS,MAIvB,KAAK,KAAK,cAAc,IAAI,YAAY,QAAQ;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACpF;CAEA,QAAQ;EASN,CARI,KAAK,KAAK,kBAAkB,KAAK,QACnC,KAAK,KAAK,WAAW,IAEjB,KAAK,OACP,KAAK,KAAK,SAAS,MAIvB,KAAK,KAAK,cAAc,IAAI,YAAY,SAAS;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACrF;CAEA,SAAS;EACP,AAAI,KAAK,KAAK,YAAa,KAAK,MAAc,CAAC,KAAK,KAAK,SACvD,KAAK,MAAM,IAEX,KAAK,KAAK;CAEd;AACF"}
1
+ {"version":3,"file":"type-expandable.controller.js","names":["TypeExpandableController","host","#useHidden","config","attachInternals","#commandTriggered"],"sources":["../../../src/internal/controllers/type-expandable.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport { attachInternals } from '../utils/a11y.js';\n\nexport type TypeExpandable = ReactiveElement & {\n expanded?: boolean;\n behaviorExpand?: boolean;\n expandable?: boolean;\n _internals?: ElementInternals;\n};\n\n/**\n * Controller for enabling expandable behavior for elements.\n * @event open - Dispatched when the expandable element opens.\n * @event close - Dispatched when the expandable element closes.\n * @property expanded - expanded state\n * @property behaviorExpand - determines if stateful auto behavior should enable\n */\nexport class TypeExpandableController<T extends TypeExpandable> implements ReactiveController {\n #commandTriggered = false;\n #useHidden = false;\n\n constructor(\n private host: T,\n config: { useHidden?: boolean } = {}\n ) {\n this.#useHidden = config.useHidden ?? false;\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n\n this.host.addEventListener('command', ((e: CommandEvent) => {\n this.#commandTriggered = true;\n if (e.command === '--toggle') {\n this.toggle();\n }\n\n if (e.command === '--open') {\n this.open();\n }\n\n if (e.command === '--close') {\n this.close();\n }\n this.#commandTriggered = false;\n }) as EventListener);\n }\n\n hostUpdated() {\n this.host.expandable\n ? this.host._internals!.states.add('expandable')\n : this.host._internals!.states.delete('expandable');\n }\n\n open() {\n if (this.host.behaviorExpand || this.#commandTriggered) {\n this.host.expanded = true;\n\n if (this.#useHidden) {\n this.host.hidden = false;\n }\n }\n\n this.host.dispatchEvent(new CustomEvent('open', { bubbles: true, composed: true }));\n }\n\n close() {\n if (this.host.behaviorExpand || this.#commandTriggered) {\n this.host.expanded = false;\n\n if (this.#useHidden) {\n this.host.hidden = true;\n }\n }\n\n this.host.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }));\n }\n\n toggle() {\n if (this.host.expanded || (this.#useHidden && !this.host.hidden)) {\n this.close();\n } else {\n this.open();\n }\n }\n}\n"],"mappings":";;AAoBA,IAAaA,IAAb,MAA8F;CAC5F,KAAoB;CACpB,KAAa;CAEb,YACE,GACA,IAAkC,CAAC,GACnC;EAEA,AAJQ,KAAA,OAAAC,GAGR,KAAKC,KAAaC,EAAO,aAAa,IACtC,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EAGd,AAFAC,EAAgB,KAAK,IAAI,GAEzB,KAAK,KAAK,iBAAiB,aAAa,MAAoB;GAa1D,AAZA,KAAKC,KAAoB,IACrB,EAAE,YAAY,cAChB,KAAK,OAAO,GAGV,EAAE,YAAY,YAChB,KAAK,KAAK,GAGR,EAAE,YAAY,aAChB,KAAK,MAAM,GAEb,KAAKA,KAAoB;EAC3B,EAAmB;CACrB;CAEA,cAAc;EACZ,KAAK,KAAK,aACN,KAAK,KAAK,WAAY,OAAO,IAAI,YAAY,IAC7C,KAAK,KAAK,WAAY,OAAO,OAAO,YAAY;CACtD;CAEA,OAAO;EASL,CARI,KAAK,KAAK,kBAAkB,KAAKA,QACnC,KAAK,KAAK,WAAW,IAEjB,KAAKH,OACP,KAAK,KAAK,SAAS,MAIvB,KAAK,KAAK,cAAc,IAAI,YAAY,QAAQ;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACpF;CAEA,QAAQ;EASN,CARI,KAAK,KAAK,kBAAkB,KAAKG,QACnC,KAAK,KAAK,WAAW,IAEjB,KAAKH,OACP,KAAK,KAAK,SAAS,MAIvB,KAAK,KAAK,cAAc,IAAI,YAAY,SAAS;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACrF;CAEA,SAAS;EACP,AAAI,KAAK,KAAK,YAAa,KAAKA,MAAc,CAAC,KAAK,KAAK,SACvD,KAAK,MAAM,IAEX,KAAK,KAAK;CAEd;AACF"}