@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":"input.js","names":[],"sources":["../../src/input/input.css?inline"],"sourcesContent":["/* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */\n/* SPDX-License-Identifier: Apache-2.0 */\n\n:host {\n --padding: 0 var(--nve-ref-size-200);\n --font-size: var(--nve-ref-font-size-100);\n --height: var(--nve-ref-size-800);\n --background: var(--nve-sys-interaction-field-background);\n --color: var(--nve-sys-interaction-field-color);\n --border-radius: var(--nve-ref-border-radius-sm);\n --border: var(--nve-ref-border-width-md) solid transparent;\n --border-bottom: var(--border);\n --cursor: text;\n --font-weight: normal;\n --_icon-height: var(--height);\n --_font-size: var(--font-size);\n --width: 100%;\n --max-width: 100%;\n --min-width: initial;\n width: var(--width);\n max-width: var(--max-width);\n min-width: var(--min-width);\n}\n\n[input] {\n height: var(--height);\n background: var(--background);\n border: var(--border);\n border-bottom: var(--border-bottom);\n border-radius: var(--border-radius);\n color: var(--color);\n cursor: var(--cursor);\n width: var(--control-width);\n display: flex;\n align-content: stretch;\n}\n\n::slotted(input) {\n /* https://web.dev/accent-color/#guaranteeing-contrast */\n accent-color: var(--accent-color) !important;\n cursor: var(--cursor) !important;\n padding: var(--padding) !important;\n font-size: var(--font-size) !important;\n color: var(--color) !important;\n line-height: var(--height) !important;\n border: 0 !important;\n background: none !important;\n display: block !important;\n width: 100% !important;\n font-weight: var(--font-weight) !important;\n}\n\nnve-icon-button,\n::slotted(nve-icon-button) {\n --height: var(--_icon-height);\n align-self: center;\n}\n\n::slotted(nve-button:not([slot])) {\n --font-size: var(--_font-size);\n --padding: 0 var(--nve-ref-size-200);\n --color: var(--label-color);\n --height: 100%;\n}\n\n:host([rounded]) {\n --border-radius: var(--nve-ref-border-radius-full);\n}\n\n:host([status='error']),\n:host(:state(invalid)),\n:host(:state(error)) {\n --border: var(--nve-ref-border-width-md) solid var(--nve-sys-support-danger-emphasis-color);\n}\n\n:host([status='success']),\n:host(:state(success)) {\n --border: var(--nve-ref-border-width-md) solid var(--nve-sys-support-success-emphasis-color);\n}\n\n:host(:state(disabled)) {\n --border: var(--nve-ref-border-width-md) solid transparent;\n}\n\n:host([container='flat']) {\n --border-radius: 0;\n --box-shadow: none;\n --border-bottom: var(--nve-ref-border-width-md) solid var(--nve-ref-border-color-muted);\n}\n\n:host([container='flat']) [input] {\n background: inherit;\n}\n\n:host([container='flat']:focus-within) {\n --border-bottom: var(--nve-ref-border-width-md) solid var(--nve-ref-border-color-emphasis);\n}\n\n:host([container='flat']:focus-within) [input] {\n outline: 0 !important;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"input.js","names":["input_default"],"sources":["../../src/input/input.css?inline"],"sourcesContent":["/* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */\n/* SPDX-License-Identifier: Apache-2.0 */\n\n:host {\n --padding: 0 var(--nve-ref-size-200);\n --font-size: var(--nve-ref-font-size-100);\n --height: var(--nve-ref-size-800);\n --background: var(--nve-sys-interaction-field-background);\n --color: var(--nve-sys-interaction-field-color);\n --border-radius: var(--nve-ref-border-radius-sm);\n --border: var(--nve-ref-border-width-md) solid transparent;\n --border-bottom: var(--border);\n --cursor: text;\n --font-weight: normal;\n --_icon-height: var(--height);\n --_font-size: var(--font-size);\n --width: 100%;\n --max-width: 100%;\n --min-width: initial;\n width: var(--width);\n max-width: var(--max-width);\n min-width: var(--min-width);\n}\n\n[input] {\n height: var(--height);\n background: var(--background);\n border: var(--border);\n border-bottom: var(--border-bottom);\n border-radius: var(--border-radius);\n color: var(--color);\n cursor: var(--cursor);\n width: var(--control-width);\n display: flex;\n align-content: stretch;\n}\n\n::slotted(input) {\n /* https://web.dev/accent-color/#guaranteeing-contrast */\n accent-color: var(--accent-color) !important;\n cursor: var(--cursor) !important;\n padding: var(--padding) !important;\n font-size: var(--font-size) !important;\n color: var(--color) !important;\n line-height: var(--height) !important;\n border: 0 !important;\n background: none !important;\n display: block !important;\n width: 100% !important;\n font-weight: var(--font-weight) !important;\n}\n\nnve-icon-button,\n::slotted(nve-icon-button) {\n --height: var(--_icon-height);\n align-self: center;\n}\n\n::slotted(nve-button:not([slot])) {\n --font-size: var(--_font-size);\n --padding: 0 var(--nve-ref-size-200);\n --color: var(--label-color);\n --height: 100%;\n}\n\n:host([rounded]) {\n --border-radius: var(--nve-ref-border-radius-full);\n}\n\n:host([status='error']),\n:host(:state(invalid)),\n:host(:state(error)) {\n --border: var(--nve-ref-border-width-md) solid var(--nve-sys-support-danger-emphasis-color);\n}\n\n:host([status='success']),\n:host(:state(success)) {\n --border: var(--nve-ref-border-width-md) solid var(--nve-sys-support-success-emphasis-color);\n}\n\n:host(:state(disabled)) {\n --border: var(--nve-ref-border-width-md) solid transparent;\n}\n\n:host([container='flat']) {\n --border-radius: 0;\n --box-shadow: none;\n --border-bottom: var(--nve-ref-border-width-md) solid var(--nve-ref-border-color-muted);\n}\n\n:host([container='flat']) [input] {\n background: inherit;\n}\n\n:host([container='flat']:focus-within) {\n --border-bottom: var(--nve-ref-border-width-md) solid var(--nve-ref-border-color-emphasis);\n}\n\n:host([container='flat']:focus-within) [input] {\n outline: 0 !important;\n}\n"],"mappings":""}
@@ -1,9 +1,9 @@
1
1
  import { useStyles as e } from "../internal/styles/index.js";
2
- import t from "../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
2
+ import t from "../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
3
3
  import { Control as n } from "../forms/control/control2.js";
4
4
  import r from "./input.js";
5
5
  import { property as i } from "lit/decorators/property.js";
6
- //#region src/input/input.ts
6
+ // src/input/input.ts
7
7
  var a = r, o = class extends n {
8
8
  constructor(...e) {
9
9
  super(...e), this.rounded = !1;
@@ -14,7 +14,7 @@ var a = r, o = class extends n {
14
14
  static {
15
15
  this.metadata = {
16
16
  tag: "nve-input",
17
- version: "2.20.1"
17
+ version: "2.20.3"
18
18
  };
19
19
  }
20
20
  };
@@ -25,7 +25,6 @@ t([i({
25
25
  type: Boolean,
26
26
  reflect: !0
27
27
  })], o.prototype, "rounded", void 0);
28
- //#endregion
29
28
  export { o as Input, a as inputStyles };
30
29
 
31
30
  //# sourceMappingURL=input2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input2.js","names":[],"sources":["../../src/input/input.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CSSResult } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport { useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport styles from './input.css?inline';\n\nexport const inputStyles = styles;\n\n/**\n * @element nve-input\n * @description An input is a control that enables users to enter text.\n * @documentation https://nvidia.github.io/elements/docs/elements/input/\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/input\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --cursor\n * @cssprop --color\n * @cssprop --font-weight\n * @cssprop --width\n * @cssprop --min-width\n * @cssprop --max-width\n * @cssprop --border-bottom\n * @cssprop --box-shadow\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input\n */\nexport class Input extends Control implements ContainerElement {\n /**\n * Reduces the visual container for a minimal borderless appearance while preserving whitespace bounds.\n * Use when embedding within another container such as a toolbar.\n */\n @property({ type: String, reflect: true }) container?: 'flat';\n\n /**\n * Sets the rounded visual style of the input.\n */\n @property({ type: Boolean, reflect: true }) rounded = false;\n\n static styles: CSSResult[] = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-input',\n version: '0.0.0'\n };\n}\n"],"mappings":";;;;;;AAUA,IAAa,IAAc,GAwBd,IAAb,cAA2B,EAAoC;;EAUP,aAAA,KAAA,UAAA;;;EAEzB,KAAA,SAAA,EAAU,CAAC,GAAG,EAAQ,QAAQ,CAAM,CAAC;;;EAEvC,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;EACX;;AACF;AAbG,EAAA,CAAA,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,GAKxC,EAAA,CAAA,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA"}
1
+ {"version":3,"file":"input2.js","names":["styles","_decorate","__decorate","input_default","inputStyles","Input","Control","_args","useStyles","property"],"sources":["../../src/input/input.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CSSResult } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport { useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport styles from './input.css?inline';\n\nexport const inputStyles = styles;\n\n/**\n * @element nve-input\n * @description An input is a control that enables users to enter text.\n * @documentation https://nvidia.github.io/elements/docs/elements/input/\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/input\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --cursor\n * @cssprop --color\n * @cssprop --font-weight\n * @cssprop --width\n * @cssprop --min-width\n * @cssprop --max-width\n * @cssprop --border-bottom\n * @cssprop --box-shadow\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input\n */\nexport class Input extends Control implements ContainerElement {\n /**\n * Reduces the visual container for a minimal borderless appearance while preserving whitespace bounds.\n * Use when embedding within another container such as a toolbar.\n */\n @property({ type: String, reflect: true }) container?: 'flat';\n\n /**\n * Sets the rounded visual style of the input.\n */\n @property({ type: Boolean, reflect: true }) rounded = false;\n\n static styles: CSSResult[] = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-input',\n version: '0.0.0'\n };\n}\n"],"mappings":";;;;;;AAUA,IAAaI,IAAcJ,GAwBdK,IAAb,cAA2BC,EAAoC;;EAUP,A,aAAA,KAAA,UAAA;;;EAEzB,KAAA,SAAAE,EAAU,CAAC,GAAGF,EAAQ,QAAQN,CAAM,CAAC;;;EAEvC,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;EACX;;AACF;AAbGC,EAAA,CAAAQ,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAAJ,EAAA,WAAA,aAAA,KAAA,CAAA,GAKxCJ,EAAA,CAAAQ,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAAJ,EAAA,WAAA,WAAA,KAAA,CAAA"}
@@ -2,7 +2,7 @@ import { LogService as e } from "../services/log.service.js";
2
2
  import { auditParentElement as t } from "../utils/audit.js";
3
3
  import { getExcessiveInstanceLimitWarning as n, getInvalidParentWarning as r, getMultiplePageWarning as i } from "../utils/audit-logs.js";
4
4
  import { GlobalStateService as a } from "@nvidia-elements/foundations/internal/state";
5
- //#region src/internal/controllers/audit.controller.ts
5
+ // src/internal/controllers/audit.controller.ts
6
6
  var o = 50;
7
7
  function s(e = {}) {
8
8
  return (t) => t.addInitializer((t) => new c(t, e));
@@ -60,7 +60,6 @@ var c = class {
60
60
  }
61
61
  }
62
62
  };
63
- //#endregion
64
63
  export { c as AuditController, s as audit, o as excessiveInstanceLimit };
65
64
 
66
65
  //# sourceMappingURL=audit.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit.controller.js","names":[],"sources":["../../../src/internal/controllers/audit.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 { GlobalStateService } from '@nvidia-elements/foundations/internal/state';\nimport { LogService } from '../services/log.service.js';\nimport { auditParentElement } from '../utils/audit.js';\nimport {\n getExcessiveInstanceLimitWarning,\n getInvalidParentWarning,\n getMultiplePageWarning\n} from '../utils/audit-logs.js';\n\nexport const excessiveInstanceLimit = 50;\n\nexport interface AuditOptions {\n excessiveInstanceLimit?: number;\n alternates?: { name: string; use: string }[];\n}\n\nexport interface AuditMetadata {\n parents?: string[];\n}\n\ninterface AuditRegistry {\n [key: string]: {\n count?: number;\n excessiveInstanceLimitAudited?: boolean;\n };\n}\n\nexport function audit<T extends Audit>(options: AuditOptions = {}): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new AuditController(instance, options));\n}\n\nexport type Audit = ReactiveElement;\n\nexport class AuditController<T extends Audit> implements ReactiveController {\n #counted = false;\n\n get #hostAuditState() {\n return GlobalStateService.state.audit[this.host.localName] ?? { count: 0 };\n }\n\n get #production() {\n return GlobalStateService.state.env === 'production';\n }\n\n get #hostMetadata() {\n return (this.host.constructor as unknown as { metadata: AuditMetadata }).metadata;\n }\n\n constructor(\n private host: T,\n private options: AuditOptions\n ) {\n if (!this.#production) {\n this.host.addController(this);\n this.#initializeAudit();\n }\n }\n\n async hostConnected() {\n if (!this.#production) this.#auditExcessiveInstanceLimit();\n await this.host.updateComplete;\n if (!this.#production && this.host.isConnected) {\n this.#auditParentElement();\n }\n }\n\n hostDisconnected() {\n this.#cleanupExcessiveInstanceLimit();\n }\n\n #initializeAudit() {\n if (!GlobalStateService.state.audit[this.host.localName]) {\n this.#update({ [this.host.localName]: { count: 0 } });\n }\n }\n\n #auditExcessiveInstanceLimit() {\n const limit = this.options.excessiveInstanceLimit;\n if (limit === undefined || this.#counted) return;\n\n this.#counted = true;\n const count = (this.#hostAuditState.count ?? 0) + 1;\n const audited = this.#hostAuditState.excessiveInstanceLimitAudited ?? false;\n const shouldWarn = count > limit && !audited;\n this.#update({ [this.host.localName]: { count, excessiveInstanceLimitAudited: audited || shouldWarn } });\n\n if (shouldWarn && this.#counted) {\n LogService.warn(\n this.host.localName === 'nve-page'\n ? getMultiplePageWarning(count)\n : getExcessiveInstanceLimitWarning(count, this.host.localName)\n );\n }\n }\n\n #cleanupExcessiveInstanceLimit() {\n const limit = this.options.excessiveInstanceLimit;\n if (limit === undefined || !this.#counted) return;\n\n this.#counted = false;\n const count = Math.max(0, (this.#hostAuditState.count ?? 0) - 1);\n this.#update({\n [this.host.localName]: {\n count,\n excessiveInstanceLimitAudited: count > limit && this.#hostAuditState.excessiveInstanceLimitAudited\n }\n });\n }\n\n #update(registry: AuditRegistry) {\n GlobalStateService.dispatch('NVE_ELEMENTS_AUDIT_UPDATE', { audit: registry });\n }\n\n #auditParentElement() {\n if (this.#hostMetadata.parents) {\n const [valid, validParents] = auditParentElement(this.host);\n if (!valid) {\n LogService.warn(getInvalidParentWarning(this.host.localName, validParents.join(', ')));\n }\n }\n }\n}\n"],"mappings":";;;;;AAcA,IAAa,IAAyB;AAkBtC,SAAgB,EAAuB,IAAwB,CAAC,GAAmB;CACjF,QAAQ,MACN,EAAO,gBAAiB,MAAgB,IAAI,EAAgB,GAAU,CAAO,CAAC;AAClF;AAIA,IAAa,IAAb,MAA4E;CAC1E,KAAW;CAEX,IAAI,KAAkB;EACpB,OAAO,EAAmB,MAAM,MAAM,KAAK,KAAK,cAAc,EAAE,OAAO,EAAE;CAC3E;CAEA,IAAI,KAAc;EAChB,OAAO,EAAmB,MAAM,QAAQ;CAC1C;CAEA,IAAI,KAAgB;EAClB,OAAQ,KAAK,KAAK,YAAuD;CAC3E;CAEA,YACE,GACA,GACA;EACA,AAHQ,KAAA,OAAA,GACA,KAAA,UAAA,GAEH,KAAK,OACR,KAAK,KAAK,cAAc,IAAI,GAC5B,KAAK,GAAiB;CAE1B;CAEA,MAAM,gBAAgB;EAGpB,AAFK,KAAK,MAAa,KAAK,GAA6B,GACzD,MAAM,KAAK,KAAK,gBACZ,CAAC,KAAK,MAAe,KAAK,KAAK,eACjC,KAAK,GAAoB;CAE7B;CAEA,mBAAmB;EACjB,KAAK,GAA+B;CACtC;CAEA,KAAmB;EACjB,AAAK,EAAmB,MAAM,MAAM,KAAK,KAAK,cAC5C,KAAK,GAAQ,GAAG,KAAK,KAAK,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC;CAExD;CAEA,KAA+B;EAC7B,IAAM,IAAQ,KAAK,QAAQ;EAC3B,IAAI,MAAU,KAAA,KAAa,KAAK,IAAU;EAE1C,KAAK,KAAW;EAChB,IAAM,KAAS,KAAK,GAAgB,SAAS,KAAK,GAC5C,IAAU,KAAK,GAAgB,iCAAiC,IAChE,IAAa,IAAQ,KAAS,CAAC;EAGrC,AAFA,KAAK,GAAQ,GAAG,KAAK,KAAK,YAAY;GAAE;GAAO,+BAA+B,KAAW;EAAW,EAAE,CAAC,GAEnG,KAAc,KAAK,MACrB,EAAW,KACT,KAAK,KAAK,cAAc,aACpB,EAAuB,CAAK,IAC5B,EAAiC,GAAO,KAAK,KAAK,SAAS,CACjE;CAEJ;CAEA,KAAiC;EAC/B,IAAM,IAAQ,KAAK,QAAQ;EAC3B,IAAI,MAAU,KAAA,KAAa,CAAC,KAAK,IAAU;EAE3C,KAAK,KAAW;EAChB,IAAM,IAAQ,KAAK,IAAI,IAAI,KAAK,GAAgB,SAAS,KAAK,CAAC;EAC/D,KAAK,GAAQ,GACV,KAAK,KAAK,YAAY;GACrB;GACA,+BAA+B,IAAQ,KAAS,KAAK,GAAgB;EACvE,EACF,CAAC;CACH;CAEA,GAAQ,GAAyB;EAC/B,EAAmB,SAAS,6BAA6B,EAAE,OAAO,EAAS,CAAC;CAC9E;CAEA,KAAsB;EACpB,IAAI,KAAK,GAAc,SAAS;GAC9B,IAAM,CAAC,GAAO,KAAgB,EAAmB,KAAK,IAAI;GAC1D,AAAK,KACH,EAAW,KAAK,EAAwB,KAAK,KAAK,WAAW,EAAa,KAAK,IAAI,CAAC,CAAC;EAEzF;CACF;AACF"}
1
+ {"version":3,"file":"audit.controller.js","names":["excessiveInstanceLimit","audit","target","AuditController","instance","options","#hostAuditState","GlobalStateService","#production","#hostMetadata","host","#initializeAudit","#auditExcessiveInstanceLimit","#auditParentElement","#cleanupExcessiveInstanceLimit","#update","limit","#counted","count","audited","shouldWarn","LogService","getMultiplePageWarning","getExcessiveInstanceLimitWarning","registry","valid","validParents","auditParentElement","getInvalidParentWarning"],"sources":["../../../src/internal/controllers/audit.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 { GlobalStateService } from '@nvidia-elements/foundations/internal/state';\nimport { LogService } from '../services/log.service.js';\nimport { auditParentElement } from '../utils/audit.js';\nimport {\n getExcessiveInstanceLimitWarning,\n getInvalidParentWarning,\n getMultiplePageWarning\n} from '../utils/audit-logs.js';\n\nexport const excessiveInstanceLimit = 50;\n\nexport interface AuditOptions {\n excessiveInstanceLimit?: number;\n alternates?: { name: string; use: string }[];\n}\n\nexport interface AuditMetadata {\n parents?: string[];\n}\n\ninterface AuditRegistry {\n [key: string]: {\n count?: number;\n excessiveInstanceLimitAudited?: boolean;\n };\n}\n\nexport function audit<T extends Audit>(options: AuditOptions = {}): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new AuditController(instance, options));\n}\n\nexport type Audit = ReactiveElement;\n\nexport class AuditController<T extends Audit> implements ReactiveController {\n #counted = false;\n\n get #hostAuditState() {\n return GlobalStateService.state.audit[this.host.localName] ?? { count: 0 };\n }\n\n get #production() {\n return GlobalStateService.state.env === 'production';\n }\n\n get #hostMetadata() {\n return (this.host.constructor as unknown as { metadata: AuditMetadata }).metadata;\n }\n\n constructor(\n private host: T,\n private options: AuditOptions\n ) {\n if (!this.#production) {\n this.host.addController(this);\n this.#initializeAudit();\n }\n }\n\n async hostConnected() {\n if (!this.#production) this.#auditExcessiveInstanceLimit();\n await this.host.updateComplete;\n if (!this.#production && this.host.isConnected) {\n this.#auditParentElement();\n }\n }\n\n hostDisconnected() {\n this.#cleanupExcessiveInstanceLimit();\n }\n\n #initializeAudit() {\n if (!GlobalStateService.state.audit[this.host.localName]) {\n this.#update({ [this.host.localName]: { count: 0 } });\n }\n }\n\n #auditExcessiveInstanceLimit() {\n const limit = this.options.excessiveInstanceLimit;\n if (limit === undefined || this.#counted) return;\n\n this.#counted = true;\n const count = (this.#hostAuditState.count ?? 0) + 1;\n const audited = this.#hostAuditState.excessiveInstanceLimitAudited ?? false;\n const shouldWarn = count > limit && !audited;\n this.#update({ [this.host.localName]: { count, excessiveInstanceLimitAudited: audited || shouldWarn } });\n\n if (shouldWarn && this.#counted) {\n LogService.warn(\n this.host.localName === 'nve-page'\n ? getMultiplePageWarning(count)\n : getExcessiveInstanceLimitWarning(count, this.host.localName)\n );\n }\n }\n\n #cleanupExcessiveInstanceLimit() {\n const limit = this.options.excessiveInstanceLimit;\n if (limit === undefined || !this.#counted) return;\n\n this.#counted = false;\n const count = Math.max(0, (this.#hostAuditState.count ?? 0) - 1);\n this.#update({\n [this.host.localName]: {\n count,\n excessiveInstanceLimitAudited: count > limit && this.#hostAuditState.excessiveInstanceLimitAudited\n }\n });\n }\n\n #update(registry: AuditRegistry) {\n GlobalStateService.dispatch('NVE_ELEMENTS_AUDIT_UPDATE', { audit: registry });\n }\n\n #auditParentElement() {\n if (this.#hostMetadata.parents) {\n const [valid, validParents] = auditParentElement(this.host);\n if (!valid) {\n LogService.warn(getInvalidParentWarning(this.host.localName, validParents.join(', ')));\n }\n }\n }\n}\n"],"mappings":";;;;;AAcA,IAAaA,IAAyB;AAkBtC,SAAgBC,EAAuB,IAAwB,CAAC,GAAmB;CACjF,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAAgBC,GAAUC,CAAO,CAAC;AAClF;AAIA,IAAaF,IAAb,MAA4E;CAC1E,KAAW;CAEX,IAAIG,KAAkB;EACpB,OAAOC,EAAmB,MAAM,MAAM,KAAK,KAAK,cAAc,EAAE,OAAO,EAAE;CAC3E;CAEA,IAAIC,KAAc;EAChB,OAAOD,EAAmB,MAAM,QAAQ;CAC1C;CAEA,IAAIE,KAAgB;EAClB,OAAQ,KAAK,KAAK,YAAuD;CAC3E;CAEA,YACE,GACA,GACA;EACA,AAHQ,KAAA,OAAAC,GACA,KAAA,UAAAL,GAEH,KAAKG,OACR,KAAK,KAAK,cAAc,IAAI,GAC5B,KAAKG,GAAiB;CAE1B;CAEA,MAAM,gBAAgB;EAGpB,AAFK,KAAKH,MAAa,KAAKI,GAA6B,GACzD,MAAM,KAAK,KAAK,gBACZ,CAAC,KAAKJ,MAAe,KAAK,KAAK,eACjC,KAAKK,GAAoB;CAE7B;CAEA,mBAAmB;EACjB,KAAKC,GAA+B;CACtC;CAEA,KAAmB;EACjB,AAAKP,EAAmB,MAAM,MAAM,KAAK,KAAK,cAC5C,KAAKQ,GAAQ,GAAG,KAAK,KAAK,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC;CAExD;CAEA,KAA+B;EAC7B,IAAMC,IAAQ,KAAK,QAAQ;EAC3B,IAAIA,MAAU,KAAA,KAAa,KAAKC,IAAU;EAE1C,KAAKA,KAAW;EAChB,IAAMC,KAAS,KAAKZ,GAAgB,SAAS,KAAK,GAC5Ca,IAAU,KAAKb,GAAgB,iCAAiC,IAChEc,IAAaF,IAAQF,KAAS,CAACG;EAGrC,AAFA,KAAKJ,GAAQ,GAAG,KAAK,KAAK,YAAY;GAAE;GAAO,+BAA+BI,KAAWC;EAAW,EAAE,CAAC,GAEnGA,KAAc,KAAKH,MACrBI,EAAW,KACT,KAAK,KAAK,cAAc,aACpBC,EAAuBJ,CAAK,IAC5BK,EAAiCL,GAAO,KAAK,KAAK,SAAS,CACjE;CAEJ;CAEA,KAAiC;EAC/B,IAAMF,IAAQ,KAAK,QAAQ;EAC3B,IAAIA,MAAU,KAAA,KAAa,CAAC,KAAKC,IAAU;EAE3C,KAAKA,KAAW;EAChB,IAAMC,IAAQ,KAAK,IAAI,IAAI,KAAKZ,GAAgB,SAAS,KAAK,CAAC;EAC/D,KAAKS,GAAQ,GACV,KAAK,KAAK,YAAY;GACrB;GACA,+BAA+BG,IAAQF,KAAS,KAAKV,GAAgB;EACvE,EACF,CAAC;CACH;CAEA,GAAQ,GAAyB;EAC/B,EAAmB,SAAS,6BAA6B,EAAE,OAAOkB,EAAS,CAAC;CAC9E;CAEA,KAAsB;EACpB,IAAI,KAAKf,GAAc,SAAS;GAC9B,IAAM,CAACgB,GAAOC,KAAgBC,EAAmB,KAAK,IAAI;GAC1D,AAAKF,KACHJ,EAAW,KAAKO,EAAwB,KAAK,KAAK,WAAWF,EAAa,KAAK,IAAI,CAAC,CAAC;EAEzF;CACF;AACF"}
@@ -1,6 +1,5 @@
1
- //#region src/internal/controllers/gesture.controller.examples.ts
1
+ // src/internal/controllers/gesture.controller.examples.ts
2
2
  var e = "";
3
- //#endregion
4
3
  export { e as default };
5
4
 
6
5
  //# sourceMappingURL=gesture.controller.examples.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gesture.controller.examples.js","names":[],"sources":["../../../src/internal/controllers/gesture.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 { GestureController } from '@nvidia-elements/core/internal';\n\nexport default {\n title: 'Internal/Controllers'\n};\n\nclass GestureDemoElement extends LitElement {\n readonly #gestureController = new GestureController(this, {});\n\n static styles = css`\n :host {\n cursor: grab;\n display: grid;\n height: 64px;\n place-items: center;\n width: 64px;\n }\n\n :host([data-active]) {\n cursor: grabbing;\n }\n `;\n\n constructor() {\n super();\n this.#gestureController.target = this;\n }\n\n render() {\n return html`drag`;\n }\n}\n\nif (!customElements.get('gesture-controller-demo-element')) {\n customElements.define('gesture-controller-demo-element', GestureDemoElement);\n}\n\n/**\n * @summary Synchronously claimed pointer input produces drag gestures while preserving start and end input. Use this pattern when a control owns a pointer sequence.\n * @tags test-case\n */\nexport const Drag = {\n render: () => html`\n<gesture-controller-demo-element></gesture-controller-demo-element>\n<script type=\"module\">\n const element = document.querySelector('gesture-controller-demo-element');\n let x = 0;\n let y = 0;\n\n element.addEventListener('nve-gesture-input', ({ detail }) => {\n if (detail.kind === 'pointerdown' && detail.claim({ kind: 'drag' })) element.dataset.active = '';\n if (detail.kind === 'pointerend') delete element.dataset.active;\n });\n\n element.addEventListener('nve-gesture', ({ detail }) => {\n if (detail.kind !== 'drag') return;\n x += detail.movementX;\n y += detail.movementY;\n element.style.translate = x + 'px ' + y + 'px';\n });\n</script>\n`\n};\n"],"mappings":";AAGA,IAAA,IAAc"}
1
+ {"version":3,"file":"gesture.controller.examples.js","names":["gesture_controller_examples_default"],"sources":["../../../src/internal/controllers/gesture.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 { GestureController } from '@nvidia-elements/core/internal';\n\nexport default {\n title: 'Internal/Controllers'\n};\n\nclass GestureDemoElement extends LitElement {\n readonly #gestureController = new GestureController(this, {});\n\n static styles = css`\n :host {\n cursor: grab;\n display: grid;\n height: 64px;\n place-items: center;\n width: 64px;\n }\n\n :host([data-active]) {\n cursor: grabbing;\n }\n `;\n\n constructor() {\n super();\n this.#gestureController.target = this;\n }\n\n render() {\n return html`drag`;\n }\n}\n\nif (!customElements.get('gesture-controller-demo-element')) {\n customElements.define('gesture-controller-demo-element', GestureDemoElement);\n}\n\n/**\n * @summary Synchronously claimed pointer input produces drag gestures while preserving start and end input. Use this pattern when a control owns a pointer sequence.\n * @tags test-case\n */\nexport const Drag = {\n render: () => html`\n<gesture-controller-demo-element></gesture-controller-demo-element>\n<script type=\"module\">\n const element = document.querySelector('gesture-controller-demo-element');\n let x = 0;\n let y = 0;\n\n element.addEventListener('nve-gesture-input', ({ detail }) => {\n if (detail.kind === 'pointerdown' && detail.claim({ kind: 'drag' })) element.dataset.active = '';\n if (detail.kind === 'pointerend') delete element.dataset.active;\n });\n\n element.addEventListener('nve-gesture', ({ detail }) => {\n if (detail.kind !== 'drag') return;\n x += detail.movementX;\n y += detail.movementY;\n element.style.translate = x + 'px ' + y + 'px';\n });\n</script>\n`\n};\n"],"mappings":";AAGA,IAAAA,IAAc"}
@@ -1,4 +1,4 @@
1
- //#region src/internal/controllers/gesture.controller.ts
1
+ // src/internal/controllers/gesture.controller.ts
2
2
  var e = [
3
3
  "contextmenu",
4
4
  "dragstart",
@@ -71,25 +71,7 @@ var e = [
71
71
  };
72
72
  #f = (e) => {
73
73
  let t = this.#a;
74
- if (!(!t || e.currentTarget !== t)) {
75
- if (e.type === "contextmenu" && e instanceof MouseEvent) {
76
- this.#m(e);
77
- return;
78
- }
79
- if (e.type === "selectstart") {
80
- this.#h(e);
81
- return;
82
- }
83
- if (e instanceof WheelEvent) {
84
- this.#_(e);
85
- return;
86
- }
87
- if (e instanceof PointerEvent) {
88
- this.#g(e);
89
- return;
90
- }
91
- this.#p(e);
92
- }
74
+ t && e.currentTarget === t && (e.type === "contextmenu" && e instanceof MouseEvent ? this.#m(e) : e.type === "selectstart" ? this.#h(e) : e instanceof WheelEvent ? this.#_(e) : e instanceof PointerEvent ? this.#g(e) : this.#p(e));
93
75
  };
94
76
  #p(e) {
95
77
  e.type !== "dragstart" || this.#t.shouldIgnoreEvent?.(e) || this.#t.suppressNativeDrag && e.preventDefault();
@@ -102,11 +84,7 @@ var e = [
102
84
  }
103
85
  #g(e) {
104
86
  let t = l(e);
105
- if (t !== void 0) {
106
- this.#n.has(e.pointerId) && this.#S(e, t);
107
- return;
108
- }
109
- e.type === "pointerdown" ? this.#t.shouldIgnoreEvent?.(e) || this.#v(e) : e.type === "pointermove" && this.#n.has(e.pointerId) && this.#y(e);
87
+ t === void 0 ? e.type === "pointerdown" ? this.#t.shouldIgnoreEvent?.(e) || this.#v(e) : e.type === "pointermove" && this.#n.has(e.pointerId) && this.#y(e) : this.#n.has(e.pointerId) && this.#S(e, t);
110
88
  }
111
89
  #_(e) {
112
90
  let t = this.#a;
@@ -157,7 +135,7 @@ var e = [
157
135
  }
158
136
  #y(e) {
159
137
  let t = this.#b(e);
160
- t && (e.stopPropagation(), (t.movementX !== 0 || t.movementY !== 0) && (this.#n.size >= 2 && this.#C(e) || t.gestureKind !== void 0 && (e.preventDefault(), this.#x(e, t, t.gestureKind))));
138
+ t && (e.stopPropagation(), t.movementX === 0 && t.movementY === 0 || this.#n.size >= 2 && this.#C(e) || t.gestureKind !== void 0 && (e.preventDefault(), this.#x(e, t, t.gestureKind)));
161
139
  }
162
140
  #b(e) {
163
141
  let t = this.#n.get(e.pointerId);
@@ -180,7 +158,7 @@ var e = [
180
158
  #S(e, t) {
181
159
  let n = this.#n.get(e.pointerId);
182
160
  if (!n) return;
183
- let r = u(t), i = r ? n.clientX : e.clientX, a = r ? n.clientY : e.clientY;
161
+ let r = u(t, e), i = r ? n.clientX : e.clientX, a = r ? n.clientY : e.clientY;
184
162
  e.stopPropagation(), this.#I({
185
163
  clientX: i,
186
164
  clientY: a,
@@ -264,19 +242,15 @@ var e = [
264
242
  startCenterClientX: s(n.clientX, r.clientX),
265
243
  startCenterClientY: s(n.clientY, r.clientY)
266
244
  }, o = t(a);
267
- if (!o) {
268
- this.#i = {
269
- firstPointerId: e.firstPointerId,
270
- secondPointerId: e.secondPointerId,
271
- status: "declined"
272
- };
273
- return;
274
- }
275
- this.#i = {
245
+ this.#i = o ? {
276
246
  context: o.context,
277
247
  distance: i,
278
248
  status: "active",
279
249
  ...a
250
+ } : {
251
+ firstPointerId: e.firstPointerId,
252
+ secondPointerId: e.secondPointerId,
253
+ status: "declined"
280
254
  };
281
255
  }
282
256
  #D() {
@@ -300,7 +274,7 @@ var e = [
300
274
  }
301
275
  #A() {
302
276
  let e = this.#o;
303
- this.#o = void 0, !(!e || e.target.style.getPropertyValue("touch-action") !== e.applied) && (e.value ? e.target.style.setProperty("touch-action", e.value, e.priority) : e.target.style.removeProperty("touch-action"));
277
+ this.#o = void 0, e && e.target.style.getPropertyValue("touch-action") === e.applied && (e.value ? e.target.style.setProperty("touch-action", e.value, e.priority) : e.target.style.removeProperty("touch-action"));
304
278
  }
305
279
  #j() {
306
280
  let e = this.#a;
@@ -325,7 +299,7 @@ var e = [
325
299
  }
326
300
  #P() {
327
301
  let e = this.#s;
328
- this.#s = void 0, !(!e || e.target.style.getPropertyValue("user-select") !== e.applied || e.target.style.getPropertyPriority("user-select") !== e.appliedPriority) && (e.value ? e.target.style.setProperty("user-select", e.value, e.priority) : e.target.style.removeProperty("user-select"));
302
+ this.#s = void 0, e && e.target.style.getPropertyValue("user-select") === e.applied && e.target.style.getPropertyPriority("user-select") === e.appliedPriority && (e.value ? e.target.style.setProperty("user-select", e.value, e.priority) : e.target.style.removeProperty("user-select"));
329
303
  }
330
304
  #F(e) {
331
305
  this.#e.dispatchEvent(new CustomEvent("nve-gesture", {
@@ -362,13 +336,12 @@ function l(e) {
362
336
  if (e.type === "lostpointercapture") return "lost-capture";
363
337
  if (e.type === "pointermove" && e.buttons === 0) return "buttons-released";
364
338
  }
365
- function u(e) {
366
- return e === "cancel" || e === "lost-capture";
339
+ function u(e, t) {
340
+ return e === "cancel" || e === "lost-capture" && t.buttons !== 0;
367
341
  }
368
342
  function d(e, t, n = 1) {
369
343
  return t === WheelEvent.DOM_DELTA_LINE ? e * r : t === WheelEvent.DOM_DELTA_PAGE ? e * n : e;
370
344
  }
371
- //#endregion
372
345
  export { a as GestureController };
373
346
 
374
347
  //# sourceMappingURL=gesture.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gesture.controller.js","names":[],"sources":["../../../src/internal/controllers/gesture.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\nconst GESTURE_EVENT_TYPES = [\n 'contextmenu',\n 'dragstart',\n 'lostpointercapture',\n 'pointercancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'selectstart',\n 'wheel'\n] as const;\n\nconst WHEEL_ZOOM_EXPONENT_PER_PIXEL = 0.002;\n\n/**\n * Browsers expose trackpad pinch as Ctrl-modified wheel input, so Ctrl-wheel uses a higher zoom gain.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/ctrlKey\n */\nconst CTRL_WHEEL_ZOOM_GAIN = 10;\n\nconst WHEEL_LINE_PIXELS = 16;\n\ninterface PointerState {\n clientX: number;\n clientY: number;\n gestureKind: PointerClaimOptions['kind'];\n movementX: number;\n movementY: number;\n pinchCandidate: boolean;\n readonly pointerType: string;\n readonly startClientX: number;\n readonly startClientY: number;\n}\n\nexport interface PointerClaimOptions {\n readonly kind?: 'drag' | 'pan';\n readonly pinchCandidate?: boolean;\n}\n\nexport interface PinchStartDecision<TContext> {\n readonly context: TContext;\n}\n\n/** Coordinates and deltas use CSS pixels; movement is sample-relative and total displacement is start-relative. */\nexport interface PointerMovementGesture {\n readonly event: PointerEvent;\n readonly clientX: number;\n readonly clientY: number;\n readonly movementX: number;\n readonly movementY: number;\n readonly startClientX: number;\n readonly startClientY: number;\n readonly totalDisplacementX: number;\n readonly totalDisplacementY: number;\n}\n\nexport interface PinchStart {\n readonly firstPointerId: number;\n readonly firstPointerType: string;\n readonly firstStartClientX: number;\n readonly firstStartClientY: number;\n readonly secondPointerId: number;\n readonly secondPointerType: string;\n readonly secondStartClientX: number;\n readonly secondStartClientY: number;\n readonly startCenterClientX: number;\n readonly startCenterClientY: number;\n}\n\nexport interface PinchGesture<TContext> extends PinchStart {\n readonly kind: 'pinch';\n readonly event: PointerEvent;\n readonly context: TContext;\n /** Current pointer distance divided by the starting pointer distance. */\n readonly scale: number;\n readonly centerClientX: number;\n readonly centerClientY: number;\n}\n\n/**\n * Per-event wheel input normalized to CSS pixels.\n *\n * Modifier-assisted trackpad pinch remains wheel input: consumers can classify it using the native event's\n * `ctrlKey` or `metaKey` without conflating it with the start-relative lifecycle of a two-pointer pinch.\n */\nexport interface WheelGesture {\n readonly kind: 'wheel';\n readonly event: WheelEvent;\n readonly clientX: number;\n readonly clientY: number;\n readonly deltaX: number;\n readonly deltaY: number;\n}\n\nexport type PointerEndReason = 'up' | 'cancel' | 'lost-capture' | 'buttons-released';\n\nexport interface PointerEndGesture extends PointerMovementGesture {\n readonly kind: 'pointerend';\n /** Whether the pointer session ended without an observed physical release. */\n readonly interrupted: boolean;\n readonly reason: PointerEndReason;\n}\n\nexport type Gesture<TPinchContext> =\n | (PointerMovementGesture & { readonly kind: 'drag' })\n | (PointerMovementGesture & { readonly kind: 'pan' })\n | PinchGesture<TPinchContext>;\n\nexport interface PointerDownInput {\n readonly event: PointerEvent;\n readonly kind: 'pointerdown';\n /**\n * Claims this pointer sequence once during the synchronous input dispatch and suppresses native text selection for\n * its lifetime; returns `false` after that window.\n */\n readonly claim: (options?: PointerClaimOptions) => boolean;\n}\n\nexport interface WheelGestureInput extends WheelGesture {\n /** Claims and prevents this wheel event during the synchronous input dispatch; returns `false` afterward. */\n readonly claim: () => boolean;\n}\n\n/** Claimable starts, claimed pointer terminals, and normalized claimable wheel input. */\nexport type GestureInput = PointerDownInput | PointerEndGesture | WheelGestureInput;\n\n/** Precedence policy for claims among nested GestureController targets. */\nexport type GestureClaimPriority = 'self-first' | 'descendant-first';\n\nexport interface GestureControllerOptions<TPinchContext = undefined> {\n /**\n * Skips admission of a new pointer sequence or a stateless native event.\n * The controller does not consult it again after a pointerdown claim.\n */\n readonly shouldIgnoreEvent?: (event: Event) => boolean;\n /**\n * Consulted once when the controller first observes two claimed pinch candidates.\n * Returning `undefined` declines that pair; otherwise the controller retains the context for its pinch lifetime.\n * The pair remains locked until fewer than two pinch candidates remain.\n */\n readonly beginPinch?: (start: PinchStart) => PinchStartDecision<TPinchContext> | undefined;\n /** Consulted independently for each context-menu event. */\n readonly shouldPreventContextMenu?: (event: MouseEvent) => boolean;\n /**\n * Determines precedence among nested GestureController targets.\n *\n * `self-first` is appropriate for a dedicated interaction surface.\n * `descendant-first` lets nested controllers claim input before this controller.\n *\n * Defaults to `self-first`.\n */\n readonly claimPriority?: GestureClaimPriority;\n /**\n * Consulted during native pointerdown capture before descendant handlers.\n *\n * Returning true calls preventDefault() on the pointerdown, but does not\n * claim the pointer, capture it, stop propagation, create pointer state,\n * suppress selection, or start a gesture.\n *\n * This is meaningful with `claimPriority: 'descendant-first'`. It lets an\n * activated higher-level interaction mode reserve a sequence for ordinary\n * target-phase application code while preserving nested GestureController\n * claim priority.\n */\n readonly shouldReservePointerDown?: (event: PointerEvent) => boolean;\n /** Prevents native HTML drag competition on a dedicated interaction surface. */\n readonly suppressNativeDrag?: boolean;\n /**\n * Inline `touch-action` for a dedicated interaction surface. The controller reevaluates a callback after host updates.\n * Restores the target's prior inline value afterward.\n * Avoid applying it to a general root that contains native interactive content.\n */\n readonly touchAction?: string | (() => string | undefined);\n}\n\ninterface PinchPair {\n readonly firstPointerId: number;\n readonly secondPointerId: number;\n}\n\ninterface PendingPinchState extends PinchPair {\n readonly status: 'pending';\n}\n\ninterface DeclinedPinchState extends PinchPair {\n readonly status: 'declined';\n}\n\ninterface ActivePinchState<TPinchContext> extends PinchPair, PinchStart {\n readonly context: TPinchContext;\n readonly distance: number;\n readonly status: 'active';\n}\n\ntype PinchState<TPinchContext> = PendingPinchState | DeclinedPinchState | ActivePinchState<TPinchContext>;\n\ninterface TouchActionState {\n readonly applied: string;\n readonly priority: string;\n readonly target: HTMLElement;\n readonly value: string;\n}\n\ninterface UserSelectState {\n readonly applied: string;\n readonly appliedPriority: string;\n readonly priority: string;\n readonly target: HTMLElement;\n readonly value: string;\n}\n\nclass SynchronousClaim<TOptions = void> {\n #action?: (options?: TOptions) => void;\n\n constructor(action: (options?: TOptions) => void) {\n this.#action = action;\n }\n\n readonly claim = (options?: TOptions): boolean => {\n const action = this.#action;\n if (!action) return false;\n this.#action = undefined;\n action(options);\n return true;\n };\n\n close(): void {\n this.#action = undefined;\n }\n}\n\ntype GestureHost = EventTarget & ReactiveControllerHost;\n\n/**\n * Normalizes claimable platform pointer and wheel input on a dynamically assigned target.\n * A pointer claim owns native input competition for its lifetime: the controller prevents claimed movement and text\n * selection, and can suppress native drag when configured.\n */\nexport class GestureController<TPinchContext = undefined> implements ReactiveController {\n readonly #host: GestureHost;\n readonly #options: GestureControllerOptions<TPinchContext>;\n readonly #pointerStates = new Map<number, PointerState>();\n #connected = false;\n #pinch?: PinchState<TPinchContext>;\n #target?: HTMLElement;\n #touchActionState?: TouchActionState;\n #userSelectState?: UserSelectState;\n\n constructor(host: GestureHost, options: GestureControllerOptions<TPinchContext>) {\n this.#host = host;\n this.#options = options;\n host.addController(this);\n }\n\n getWheelZoomFactor(input: Pick<WheelGesture, 'deltaY' | 'event'>): number {\n const gain = input.event.ctrlKey ? CTRL_WHEEL_ZOOM_GAIN : 1;\n return 2 ** (-input.deltaY * WHEEL_ZOOM_EXPONENT_PER_PIXEL * gain);\n }\n\n set target(target: HTMLElement | undefined) {\n if (target === this.#target) return;\n this.#removeTargetListeners();\n this.#resetGestureState();\n this.#target = target;\n this.#addTargetListeners();\n }\n\n hostConnected(): void {\n this.#connected = true;\n this.#addTargetListeners();\n }\n\n hostDisconnected(): void {\n this.#removeTargetListeners();\n this.#resetGestureState();\n this.#connected = false;\n }\n\n hostUpdated(): void {\n this.#syncTouchAction();\n }\n\n #addTargetListeners(): void {\n const target = this.#target;\n if (!this.#connected || !target) return;\n const capture = this.#options.claimPriority !== 'descendant-first';\n for (const type of GESTURE_EVENT_TYPES) target.addEventListener(type, this.#handleEvent, capture);\n if (this.#shouldListenForPointerDownReservation()) {\n target.addEventListener('pointerdown', this.#handlePointerDownReservation, true);\n }\n this.#applyTouchAction(target);\n }\n\n #removeTargetListeners(): void {\n const target = this.#target;\n if (!this.#connected || !target) return;\n const capture = this.#options.claimPriority !== 'descendant-first';\n for (const type of GESTURE_EVENT_TYPES) target.removeEventListener(type, this.#handleEvent, capture);\n if (this.#shouldListenForPointerDownReservation()) {\n target.removeEventListener('pointerdown', this.#handlePointerDownReservation, true);\n }\n this.#restoreTouchAction();\n }\n\n #shouldListenForPointerDownReservation(): boolean {\n return this.#options.claimPriority === 'descendant-first' && this.#options.shouldReservePointerDown !== undefined;\n }\n\n #handlePointerDownReservation = (event: PointerEvent): void => {\n const target = this.#target;\n if (\n !target ||\n event.currentTarget !== target ||\n event.defaultPrevented ||\n this.#options.shouldIgnoreEvent?.(event)\n ) {\n return;\n }\n if (this.#options.shouldReservePointerDown?.(event)) event.preventDefault();\n };\n\n #handleEvent = (event: Event): void => {\n const target = this.#target;\n if (!target || event.currentTarget !== target) return;\n if (event.type === 'contextmenu' && event instanceof MouseEvent) {\n this.#handleContextMenu(event);\n return;\n }\n if (event.type === 'selectstart') {\n this.#handleSelectStart(event);\n return;\n }\n if (event instanceof WheelEvent) {\n this.#handleWheel(event);\n return;\n }\n if (event instanceof PointerEvent) {\n this.#handlePointerEvent(event);\n return;\n }\n this.#handleNativeDrag(event);\n };\n\n #handleNativeDrag(event: Event): void {\n if (event.type !== 'dragstart' || this.#options.shouldIgnoreEvent?.(event)) return;\n if (this.#options.suppressNativeDrag) event.preventDefault();\n }\n\n #handleContextMenu(event: MouseEvent): void {\n if (this.#options.shouldIgnoreEvent?.(event)) return;\n if (this.#options.shouldPreventContextMenu?.(event)) event.preventDefault();\n }\n\n #handleSelectStart(event: Event): void {\n if (this.#pointerStates.size > 0) event.preventDefault();\n }\n\n #handlePointerEvent(event: PointerEvent): void {\n const reason = getPointerEndReason(event);\n if (reason !== undefined) {\n if (this.#pointerStates.has(event.pointerId)) this.#endPointer(event, reason);\n return;\n }\n if (event.type === 'pointerdown') {\n if (!this.#options.shouldIgnoreEvent?.(event)) this.#handlePointerDown(event);\n } else if (event.type === 'pointermove' && this.#pointerStates.has(event.pointerId)) {\n this.#handlePointerMove(event);\n }\n }\n\n #handleWheel(event: WheelEvent): void {\n const target = this.#target;\n if (!target || this.#options.shouldIgnoreEvent?.(event)) return;\n const pageBounds = event.deltaMode === WheelEvent.DOM_DELTA_PAGE ? target.getBoundingClientRect() : undefined;\n const deltaX = normalizeWheelDelta(event.deltaX, event.deltaMode, pageBounds?.width);\n const deltaY = normalizeWheelDelta(event.deltaY, event.deltaMode, pageBounds?.height);\n const claimWindow = new SynchronousClaim(() => {\n event.preventDefault();\n event.stopPropagation();\n });\n try {\n this.#dispatchGestureInput({\n claim: claimWindow.claim,\n clientX: event.clientX,\n clientY: event.clientY,\n deltaX,\n deltaY,\n event,\n kind: 'wheel'\n });\n } finally {\n claimWindow.close();\n }\n }\n\n #handlePointerDown(event: PointerEvent): void {\n const claimWindow = new SynchronousClaim<PointerClaimOptions>(options => {\n this.#pointerStates.set(event.pointerId, {\n clientX: event.clientX,\n clientY: event.clientY,\n gestureKind: options?.kind,\n movementX: 0,\n movementY: 0,\n pinchCandidate: options?.pinchCandidate ?? false,\n pointerType: event.pointerType,\n startClientX: event.clientX,\n startClientY: event.clientY\n });\n const target = this.#target;\n if (target) this.#applyUserSelect(target);\n event.stopPropagation();\n this.#capturePointer(event.pointerId);\n });\n try {\n this.#dispatchGestureInput({ claim: claimWindow.claim, event, kind: 'pointerdown' });\n } finally {\n claimWindow.close();\n }\n this.#startPinchIfNeeded();\n }\n\n #handlePointerMove(event: PointerEvent): void {\n const pointerState = this.#updatePointerPosition(event);\n if (!pointerState) return;\n event.stopPropagation();\n if (pointerState.movementX === 0 && pointerState.movementY === 0) return;\n if (this.#pointerStates.size >= 2 && this.#handlePinch(event)) return;\n if (pointerState.gestureKind === undefined) return;\n event.preventDefault();\n this.#dispatchPointerMovementGesture(event, pointerState, pointerState.gestureKind);\n }\n\n #updatePointerPosition(event: PointerEvent): PointerState | undefined {\n const pointerState = this.#pointerStates.get(event.pointerId);\n if (!pointerState) return undefined;\n pointerState.movementX = calculateDisplacement(event.clientX, pointerState.clientX);\n pointerState.movementY = calculateDisplacement(event.clientY, pointerState.clientY);\n pointerState.clientX = event.clientX;\n pointerState.clientY = event.clientY;\n return pointerState;\n }\n\n #dispatchPointerMovementGesture(event: PointerEvent, pointerState: PointerState, kind: 'drag' | 'pan'): void {\n this.#dispatchGesture({\n clientX: pointerState.clientX,\n clientY: pointerState.clientY,\n event,\n kind,\n movementX: pointerState.movementX,\n movementY: pointerState.movementY,\n startClientX: pointerState.startClientX,\n startClientY: pointerState.startClientY,\n totalDisplacementX: calculateDisplacement(pointerState.clientX, pointerState.startClientX),\n totalDisplacementY: calculateDisplacement(pointerState.clientY, pointerState.startClientY)\n });\n }\n\n #endPointer(event: PointerEvent, reason: PointerEndReason): void {\n const pointerState = this.#pointerStates.get(event.pointerId);\n if (!pointerState) return;\n const interrupted = isPointerEndInterrupted(reason);\n const clientX = interrupted ? pointerState.clientX : event.clientX;\n const clientY = interrupted ? pointerState.clientY : event.clientY;\n event.stopPropagation();\n this.#dispatchGestureInput({\n clientX,\n clientY,\n event,\n interrupted,\n kind: 'pointerend',\n movementX: calculateDisplacement(clientX, pointerState.clientX),\n movementY: calculateDisplacement(clientY, pointerState.clientY),\n startClientX: pointerState.startClientX,\n startClientY: pointerState.startClientY,\n totalDisplacementX: calculateDisplacement(clientX, pointerState.startClientX),\n totalDisplacementY: calculateDisplacement(clientY, pointerState.startClientY),\n reason\n });\n this.#pointerStates.delete(event.pointerId);\n if (this.#pointerStates.size === 0) this.#restoreUserSelect();\n if (this.#countPinchCandidates() < 2) this.#pinch = undefined;\n }\n\n #handlePinch(event: PointerEvent): boolean {\n this.#startPinchIfNeeded();\n this.#beginPendingPinchIfPossible();\n const pinch = this.#pinch;\n const pointerState = this.#pointerStates.get(event.pointerId);\n if (!pinch || !pointerState?.pinchCandidate) return false;\n const isPairPointer = event.pointerId === pinch.firstPointerId || event.pointerId === pinch.secondPointerId;\n if (pinch.status === 'pending') return true;\n if (pinch.status === 'declined') return !isPairPointer;\n if (!isPairPointer) return true;\n return this.#dispatchActivePinch(event, pinch);\n }\n\n #dispatchActivePinch(event: PointerEvent, pinch: ActivePinchState<TPinchContext>): boolean {\n const first = this.#pointerStates.get(pinch.firstPointerId);\n const second = this.#pointerStates.get(pinch.secondPointerId);\n if (!first || !second) return true;\n const distance = calculatePointerDistance(first, second);\n if (distance <= 0) return true;\n const centerClientX = calculateMidpoint(first.clientX, second.clientX);\n const centerClientY = calculateMidpoint(first.clientY, second.clientY);\n event.preventDefault();\n this.#dispatchGesture({\n centerClientX,\n centerClientY,\n context: pinch.context,\n event,\n firstPointerId: pinch.firstPointerId,\n firstPointerType: pinch.firstPointerType,\n firstStartClientX: pinch.firstStartClientX,\n firstStartClientY: pinch.firstStartClientY,\n kind: 'pinch',\n scale: distance / pinch.distance,\n secondPointerId: pinch.secondPointerId,\n secondPointerType: pinch.secondPointerType,\n secondStartClientX: pinch.secondStartClientX,\n secondStartClientY: pinch.secondStartClientY,\n startCenterClientX: pinch.startCenterClientX,\n startCenterClientY: pinch.startCenterClientY\n });\n return true;\n }\n\n #startPinchIfNeeded(): void {\n const beginPinch = this.#options.beginPinch;\n if (this.#pinch || this.#pointerStates.size < 2 || !beginPinch) return;\n let firstPointerId: number | undefined;\n let secondPointerId: number | undefined;\n for (const pointerId of this.#pointerStates.keys()) {\n if (!this.#pointerStates.get(pointerId)?.pinchCandidate) continue;\n if (firstPointerId === undefined) firstPointerId = pointerId;\n else {\n secondPointerId = pointerId;\n break;\n }\n }\n if (firstPointerId === undefined || secondPointerId === undefined) return;\n this.#pinch = { firstPointerId, secondPointerId, status: 'pending' };\n this.#beginPendingPinchIfPossible();\n }\n\n #beginPendingPinchIfPossible(): void {\n const pinch = this.#pinch;\n const beginPinch = this.#options.beginPinch;\n if (pinch?.status !== 'pending' || !beginPinch) return;\n const first = this.#pointerStates.get(pinch.firstPointerId);\n const second = this.#pointerStates.get(pinch.secondPointerId);\n if (!first || !second) return;\n const distance = calculatePointerDistance(first, second);\n if (distance <= 0) return;\n const start: PinchStart = {\n firstPointerId: pinch.firstPointerId,\n firstPointerType: first.pointerType,\n firstStartClientX: first.startClientX,\n firstStartClientY: first.startClientY,\n secondPointerId: pinch.secondPointerId,\n secondPointerType: second.pointerType,\n secondStartClientX: second.startClientX,\n secondStartClientY: second.startClientY,\n startCenterClientX: calculateMidpoint(first.clientX, second.clientX),\n startCenterClientY: calculateMidpoint(first.clientY, second.clientY)\n };\n const decision = beginPinch(start);\n if (!decision) {\n this.#pinch = {\n firstPointerId: pinch.firstPointerId,\n secondPointerId: pinch.secondPointerId,\n status: 'declined'\n };\n return;\n }\n this.#pinch = {\n context: decision.context,\n distance,\n status: 'active',\n ...start\n };\n }\n\n #countPinchCandidates(): number {\n let count = 0;\n for (const pointerState of this.#pointerStates.values()) {\n if (pointerState.pinchCandidate) count += 1;\n }\n return count;\n }\n\n #capturePointer(pointerId: number): void {\n try {\n this.#target?.setPointerCapture?.(pointerId);\n } catch {\n // Synthetic test events and browser implementations may not have an active pointer to capture.\n }\n }\n\n #applyTouchAction(target: HTMLElement): void {\n const touchAction = this.#getTouchAction();\n if (touchAction === undefined) return;\n this.#touchActionState = {\n applied: touchAction,\n priority: target.style.getPropertyPriority('touch-action'),\n target,\n value: target.style.getPropertyValue('touch-action')\n };\n target.style.setProperty('touch-action', touchAction);\n }\n\n #restoreTouchAction(): void {\n const state = this.#touchActionState;\n this.#touchActionState = undefined;\n if (!state || state.target.style.getPropertyValue('touch-action') !== state.applied) return;\n if (state.value) {\n state.target.style.setProperty('touch-action', state.value, state.priority);\n } else {\n state.target.style.removeProperty('touch-action');\n }\n }\n\n #syncTouchAction(): void {\n const target = this.#target;\n if (!this.#connected || !target) return;\n const touchAction = this.#getTouchAction();\n if (touchAction === this.#touchActionState?.applied) return;\n this.#restoreTouchAction();\n if (touchAction !== undefined) this.#applyTouchAction(target);\n }\n\n #getTouchAction(): string | undefined {\n const touchAction = this.#options.touchAction;\n return typeof touchAction === 'function' ? touchAction() : touchAction;\n }\n\n #applyUserSelect(target: HTMLElement): void {\n if (this.#userSelectState) return;\n const applied = 'none';\n const appliedPriority = '';\n this.#userSelectState = {\n applied,\n appliedPriority,\n priority: target.style.getPropertyPriority('user-select'),\n target,\n value: target.style.getPropertyValue('user-select')\n };\n target.style.setProperty('user-select', applied, appliedPriority);\n }\n\n #restoreUserSelect(): void {\n const state = this.#userSelectState;\n this.#userSelectState = undefined;\n if (\n !state ||\n state.target.style.getPropertyValue('user-select') !== state.applied ||\n state.target.style.getPropertyPriority('user-select') !== state.appliedPriority\n ) {\n return;\n }\n if (state.value) {\n state.target.style.setProperty('user-select', state.value, state.priority);\n } else {\n state.target.style.removeProperty('user-select');\n }\n }\n\n #dispatchGesture(gesture: Gesture<TPinchContext>): void {\n this.#host.dispatchEvent(\n new CustomEvent<Gesture<TPinchContext>>('nve-gesture', {\n bubbles: false,\n cancelable: false,\n composed: false,\n detail: gesture\n })\n );\n }\n\n #dispatchGestureInput(input: GestureInput): void {\n this.#host.dispatchEvent(\n new CustomEvent<GestureInput>('nve-gesture-input', {\n bubbles: false,\n cancelable: false,\n composed: false,\n detail: input\n })\n );\n }\n\n #resetGestureState(): void {\n this.#pointerStates.clear();\n this.#pinch = undefined;\n this.#restoreUserSelect();\n }\n}\n\nfunction calculateDisplacement(position: number, origin: number): number {\n return position - origin;\n}\n\nfunction calculateMidpoint(first: number, second: number): number {\n return (first + second) / 2;\n}\n\nfunction calculatePointerDistance(first: PointerState, second: PointerState): number {\n return Math.hypot(first.clientX - second.clientX, first.clientY - second.clientY);\n}\n\nfunction getPointerEndReason(event: PointerEvent): PointerEndReason | undefined {\n if (event.type === 'pointerup') return 'up';\n if (event.type === 'pointercancel') return 'cancel';\n if (event.type === 'lostpointercapture') return 'lost-capture';\n if (event.type === 'pointermove' && event.buttons === 0) return 'buttons-released';\n return undefined;\n}\n\nfunction isPointerEndInterrupted(reason: PointerEndReason): boolean {\n return reason === 'cancel' || reason === 'lost-capture';\n}\n\nfunction normalizeWheelDelta(delta: number, deltaMode: number, pagePixels = 1): number {\n if (deltaMode === WheelEvent.DOM_DELTA_LINE) return delta * WHEEL_LINE_PIXELS;\n if (deltaMode === WheelEvent.DOM_DELTA_PAGE) return delta * pagePixels;\n return delta;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"gesture.controller.js","names":["GESTURE_EVENT_TYPES","WHEEL_ZOOM_EXPONENT_PER_PIXEL","CTRL_WHEEL_ZOOM_GAIN","WHEEL_LINE_PIXELS","SynchronousClaim","action","#action","options","GestureController","#host","host","#options","gain","input","target","#target","#removeTargetListeners","#resetGestureState","#addTargetListeners","#connected","#syncTouchAction","capture","type","#handleEvent","#shouldListenForPointerDownReservation","#handlePointerDownReservation","#applyTouchAction","#restoreTouchAction","event","#handleContextMenu","#handleSelectStart","#handleWheel","#handlePointerEvent","#handleNativeDrag","#pointerStates","reason","getPointerEndReason","#handlePointerDown","#handlePointerMove","#endPointer","pageBounds","deltaX","normalizeWheelDelta","deltaY","claimWindow","#dispatchGestureInput","#applyUserSelect","#capturePointer","#startPinchIfNeeded","pointerState","#updatePointerPosition","#handlePinch","#dispatchPointerMovementGesture","calculateDisplacement","#dispatchGesture","interrupted","isPointerEndInterrupted","clientX","clientY","#restoreUserSelect","#countPinchCandidates","#pinch","#beginPendingPinchIfPossible","pinch","isPairPointer","#dispatchActivePinch","first","second","distance","calculatePointerDistance","centerClientX","calculateMidpoint","centerClientY","beginPinch","firstPointerId","secondPointerId","pointerId","start","decision","count","touchAction","#getTouchAction","#touchActionState","state","#userSelectState","applied","gesture","position","origin","deltaMode","delta","pagePixels"],"sources":["../../../src/internal/controllers/gesture.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\nconst GESTURE_EVENT_TYPES = [\n 'contextmenu',\n 'dragstart',\n 'lostpointercapture',\n 'pointercancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'selectstart',\n 'wheel'\n] as const;\n\nconst WHEEL_ZOOM_EXPONENT_PER_PIXEL = 0.002;\n\n/**\n * Browsers expose trackpad pinch as Ctrl-modified wheel input, so Ctrl-wheel uses a higher zoom gain.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/ctrlKey\n */\nconst CTRL_WHEEL_ZOOM_GAIN = 10;\n\nconst WHEEL_LINE_PIXELS = 16;\n\ninterface PointerState {\n clientX: number;\n clientY: number;\n gestureKind: PointerClaimOptions['kind'];\n movementX: number;\n movementY: number;\n pinchCandidate: boolean;\n readonly pointerType: string;\n readonly startClientX: number;\n readonly startClientY: number;\n}\n\nexport interface PointerClaimOptions {\n readonly kind?: 'drag' | 'pan';\n readonly pinchCandidate?: boolean;\n}\n\nexport interface PinchStartDecision<TContext> {\n readonly context: TContext;\n}\n\n/** Coordinates and deltas use CSS pixels; movement is sample-relative and total displacement is start-relative. */\nexport interface PointerMovementGesture {\n readonly event: PointerEvent;\n readonly clientX: number;\n readonly clientY: number;\n readonly movementX: number;\n readonly movementY: number;\n readonly startClientX: number;\n readonly startClientY: number;\n readonly totalDisplacementX: number;\n readonly totalDisplacementY: number;\n}\n\nexport interface PinchStart {\n readonly firstPointerId: number;\n readonly firstPointerType: string;\n readonly firstStartClientX: number;\n readonly firstStartClientY: number;\n readonly secondPointerId: number;\n readonly secondPointerType: string;\n readonly secondStartClientX: number;\n readonly secondStartClientY: number;\n readonly startCenterClientX: number;\n readonly startCenterClientY: number;\n}\n\nexport interface PinchGesture<TContext> extends PinchStart {\n readonly kind: 'pinch';\n readonly event: PointerEvent;\n readonly context: TContext;\n /** Current pointer distance divided by the starting pointer distance. */\n readonly scale: number;\n readonly centerClientX: number;\n readonly centerClientY: number;\n}\n\n/**\n * Per-event wheel input normalized to CSS pixels.\n *\n * Modifier-assisted trackpad pinch remains wheel input: consumers can classify it using the native event's\n * `ctrlKey` or `metaKey` without conflating it with the start-relative lifecycle of a two-pointer pinch.\n */\nexport interface WheelGesture {\n readonly kind: 'wheel';\n readonly event: WheelEvent;\n readonly clientX: number;\n readonly clientY: number;\n readonly deltaX: number;\n readonly deltaY: number;\n}\n\nexport type PointerEndReason = 'up' | 'cancel' | 'lost-capture' | 'buttons-released';\n\nexport interface PointerEndGesture extends PointerMovementGesture {\n readonly kind: 'pointerend';\n /** Whether the pointer session ended without an observed physical release. */\n readonly interrupted: boolean;\n readonly reason: PointerEndReason;\n}\n\nexport type Gesture<TPinchContext> =\n | (PointerMovementGesture & { readonly kind: 'drag' })\n | (PointerMovementGesture & { readonly kind: 'pan' })\n | PinchGesture<TPinchContext>;\n\nexport interface PointerDownInput {\n readonly event: PointerEvent;\n readonly kind: 'pointerdown';\n /**\n * Claims this pointer sequence once during the synchronous input dispatch and suppresses native text selection for\n * its lifetime; returns `false` after that window.\n */\n readonly claim: (options?: PointerClaimOptions) => boolean;\n}\n\nexport interface WheelGestureInput extends WheelGesture {\n /** Claims and prevents this wheel event during the synchronous input dispatch; returns `false` afterward. */\n readonly claim: () => boolean;\n}\n\n/** Claimable starts, claimed pointer terminals, and normalized claimable wheel input. */\nexport type GestureInput = PointerDownInput | PointerEndGesture | WheelGestureInput;\n\n/** Precedence policy for claims among nested GestureController targets. */\nexport type GestureClaimPriority = 'self-first' | 'descendant-first';\n\nexport interface GestureControllerOptions<TPinchContext = undefined> {\n /**\n * Skips admission of a new pointer sequence or a stateless native event.\n * The controller does not consult it again after a pointerdown claim.\n */\n readonly shouldIgnoreEvent?: (event: Event) => boolean;\n /**\n * Consulted once when the controller first observes two claimed pinch candidates.\n * Returning `undefined` declines that pair; otherwise the controller retains the context for its pinch lifetime.\n * The pair remains locked until fewer than two pinch candidates remain.\n */\n readonly beginPinch?: (start: PinchStart) => PinchStartDecision<TPinchContext> | undefined;\n /** Consulted independently for each context-menu event. */\n readonly shouldPreventContextMenu?: (event: MouseEvent) => boolean;\n /**\n * Determines precedence among nested GestureController targets.\n *\n * `self-first` is appropriate for a dedicated interaction surface.\n * `descendant-first` lets nested controllers claim input before this controller.\n *\n * Defaults to `self-first`.\n */\n readonly claimPriority?: GestureClaimPriority;\n /**\n * Consulted during native pointerdown capture before descendant handlers.\n *\n * Returning true calls preventDefault() on the pointerdown, but does not\n * claim the pointer, capture it, stop propagation, create pointer state,\n * suppress selection, or start a gesture.\n *\n * This is meaningful with `claimPriority: 'descendant-first'`. It lets an\n * activated higher-level interaction mode reserve a sequence for ordinary\n * target-phase application code while preserving nested GestureController\n * claim priority.\n */\n readonly shouldReservePointerDown?: (event: PointerEvent) => boolean;\n /** Prevents native HTML drag competition on a dedicated interaction surface. */\n readonly suppressNativeDrag?: boolean;\n /**\n * Inline `touch-action` for a dedicated interaction surface. The controller reevaluates a callback after host updates.\n * Restores the target's prior inline value afterward.\n * Avoid applying it to a general root that contains native interactive content.\n */\n readonly touchAction?: string | (() => string | undefined);\n}\n\ninterface PinchPair {\n readonly firstPointerId: number;\n readonly secondPointerId: number;\n}\n\ninterface PendingPinchState extends PinchPair {\n readonly status: 'pending';\n}\n\ninterface DeclinedPinchState extends PinchPair {\n readonly status: 'declined';\n}\n\ninterface ActivePinchState<TPinchContext> extends PinchPair, PinchStart {\n readonly context: TPinchContext;\n readonly distance: number;\n readonly status: 'active';\n}\n\ntype PinchState<TPinchContext> = PendingPinchState | DeclinedPinchState | ActivePinchState<TPinchContext>;\n\ninterface TouchActionState {\n readonly applied: string;\n readonly priority: string;\n readonly target: HTMLElement;\n readonly value: string;\n}\n\ninterface UserSelectState {\n readonly applied: string;\n readonly appliedPriority: string;\n readonly priority: string;\n readonly target: HTMLElement;\n readonly value: string;\n}\n\nclass SynchronousClaim<TOptions = void> {\n #action?: (options?: TOptions) => void;\n\n constructor(action: (options?: TOptions) => void) {\n this.#action = action;\n }\n\n readonly claim = (options?: TOptions): boolean => {\n const action = this.#action;\n if (!action) return false;\n this.#action = undefined;\n action(options);\n return true;\n };\n\n close(): void {\n this.#action = undefined;\n }\n}\n\ntype GestureHost = EventTarget & ReactiveControllerHost;\n\n/**\n * Normalizes claimable platform pointer and wheel input on a dynamically assigned target.\n * A pointer claim owns native input competition for its lifetime: the controller prevents claimed movement and text\n * selection, and can suppress native drag when configured.\n */\nexport class GestureController<TPinchContext = undefined> implements ReactiveController {\n readonly #host: GestureHost;\n readonly #options: GestureControllerOptions<TPinchContext>;\n readonly #pointerStates = new Map<number, PointerState>();\n #connected = false;\n #pinch?: PinchState<TPinchContext>;\n #target?: HTMLElement;\n #touchActionState?: TouchActionState;\n #userSelectState?: UserSelectState;\n\n constructor(host: GestureHost, options: GestureControllerOptions<TPinchContext>) {\n this.#host = host;\n this.#options = options;\n host.addController(this);\n }\n\n getWheelZoomFactor(input: Pick<WheelGesture, 'deltaY' | 'event'>): number {\n const gain = input.event.ctrlKey ? CTRL_WHEEL_ZOOM_GAIN : 1;\n return 2 ** (-input.deltaY * WHEEL_ZOOM_EXPONENT_PER_PIXEL * gain);\n }\n\n set target(target: HTMLElement | undefined) {\n if (target === this.#target) return;\n this.#removeTargetListeners();\n this.#resetGestureState();\n this.#target = target;\n this.#addTargetListeners();\n }\n\n hostConnected(): void {\n this.#connected = true;\n this.#addTargetListeners();\n }\n\n hostDisconnected(): void {\n this.#removeTargetListeners();\n this.#resetGestureState();\n this.#connected = false;\n }\n\n hostUpdated(): void {\n this.#syncTouchAction();\n }\n\n #addTargetListeners(): void {\n const target = this.#target;\n if (!this.#connected || !target) return;\n const capture = this.#options.claimPriority !== 'descendant-first';\n for (const type of GESTURE_EVENT_TYPES) target.addEventListener(type, this.#handleEvent, capture);\n if (this.#shouldListenForPointerDownReservation()) {\n target.addEventListener('pointerdown', this.#handlePointerDownReservation, true);\n }\n this.#applyTouchAction(target);\n }\n\n #removeTargetListeners(): void {\n const target = this.#target;\n if (!this.#connected || !target) return;\n const capture = this.#options.claimPriority !== 'descendant-first';\n for (const type of GESTURE_EVENT_TYPES) target.removeEventListener(type, this.#handleEvent, capture);\n if (this.#shouldListenForPointerDownReservation()) {\n target.removeEventListener('pointerdown', this.#handlePointerDownReservation, true);\n }\n this.#restoreTouchAction();\n }\n\n #shouldListenForPointerDownReservation(): boolean {\n return this.#options.claimPriority === 'descendant-first' && this.#options.shouldReservePointerDown !== undefined;\n }\n\n #handlePointerDownReservation = (event: PointerEvent): void => {\n const target = this.#target;\n if (\n !target ||\n event.currentTarget !== target ||\n event.defaultPrevented ||\n this.#options.shouldIgnoreEvent?.(event)\n ) {\n return;\n }\n if (this.#options.shouldReservePointerDown?.(event)) event.preventDefault();\n };\n\n #handleEvent = (event: Event): void => {\n const target = this.#target;\n if (!target || event.currentTarget !== target) return;\n if (event.type === 'contextmenu' && event instanceof MouseEvent) {\n this.#handleContextMenu(event);\n return;\n }\n if (event.type === 'selectstart') {\n this.#handleSelectStart(event);\n return;\n }\n if (event instanceof WheelEvent) {\n this.#handleWheel(event);\n return;\n }\n if (event instanceof PointerEvent) {\n this.#handlePointerEvent(event);\n return;\n }\n this.#handleNativeDrag(event);\n };\n\n #handleNativeDrag(event: Event): void {\n if (event.type !== 'dragstart' || this.#options.shouldIgnoreEvent?.(event)) return;\n if (this.#options.suppressNativeDrag) event.preventDefault();\n }\n\n #handleContextMenu(event: MouseEvent): void {\n if (this.#options.shouldIgnoreEvent?.(event)) return;\n if (this.#options.shouldPreventContextMenu?.(event)) event.preventDefault();\n }\n\n #handleSelectStart(event: Event): void {\n if (this.#pointerStates.size > 0) event.preventDefault();\n }\n\n #handlePointerEvent(event: PointerEvent): void {\n const reason = getPointerEndReason(event);\n if (reason !== undefined) {\n if (this.#pointerStates.has(event.pointerId)) this.#endPointer(event, reason);\n return;\n }\n if (event.type === 'pointerdown') {\n if (!this.#options.shouldIgnoreEvent?.(event)) this.#handlePointerDown(event);\n } else if (event.type === 'pointermove' && this.#pointerStates.has(event.pointerId)) {\n this.#handlePointerMove(event);\n }\n }\n\n #handleWheel(event: WheelEvent): void {\n const target = this.#target;\n if (!target || this.#options.shouldIgnoreEvent?.(event)) return;\n const pageBounds = event.deltaMode === WheelEvent.DOM_DELTA_PAGE ? target.getBoundingClientRect() : undefined;\n const deltaX = normalizeWheelDelta(event.deltaX, event.deltaMode, pageBounds?.width);\n const deltaY = normalizeWheelDelta(event.deltaY, event.deltaMode, pageBounds?.height);\n const claimWindow = new SynchronousClaim(() => {\n event.preventDefault();\n event.stopPropagation();\n });\n try {\n this.#dispatchGestureInput({\n claim: claimWindow.claim,\n clientX: event.clientX,\n clientY: event.clientY,\n deltaX,\n deltaY,\n event,\n kind: 'wheel'\n });\n } finally {\n claimWindow.close();\n }\n }\n\n #handlePointerDown(event: PointerEvent): void {\n const claimWindow = new SynchronousClaim<PointerClaimOptions>(options => {\n this.#pointerStates.set(event.pointerId, {\n clientX: event.clientX,\n clientY: event.clientY,\n gestureKind: options?.kind,\n movementX: 0,\n movementY: 0,\n pinchCandidate: options?.pinchCandidate ?? false,\n pointerType: event.pointerType,\n startClientX: event.clientX,\n startClientY: event.clientY\n });\n const target = this.#target;\n if (target) this.#applyUserSelect(target);\n event.stopPropagation();\n this.#capturePointer(event.pointerId);\n });\n try {\n this.#dispatchGestureInput({ claim: claimWindow.claim, event, kind: 'pointerdown' });\n } finally {\n claimWindow.close();\n }\n this.#startPinchIfNeeded();\n }\n\n #handlePointerMove(event: PointerEvent): void {\n const pointerState = this.#updatePointerPosition(event);\n if (!pointerState) return;\n event.stopPropagation();\n if (pointerState.movementX === 0 && pointerState.movementY === 0) return;\n if (this.#pointerStates.size >= 2 && this.#handlePinch(event)) return;\n if (pointerState.gestureKind === undefined) return;\n event.preventDefault();\n this.#dispatchPointerMovementGesture(event, pointerState, pointerState.gestureKind);\n }\n\n #updatePointerPosition(event: PointerEvent): PointerState | undefined {\n const pointerState = this.#pointerStates.get(event.pointerId);\n if (!pointerState) return undefined;\n pointerState.movementX = calculateDisplacement(event.clientX, pointerState.clientX);\n pointerState.movementY = calculateDisplacement(event.clientY, pointerState.clientY);\n pointerState.clientX = event.clientX;\n pointerState.clientY = event.clientY;\n return pointerState;\n }\n\n #dispatchPointerMovementGesture(event: PointerEvent, pointerState: PointerState, kind: 'drag' | 'pan'): void {\n this.#dispatchGesture({\n clientX: pointerState.clientX,\n clientY: pointerState.clientY,\n event,\n kind,\n movementX: pointerState.movementX,\n movementY: pointerState.movementY,\n startClientX: pointerState.startClientX,\n startClientY: pointerState.startClientY,\n totalDisplacementX: calculateDisplacement(pointerState.clientX, pointerState.startClientX),\n totalDisplacementY: calculateDisplacement(pointerState.clientY, pointerState.startClientY)\n });\n }\n\n #endPointer(event: PointerEvent, reason: PointerEndReason): void {\n const pointerState = this.#pointerStates.get(event.pointerId);\n if (!pointerState) return;\n const interrupted = isPointerEndInterrupted(reason, event);\n const clientX = interrupted ? pointerState.clientX : event.clientX;\n const clientY = interrupted ? pointerState.clientY : event.clientY;\n event.stopPropagation();\n this.#dispatchGestureInput({\n clientX,\n clientY,\n event,\n interrupted,\n kind: 'pointerend',\n movementX: calculateDisplacement(clientX, pointerState.clientX),\n movementY: calculateDisplacement(clientY, pointerState.clientY),\n startClientX: pointerState.startClientX,\n startClientY: pointerState.startClientY,\n totalDisplacementX: calculateDisplacement(clientX, pointerState.startClientX),\n totalDisplacementY: calculateDisplacement(clientY, pointerState.startClientY),\n reason\n });\n this.#pointerStates.delete(event.pointerId);\n if (this.#pointerStates.size === 0) this.#restoreUserSelect();\n if (this.#countPinchCandidates() < 2) this.#pinch = undefined;\n }\n\n #handlePinch(event: PointerEvent): boolean {\n this.#startPinchIfNeeded();\n this.#beginPendingPinchIfPossible();\n const pinch = this.#pinch;\n const pointerState = this.#pointerStates.get(event.pointerId);\n if (!pinch || !pointerState?.pinchCandidate) return false;\n const isPairPointer = event.pointerId === pinch.firstPointerId || event.pointerId === pinch.secondPointerId;\n if (pinch.status === 'pending') return true;\n if (pinch.status === 'declined') return !isPairPointer;\n if (!isPairPointer) return true;\n return this.#dispatchActivePinch(event, pinch);\n }\n\n #dispatchActivePinch(event: PointerEvent, pinch: ActivePinchState<TPinchContext>): boolean {\n const first = this.#pointerStates.get(pinch.firstPointerId);\n const second = this.#pointerStates.get(pinch.secondPointerId);\n if (!first || !second) return true;\n const distance = calculatePointerDistance(first, second);\n if (distance <= 0) return true;\n const centerClientX = calculateMidpoint(first.clientX, second.clientX);\n const centerClientY = calculateMidpoint(first.clientY, second.clientY);\n event.preventDefault();\n this.#dispatchGesture({\n centerClientX,\n centerClientY,\n context: pinch.context,\n event,\n firstPointerId: pinch.firstPointerId,\n firstPointerType: pinch.firstPointerType,\n firstStartClientX: pinch.firstStartClientX,\n firstStartClientY: pinch.firstStartClientY,\n kind: 'pinch',\n scale: distance / pinch.distance,\n secondPointerId: pinch.secondPointerId,\n secondPointerType: pinch.secondPointerType,\n secondStartClientX: pinch.secondStartClientX,\n secondStartClientY: pinch.secondStartClientY,\n startCenterClientX: pinch.startCenterClientX,\n startCenterClientY: pinch.startCenterClientY\n });\n return true;\n }\n\n #startPinchIfNeeded(): void {\n const beginPinch = this.#options.beginPinch;\n if (this.#pinch || this.#pointerStates.size < 2 || !beginPinch) return;\n let firstPointerId: number | undefined;\n let secondPointerId: number | undefined;\n for (const pointerId of this.#pointerStates.keys()) {\n if (!this.#pointerStates.get(pointerId)?.pinchCandidate) continue;\n if (firstPointerId === undefined) firstPointerId = pointerId;\n else {\n secondPointerId = pointerId;\n break;\n }\n }\n if (firstPointerId === undefined || secondPointerId === undefined) return;\n this.#pinch = { firstPointerId, secondPointerId, status: 'pending' };\n this.#beginPendingPinchIfPossible();\n }\n\n #beginPendingPinchIfPossible(): void {\n const pinch = this.#pinch;\n const beginPinch = this.#options.beginPinch;\n if (pinch?.status !== 'pending' || !beginPinch) return;\n const first = this.#pointerStates.get(pinch.firstPointerId);\n const second = this.#pointerStates.get(pinch.secondPointerId);\n if (!first || !second) return;\n const distance = calculatePointerDistance(first, second);\n if (distance <= 0) return;\n const start: PinchStart = {\n firstPointerId: pinch.firstPointerId,\n firstPointerType: first.pointerType,\n firstStartClientX: first.startClientX,\n firstStartClientY: first.startClientY,\n secondPointerId: pinch.secondPointerId,\n secondPointerType: second.pointerType,\n secondStartClientX: second.startClientX,\n secondStartClientY: second.startClientY,\n startCenterClientX: calculateMidpoint(first.clientX, second.clientX),\n startCenterClientY: calculateMidpoint(first.clientY, second.clientY)\n };\n const decision = beginPinch(start);\n if (!decision) {\n this.#pinch = {\n firstPointerId: pinch.firstPointerId,\n secondPointerId: pinch.secondPointerId,\n status: 'declined'\n };\n return;\n }\n this.#pinch = {\n context: decision.context,\n distance,\n status: 'active',\n ...start\n };\n }\n\n #countPinchCandidates(): number {\n let count = 0;\n for (const pointerState of this.#pointerStates.values()) {\n if (pointerState.pinchCandidate) count += 1;\n }\n return count;\n }\n\n #capturePointer(pointerId: number): void {\n try {\n this.#target?.setPointerCapture?.(pointerId);\n } catch {\n // Synthetic test events and browser implementations may not have an active pointer to capture.\n }\n }\n\n #applyTouchAction(target: HTMLElement): void {\n const touchAction = this.#getTouchAction();\n if (touchAction === undefined) return;\n this.#touchActionState = {\n applied: touchAction,\n priority: target.style.getPropertyPriority('touch-action'),\n target,\n value: target.style.getPropertyValue('touch-action')\n };\n target.style.setProperty('touch-action', touchAction);\n }\n\n #restoreTouchAction(): void {\n const state = this.#touchActionState;\n this.#touchActionState = undefined;\n if (!state || state.target.style.getPropertyValue('touch-action') !== state.applied) return;\n if (state.value) {\n state.target.style.setProperty('touch-action', state.value, state.priority);\n } else {\n state.target.style.removeProperty('touch-action');\n }\n }\n\n #syncTouchAction(): void {\n const target = this.#target;\n if (!this.#connected || !target) return;\n const touchAction = this.#getTouchAction();\n if (touchAction === this.#touchActionState?.applied) return;\n this.#restoreTouchAction();\n if (touchAction !== undefined) this.#applyTouchAction(target);\n }\n\n #getTouchAction(): string | undefined {\n const touchAction = this.#options.touchAction;\n return typeof touchAction === 'function' ? touchAction() : touchAction;\n }\n\n #applyUserSelect(target: HTMLElement): void {\n if (this.#userSelectState) return;\n const applied = 'none';\n const appliedPriority = '';\n this.#userSelectState = {\n applied,\n appliedPriority,\n priority: target.style.getPropertyPriority('user-select'),\n target,\n value: target.style.getPropertyValue('user-select')\n };\n target.style.setProperty('user-select', applied, appliedPriority);\n }\n\n #restoreUserSelect(): void {\n const state = this.#userSelectState;\n this.#userSelectState = undefined;\n if (\n !state ||\n state.target.style.getPropertyValue('user-select') !== state.applied ||\n state.target.style.getPropertyPriority('user-select') !== state.appliedPriority\n ) {\n return;\n }\n if (state.value) {\n state.target.style.setProperty('user-select', state.value, state.priority);\n } else {\n state.target.style.removeProperty('user-select');\n }\n }\n\n #dispatchGesture(gesture: Gesture<TPinchContext>): void {\n this.#host.dispatchEvent(\n new CustomEvent<Gesture<TPinchContext>>('nve-gesture', {\n bubbles: false,\n cancelable: false,\n composed: false,\n detail: gesture\n })\n );\n }\n\n #dispatchGestureInput(input: GestureInput): void {\n this.#host.dispatchEvent(\n new CustomEvent<GestureInput>('nve-gesture-input', {\n bubbles: false,\n cancelable: false,\n composed: false,\n detail: input\n })\n );\n }\n\n #resetGestureState(): void {\n this.#pointerStates.clear();\n this.#pinch = undefined;\n this.#restoreUserSelect();\n }\n}\n\nfunction calculateDisplacement(position: number, origin: number): number {\n return position - origin;\n}\n\nfunction calculateMidpoint(first: number, second: number): number {\n return (first + second) / 2;\n}\n\nfunction calculatePointerDistance(first: PointerState, second: PointerState): number {\n return Math.hypot(first.clientX - second.clientX, first.clientY - second.clientY);\n}\n\nfunction getPointerEndReason(event: PointerEvent): PointerEndReason | undefined {\n if (event.type === 'pointerup') return 'up';\n if (event.type === 'pointercancel') return 'cancel';\n if (event.type === 'lostpointercapture') return 'lost-capture';\n if (event.type === 'pointermove' && event.buttons === 0) return 'buttons-released';\n return undefined;\n}\n\nfunction isPointerEndInterrupted(reason: PointerEndReason, event: PointerEvent): boolean {\n return reason === 'cancel' || (reason === 'lost-capture' && event.buttons !== 0);\n}\n\nfunction normalizeWheelDelta(delta: number, deltaMode: number, pagePixels = 1): number {\n if (deltaMode === WheelEvent.DOM_DELTA_LINE) return delta * WHEEL_LINE_PIXELS;\n if (deltaMode === WheelEvent.DOM_DELTA_PAGE) return delta * pagePixels;\n return delta;\n}\n"],"mappings":";AAKA,IAAMA,IAAsB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEMC,IAAgC,MAMhCC,IAAuB,IAEvBC,IAAoB,IA+LpBC,IAAN,MAAwC;CACtC;CAEA,YAAY,GAAsC;EAChD,AAGgB,KAAA,SAAA,MAAgC;GAChD,IAAMC,IAAS,KAAKC;GAIpB,OAHKD,KACL,KAAKC,KAAU,KAAA,GACfD,EAAOE,CAAO,GACP,MAHa;EAItB,GATE,KAAKD,KAAUD;CACjB;CAUA,QAAc;EACZ,KAAKC,KAAU,KAAA;CACjB;AACF,GASaE,IAAb,MAAwF;CACtF;CACA;CACA,qBAA0B,IAAI,IAA0B;CACxD,KAAa;CACb;CACA;CACA;CACA;CAEA,YAAY,GAAmB,GAAkD;EAG/E,AAFA,KAAKC,KAAQC,GACb,KAAKC,KAAWJ,GAChBG,EAAK,cAAc,IAAI;CACzB;CAEA,mBAAmB,GAAuD;EACxE,IAAME,IAAOC,EAAM,MAAM,UAAUX,IAAuB;EAC1D,OAAO,MAAM,CAACW,EAAM,SAASZ,IAAgCW;CAC/D;CAEA,IAAI,OAAO,GAAiC;EAC1C,AAAIE,MAAW,KAAKC,OACpB,KAAKC,GAAuB,GAC5B,KAAKC,GAAmB,GACxB,KAAKF,KAAUD,GACf,KAAKI,GAAoB;CAC3B;CAEA,gBAAsB;EAEpB,AADA,KAAKC,KAAa,IAClB,KAAKD,GAAoB;CAC3B;CAEA,mBAAyB;EAGvB,AAFA,KAAKF,GAAuB,GAC5B,KAAKC,GAAmB,GACxB,KAAKE,KAAa;CACpB;CAEA,cAAoB;EAClB,KAAKC,GAAiB;CACxB;CAEA,KAA4B;EAC1B,IAAMN,IAAS,KAAKC;EACpB,IAAI,CAAC,KAAKI,MAAc,CAACL,GAAQ;EACjC,IAAMO,IAAU,KAAKV,GAAS,kBAAkB;EAChD,KAAK,IAAMW,KAAQtB,GAAqB,EAAO,iBAAiBsB,GAAM,KAAKC,IAAcF,CAAO;EAIhG,AAHI,KAAKG,GAAuC,KAC9CV,EAAO,iBAAiB,eAAe,KAAKW,IAA+B,EAAI,GAEjF,KAAKC,GAAkBZ,CAAM;CAC/B;CAEA,KAA+B;EAC7B,IAAMA,IAAS,KAAKC;EACpB,IAAI,CAAC,KAAKI,MAAc,CAACL,GAAQ;EACjC,IAAMO,IAAU,KAAKV,GAAS,kBAAkB;EAChD,KAAK,IAAMW,KAAQtB,GAAqB,EAAO,oBAAoBsB,GAAM,KAAKC,IAAcF,CAAO;EAInG,AAHI,KAAKG,GAAuC,KAC9CV,EAAO,oBAAoB,eAAe,KAAKW,IAA+B,EAAI,GAEpF,KAAKE,GAAoB;CAC3B;CAEA,KAAkD;EAChD,OAAO,KAAKhB,GAAS,kBAAkB,sBAAsB,KAAKA,GAAS,6BAA6B,KAAA;CAC1G;CAEA,MAAiC,MAA8B;EAC7D,IAAMG,IAAS,KAAKC;EACpB,AACE,CAACD,KACDc,EAAM,kBAAkBd,KACxBc,EAAM,oBACN,KAAKjB,GAAS,oBAAoBiB,CAAK,KAIrC,KAAKjB,GAAS,2BAA2BiB,CAAK,KAAGA,EAAM,eAAe;CAC5E;CAEA,MAAgB,MAAuB;EACrC,IAAMd,IAAS,KAAKC;EACpB,AAAKD,KAAUc,EAAM,kBAAkBd,MACnCc,EAAM,SAAS,iBAAiBA,aAAiB,aACnD,KAAKC,GAAmBD,CAAK,IAG3BA,EAAM,SAAS,gBACjB,KAAKE,GAAmBF,CAAK,IAG3BA,aAAiB,aACnB,KAAKG,GAAaH,CAAK,IAGrBA,aAAiB,eACnB,KAAKI,GAAoBJ,CAAK,IAGhC,KAAKK,GAAkBL,CAAK;CAC9B;CAEA,GAAkB,GAAoB;EACpC,AAAIA,EAAM,SAAS,eAAe,KAAKjB,GAAS,oBAAoBiB,CAAK,KACrE,KAAKjB,GAAS,sBAAoBiB,EAAM,eAAe;CAC7D;CAEA,GAAmB,GAAyB;EAC1C,AAAI,KAAKjB,GAAS,oBAAoBiB,CAAK,KACvC,KAAKjB,GAAS,2BAA2BiB,CAAK,KAAGA,EAAM,eAAe;CAC5E;CAEA,GAAmB,GAAoB;EACrC,AAAI,KAAKM,GAAe,OAAO,KAAGN,EAAM,eAAe;CACzD;CAEA,GAAoB,GAA2B;EAC7C,IAAMO,IAASC,EAAoBR,CAAK;EACxC,AAAIO,MAAW,KAAA,IAIXP,EAAM,SAAS,gBACZ,KAAKjB,GAAS,oBAAoBiB,CAAK,KAAG,KAAKS,GAAmBT,CAAK,IACnEA,EAAM,SAAS,iBAAiB,KAAKM,GAAe,IAAIN,EAAM,SAAS,KAChF,KAAKU,GAAmBV,CAAK,IANzB,KAAKM,GAAe,IAAIN,EAAM,SAAS,KAAG,KAAKW,GAAYX,GAAOO,CAAM;CAQhF;CAEA,GAAa,GAAyB;EACpC,IAAMrB,IAAS,KAAKC;EACpB,IAAI,CAACD,KAAU,KAAKH,GAAS,oBAAoBiB,CAAK,GAAG;EACzD,IAAMY,IAAaZ,EAAM,cAAc,WAAW,iBAAiBd,EAAO,sBAAsB,IAAI,KAAA,GAC9F2B,IAASC,EAAoBd,EAAM,QAAQA,EAAM,WAAWY,GAAY,KAAK,GAC7EG,IAASD,EAAoBd,EAAM,QAAQA,EAAM,WAAWY,GAAY,MAAM,GAC9EI,IAAc,IAAIxC,QAAuB;GAE7C,AADAwB,EAAM,eAAe,GACrBA,EAAM,gBAAgB;EACxB,CAAC;EACD,IAAI;GACF,KAAKiB,GAAsB;IACzB,OAAOD,EAAY;IACnB,SAAShB,EAAM;IACf,SAASA,EAAM;IACf;IACA;IACA;IACA,MAAM;GACR,CAAC;EACH,UAAU;GACR,EAAY,MAAM;EACpB;CACF;CAEA,GAAmB,GAA2B;EAC5C,IAAMgB,IAAc,IAAIxC,GAAsC,MAAW;GACvE,KAAK8B,GAAe,IAAIN,EAAM,WAAW;IACvC,SAASA,EAAM;IACf,SAASA,EAAM;IACf,aAAarB,GAAS;IACtB,WAAW;IACX,WAAW;IACX,gBAAgBA,GAAS,kBAAkB;IAC3C,aAAaqB,EAAM;IACnB,cAAcA,EAAM;IACpB,cAAcA,EAAM;GACtB,CAAC;GACD,IAAMd,IAAS,KAAKC;GAGpB,AAFID,KAAQ,KAAKgC,GAAiBhC,CAAM,GACxCc,EAAM,gBAAgB,GACtB,KAAKmB,GAAgBnB,EAAM,SAAS;EACtC,CAAC;EACD,IAAI;GACF,KAAKiB,GAAsB;IAAE,OAAOD,EAAY;IAAO;IAAO,MAAM;GAAc,CAAC;EACrF,UAAU;GACR,EAAY,MAAM;EACpB;EACA,KAAKI,GAAoB;CAC3B;CAEA,GAAmB,GAA2B;EAC5C,IAAMC,IAAe,KAAKC,GAAuBtB,CAAK;EACtD,AAAKqB,MACLrB,EAAM,gBAAgB,GAClBqB,EAAa,cAAc,KAAKA,EAAa,cAAc,KAC3D,KAAKf,GAAe,QAAQ,KAAK,KAAKiB,GAAavB,CAAK,KACxDqB,EAAa,gBAAgB,KAAA,MACjCrB,EAAM,eAAe,GACrB,KAAKwB,GAAgCxB,GAAOqB,GAAcA,EAAa,WAAW;CACpF;CAEA,GAAuB,GAA+C;EACpE,IAAMA,IAAe,KAAKf,GAAe,IAAIN,EAAM,SAAS;EAC5D,IAAKqB,GAKL,OAJA,EAAa,YAAYI,EAAsBzB,EAAM,SAASqB,EAAa,OAAO,GAClF,EAAa,YAAYI,EAAsBzB,EAAM,SAASqB,EAAa,OAAO,GAClF,EAAa,UAAUrB,EAAM,SAC7B,EAAa,UAAUA,EAAM,SACtBqB;CACT;CAEA,GAAgC,GAAqB,GAA4B,GAA4B;EAC3G,KAAKK,GAAiB;GACpB,SAASL,EAAa;GACtB,SAASA,EAAa;GACtB;GACA;GACA,WAAWA,EAAa;GACxB,WAAWA,EAAa;GACxB,cAAcA,EAAa;GAC3B,cAAcA,EAAa;GAC3B,oBAAoBI,EAAsBJ,EAAa,SAASA,EAAa,YAAY;GACzF,oBAAoBI,EAAsBJ,EAAa,SAASA,EAAa,YAAY;EAC3F,CAAC;CACH;CAEA,GAAY,GAAqB,GAAgC;EAC/D,IAAMA,IAAe,KAAKf,GAAe,IAAIN,EAAM,SAAS;EAC5D,IAAI,CAACqB,GAAc;EACnB,IAAMM,IAAcC,EAAwBrB,GAAQP,CAAK,GACnD6B,IAAUF,IAAcN,EAAa,UAAUrB,EAAM,SACrD8B,IAAUH,IAAcN,EAAa,UAAUrB,EAAM;EAkB3D,AAjBAA,EAAM,gBAAgB,GACtB,KAAKiB,GAAsB;GACzB;GACA;GACA;GACA;GACA,MAAM;GACN,WAAWQ,EAAsBI,GAASR,EAAa,OAAO;GAC9D,WAAWI,EAAsBK,GAAST,EAAa,OAAO;GAC9D,cAAcA,EAAa;GAC3B,cAAcA,EAAa;GAC3B,oBAAoBI,EAAsBI,GAASR,EAAa,YAAY;GAC5E,oBAAoBI,EAAsBK,GAAST,EAAa,YAAY;GAC5E;EACF,CAAC,GACD,KAAKf,GAAe,OAAON,EAAM,SAAS,GACtC,KAAKM,GAAe,SAAS,KAAG,KAAKyB,GAAmB,GACxD,KAAKC,GAAsB,IAAI,MAAG,KAAKC,KAAS,KAAA;CACtD;CAEA,GAAa,GAA8B;EAEzC,AADA,KAAKb,GAAoB,GACzB,KAAKc,GAA6B;EAClC,IAAMC,IAAQ,KAAKF,IACbZ,IAAe,KAAKf,GAAe,IAAIN,EAAM,SAAS;EAC5D,IAAI,CAACmC,KAAS,CAACd,GAAc,gBAAgB,OAAO;EACpD,IAAMe,IAAgBpC,EAAM,cAAcmC,EAAM,kBAAkBnC,EAAM,cAAcmC,EAAM;EAI5F,OAHIA,EAAM,WAAW,YAAkB,KACnCA,EAAM,WAAW,aAAmB,CAACC,IACzC,CAAKA,KACE,KAAKC,GAAqBrC,GAAOmC,CAAK;CAC/C;CAEA,GAAqB,GAAqB,GAAiD;EACzF,IAAMG,IAAQ,KAAKhC,GAAe,IAAI6B,EAAM,cAAc,GACpDI,IAAS,KAAKjC,GAAe,IAAI6B,EAAM,eAAe;EAC5D,IAAI,CAACG,KAAS,CAACC,GAAQ,OAAO;EAC9B,IAAMC,IAAWC,EAAyBH,GAAOC,CAAM;EACvD,IAAIC,KAAY,GAAG,OAAO;EAC1B,IAAME,IAAgBC,EAAkBL,EAAM,SAASC,EAAO,OAAO,GAC/DK,IAAgBD,EAAkBL,EAAM,SAASC,EAAO,OAAO;EAoBrE,OAnBAvC,EAAM,eAAe,GACrB,KAAK0B,GAAiB;GACpB;GACA;GACA,SAASS,EAAM;GACf;GACA,gBAAgBA,EAAM;GACtB,kBAAkBA,EAAM;GACxB,mBAAmBA,EAAM;GACzB,mBAAmBA,EAAM;GACzB,MAAM;GACN,OAAOK,IAAWL,EAAM;GACxB,iBAAiBA,EAAM;GACvB,mBAAmBA,EAAM;GACzB,oBAAoBA,EAAM;GAC1B,oBAAoBA,EAAM;GAC1B,oBAAoBA,EAAM;GAC1B,oBAAoBA,EAAM;EAC5B,CAAC,GACM;CACT;CAEA,KAA4B;EAC1B,IAAMU,IAAa,KAAK9D,GAAS;EACjC,IAAI,KAAKkD,MAAU,KAAK3B,GAAe,OAAO,KAAK,CAACuC,GAAY;EAChE,IAAIC,GACAC;EACJ,KAAK,IAAMC,KAAa,KAAK1C,GAAe,KAAK,GAC/C,IAAK,KAAKA,GAAe,IAAI0C,CAAS,CAAC,EAAE,gBACzC;OAAIF,MAAmB,KAAA,GAAW,IAAiBE;QAC9C;IACH,IAAkBA;IAClB;GACF;;EAEF,AAAIF,MAAmB,KAAA,KAAaC,MAAoB,KAAA,MACxD,KAAKd,KAAS;GAAE;GAAgB;GAAiB,QAAQ;EAAU,GACnE,KAAKC,GAA6B;CACpC;CAEA,KAAqC;EACnC,IAAMC,IAAQ,KAAKF,IACbY,IAAa,KAAK9D,GAAS;EACjC,IAAIoD,GAAO,WAAW,aAAa,CAACU,GAAY;EAChD,IAAMP,IAAQ,KAAKhC,GAAe,IAAI6B,EAAM,cAAc,GACpDI,IAAS,KAAKjC,GAAe,IAAI6B,EAAM,eAAe;EAC5D,IAAI,CAACG,KAAS,CAACC,GAAQ;EACvB,IAAMC,IAAWC,EAAyBH,GAAOC,CAAM;EACvD,IAAIC,KAAY,GAAG;EACnB,IAAMS,IAAoB;GACxB,gBAAgBd,EAAM;GACtB,kBAAkBG,EAAM;GACxB,mBAAmBA,EAAM;GACzB,mBAAmBA,EAAM;GACzB,iBAAiBH,EAAM;GACvB,mBAAmBI,EAAO;GAC1B,oBAAoBA,EAAO;GAC3B,oBAAoBA,EAAO;GAC3B,oBAAoBI,EAAkBL,EAAM,SAASC,EAAO,OAAO;GACnE,oBAAoBI,EAAkBL,EAAM,SAASC,EAAO,OAAO;EACrE,GACMW,IAAWL,EAAWI,CAAK;EACjC,AACE,KAAKhB,KADFiB,IAQS;GACZ,SAASA,EAAS;GAClB;GACA,QAAQ;GACR,GAAGD;EACL,IAZgB;GACZ,gBAAgBd,EAAM;GACtB,iBAAiBA,EAAM;GACvB,QAAQ;EACV;CASJ;CAEA,KAAgC;EAC9B,IAAIgB,IAAQ;EACZ,KAAK,IAAM9B,KAAgB,KAAKf,GAAe,OAAO,GACpD,AAAIe,EAAa,mBAAgB,KAAS;EAE5C,OAAO8B;CACT;CAEA,GAAgB,GAAyB;EACvC,IAAI;GACF,KAAKhE,IAAS,oBAAoB6D,CAAS;EAC7C,QAAQ,CAER;CACF;CAEA,GAAkB,GAA2B;EAC3C,IAAMI,IAAc,KAAKC,GAAgB;EACzC,AAAID,MAAgB,KAAA,MACpB,KAAKE,KAAoB;GACvB,SAASF;GACT,UAAUlE,EAAO,MAAM,oBAAoB,cAAc;GACzD;GACA,OAAOA,EAAO,MAAM,iBAAiB,cAAc;EACrD,GACAA,EAAO,MAAM,YAAY,gBAAgBkE,CAAW;CACtD;CAEA,KAA4B;EAC1B,IAAMG,IAAQ,KAAKD;EAEnB,AADA,KAAKA,KAAoB,KAAA,GACpBC,KAASA,EAAM,OAAO,MAAM,iBAAiB,cAAc,MAAMA,EAAM,YACxEA,EAAM,QACRA,EAAM,OAAO,MAAM,YAAY,gBAAgBA,EAAM,OAAOA,EAAM,QAAQ,IAE1EA,EAAM,OAAO,MAAM,eAAe,cAAc;CAEpD;CAEA,KAAyB;EACvB,IAAMrE,IAAS,KAAKC;EACpB,IAAI,CAAC,KAAKI,MAAc,CAACL,GAAQ;EACjC,IAAMkE,IAAc,KAAKC,GAAgB;EACzC,AAAID,MAAgB,KAAKE,IAAmB,YAC5C,KAAKvD,GAAoB,GACrBqD,MAAgB,KAAA,KAAW,KAAKtD,GAAkBZ,CAAM;CAC9D;CAEA,KAAsC;EACpC,IAAMkE,IAAc,KAAKrE,GAAS;EAClC,OAAO,OAAOqE,KAAgB,aAAaA,EAAY,IAAIA;CAC7D;CAEA,GAAiB,GAA2B;EAC1C,IAAI,KAAKI,IAAkB;EAC3B,IAAMC,IAAU;EAShB,AAPA,KAAKD,KAAmB;GACtB;GACA;GACA,UAAUtE,EAAO,MAAM,oBAAoB,aAAa;GACxD;GACA,OAAOA,EAAO,MAAM,iBAAiB,aAAa;EACpD,GACAA,EAAO,MAAM,YAAY,eAAeuE,GAAS,EAAe;CAClE;CAEA,KAA2B;EACzB,IAAMF,IAAQ,KAAKC;EAEnB,AADA,KAAKA,KAAmB,KAAA,GAErBD,KACDA,EAAM,OAAO,MAAM,iBAAiB,aAAa,MAAMA,EAAM,WAC7DA,EAAM,OAAO,MAAM,oBAAoB,aAAa,MAAMA,EAAM,oBAI9DA,EAAM,QACRA,EAAM,OAAO,MAAM,YAAY,eAAeA,EAAM,OAAOA,EAAM,QAAQ,IAEzEA,EAAM,OAAO,MAAM,eAAe,aAAa;CAEnD;CAEA,GAAiB,GAAuC;EACtD,KAAK1E,GAAM,cACT,IAAI,YAAoC,eAAe;GACrD,SAAS;GACT,YAAY;GACZ,UAAU;GACV,QAAQ6E;EACV,CAAC,CACH;CACF;CAEA,GAAsB,GAA2B;EAC/C,KAAK7E,GAAM,cACT,IAAI,YAA0B,qBAAqB;GACjD,SAAS;GACT,YAAY;GACZ,UAAU;GACV,QAAQI;EACV,CAAC,CACH;CACF;CAEA,KAA2B;EAGzB,AAFA,KAAKqB,GAAe,MAAM,GAC1B,KAAK2B,KAAS,KAAA,GACd,KAAKF,GAAmB;CAC1B;AACF;AAEA,SAASN,EAAsB,GAAkB,GAAwB;CACvE,OAAOkC,IAAWC;AACpB;AAEA,SAASjB,EAAkB,GAAe,GAAwB;CAChE,QAAQL,IAAQC,KAAU;AAC5B;AAEA,SAASE,EAAyB,GAAqB,GAA8B;CACnF,OAAO,KAAK,MAAMH,EAAM,UAAUC,EAAO,SAASD,EAAM,UAAUC,EAAO,OAAO;AAClF;AAEA,SAAS/B,EAAoB,GAAmD;CAC9E,IAAIR,EAAM,SAAS,aAAa,OAAO;CACvC,IAAIA,EAAM,SAAS,iBAAiB,OAAO;CAC3C,IAAIA,EAAM,SAAS,sBAAsB,OAAO;CAChD,IAAIA,EAAM,SAAS,iBAAiBA,EAAM,YAAY,GAAG,OAAO;AAElE;AAEA,SAAS4B,EAAwB,GAA0B,GAA8B;CACvF,OAAOrB,MAAW,YAAaA,MAAW,kBAAkBP,EAAM,YAAY;AAChF;AAEA,SAASc,EAAoB,GAAe,GAAmB,IAAa,GAAW;CAGrF,OAFI+C,MAAc,WAAW,iBAAuBC,IAAQvF,IACxDsF,MAAc,WAAW,iBAAuBC,IAAQC,IACrDD;AACT"}
@@ -1,4 +1,4 @@
1
- //#region src/internal/controllers/key-state.controller.ts
1
+ // src/internal/controllers/key-state.controller.ts
2
2
  var e = class {
3
3
  #e;
4
4
  #t = /* @__PURE__ */ new Set();
@@ -78,7 +78,6 @@ var r = class {
78
78
  e !== this.#i && (this.#i?.unsubscribe(this.#t), this.#i = e, this.#i?.subscribe(this.#t));
79
79
  }
80
80
  };
81
- //#endregion
82
81
  export { r as KeyStateController };
83
82
 
84
83
  //# sourceMappingURL=key-state.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-state.controller.js","names":[],"sources":["../../../src/internal/controllers/key-state.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\nexport interface KeyStateControllerOptions {\n readonly watchedCodes: ReadonlyArray<string>;\n}\n\ntype KeyStateHost = ReactiveControllerHost & Pick<HTMLElement, 'ownerDocument'>;\n\ninterface KeyStateSubscriber {\n readonly watchedCodes: ReadonlySet<string>;\n readonly requestUpdate: () => void;\n}\n\n/** Owns the keyboard state and global listeners shared by active controllers in one document. */\nclass DocumentKeyStateSource {\n readonly #document: Document;\n readonly #pressedCodes = new Set<string>();\n readonly #subscribers = new Set<KeyStateSubscriber>();\n\n constructor(document: Document) {\n this.#document = document;\n }\n\n subscribe(subscriber: KeyStateSubscriber): void {\n if (this.#subscribers.has(subscriber)) return;\n if (this.#subscribers.size === 0) this.#addListeners();\n this.#subscribers.add(subscriber);\n }\n\n unsubscribe(subscriber: KeyStateSubscriber): void {\n if (!this.#subscribers.delete(subscriber) || this.#subscribers.size > 0) return;\n this.#removeListeners();\n this.#pressedCodes.clear();\n }\n\n isPressed(code: string): boolean {\n return this.#pressedCodes.has(code);\n }\n\n #addListeners(): void {\n const view = this.#document.defaultView;\n view?.addEventListener('keydown', this.#handleKeyDown, true);\n view?.addEventListener('keyup', this.#handleKeyUp, true);\n view?.addEventListener('blur', this.#clear);\n this.#document.addEventListener('visibilitychange', this.#handleVisibilityChange);\n }\n\n #removeListeners(): void {\n const view = this.#document.defaultView;\n view?.removeEventListener('keydown', this.#handleKeyDown, true);\n view?.removeEventListener('keyup', this.#handleKeyUp, true);\n view?.removeEventListener('blur', this.#clear);\n this.#document.removeEventListener('visibilitychange', this.#handleVisibilityChange);\n }\n\n #handleKeyDown = (event: KeyboardEvent): void => {\n if (this.#pressedCodes.has(event.code)) return;\n this.#pressedCodes.add(event.code);\n this.#notifySubscribers(event.code);\n };\n\n #handleKeyUp = (event: KeyboardEvent): void => {\n if (!this.#pressedCodes.delete(event.code)) return;\n this.#notifySubscribers(event.code);\n };\n\n #handleVisibilityChange = (): void => {\n if (this.#document.visibilityState === 'hidden') this.#clear();\n };\n\n #clear = (): void => {\n if (this.#pressedCodes.size === 0) return;\n const changedCodes = [...this.#pressedCodes];\n this.#pressedCodes.clear();\n for (const subscriber of this.#subscribers) {\n if (changedCodes.some(code => subscriber.watchedCodes.has(code))) subscriber.requestUpdate();\n }\n };\n\n #notifySubscribers(code: string): void {\n for (const subscriber of this.#subscribers) {\n if (subscriber.watchedCodes.has(code)) subscriber.requestUpdate();\n }\n }\n}\n\nconst documentKeyStateSources = new WeakMap<Document, DocumentKeyStateSource>();\n\nfunction keyStateSourceFor(document: Document): DocumentKeyStateSource {\n let source = documentKeyStateSources.get(document);\n if (!source) {\n source = new DocumentKeyStateSource(document);\n documentKeyStateSources.set(document, source);\n }\n return source;\n}\n\n/** Provides host-scoped access to shared raw keyboard state without assigning interaction semantics to any key. */\nexport class KeyStateController implements ReactiveController {\n readonly #host: KeyStateHost;\n readonly #subscriber: KeyStateSubscriber;\n #connected = false;\n #enabled = false;\n #source?: DocumentKeyStateSource;\n\n constructor(host: KeyStateHost, { watchedCodes }: KeyStateControllerOptions) {\n this.#host = host;\n this.#subscriber = {\n watchedCodes: new Set(watchedCodes),\n requestUpdate: () => host.requestUpdate()\n };\n host.addController(this);\n }\n\n /** Enables shared keyboard tracking during the host's connected lifecycle. */\n get enabled(): boolean {\n return this.#enabled;\n }\n\n set enabled(value: boolean) {\n if (value === this.#enabled) return;\n this.#enabled = value;\n this.#syncSubscription();\n }\n\n /** Returns whether a key identified by `KeyboardEvent.code` is currently held. */\n isPressed(code: string): boolean {\n return this.#source?.isPressed(code) ?? false;\n }\n\n hostConnected(): void {\n this.#connected = true;\n this.#syncSubscription();\n }\n\n hostDisconnected(): void {\n this.#connected = false;\n this.#syncSubscription();\n }\n\n #syncSubscription(): void {\n const source = this.#connected && this.#enabled ? keyStateSourceFor(this.#host.ownerDocument) : undefined;\n if (source === this.#source) return;\n this.#source?.unsubscribe(this.#subscriber);\n this.#source = source;\n this.#source?.subscribe(this.#subscriber);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"key-state.controller.js","names":["DocumentKeyStateSource","#document","document","#subscribers","subscriber","#addListeners","#removeListeners","#pressedCodes","code","view","#handleKeyDown","#handleKeyUp","#clear","#handleVisibilityChange","event","#notifySubscribers","changedCodes","documentKeyStateSources","keyStateSourceFor","source","KeyStateController","#host","host","#subscriber","watchedCodes","#enabled","value","#syncSubscription","#source","#connected"],"sources":["../../../src/internal/controllers/key-state.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\nexport interface KeyStateControllerOptions {\n readonly watchedCodes: ReadonlyArray<string>;\n}\n\ntype KeyStateHost = ReactiveControllerHost & Pick<HTMLElement, 'ownerDocument'>;\n\ninterface KeyStateSubscriber {\n readonly watchedCodes: ReadonlySet<string>;\n readonly requestUpdate: () => void;\n}\n\n/** Owns the keyboard state and global listeners shared by active controllers in one document. */\nclass DocumentKeyStateSource {\n readonly #document: Document;\n readonly #pressedCodes = new Set<string>();\n readonly #subscribers = new Set<KeyStateSubscriber>();\n\n constructor(document: Document) {\n this.#document = document;\n }\n\n subscribe(subscriber: KeyStateSubscriber): void {\n if (this.#subscribers.has(subscriber)) return;\n if (this.#subscribers.size === 0) this.#addListeners();\n this.#subscribers.add(subscriber);\n }\n\n unsubscribe(subscriber: KeyStateSubscriber): void {\n if (!this.#subscribers.delete(subscriber) || this.#subscribers.size > 0) return;\n this.#removeListeners();\n this.#pressedCodes.clear();\n }\n\n isPressed(code: string): boolean {\n return this.#pressedCodes.has(code);\n }\n\n #addListeners(): void {\n const view = this.#document.defaultView;\n view?.addEventListener('keydown', this.#handleKeyDown, true);\n view?.addEventListener('keyup', this.#handleKeyUp, true);\n view?.addEventListener('blur', this.#clear);\n this.#document.addEventListener('visibilitychange', this.#handleVisibilityChange);\n }\n\n #removeListeners(): void {\n const view = this.#document.defaultView;\n view?.removeEventListener('keydown', this.#handleKeyDown, true);\n view?.removeEventListener('keyup', this.#handleKeyUp, true);\n view?.removeEventListener('blur', this.#clear);\n this.#document.removeEventListener('visibilitychange', this.#handleVisibilityChange);\n }\n\n #handleKeyDown = (event: KeyboardEvent): void => {\n if (this.#pressedCodes.has(event.code)) return;\n this.#pressedCodes.add(event.code);\n this.#notifySubscribers(event.code);\n };\n\n #handleKeyUp = (event: KeyboardEvent): void => {\n if (!this.#pressedCodes.delete(event.code)) return;\n this.#notifySubscribers(event.code);\n };\n\n #handleVisibilityChange = (): void => {\n if (this.#document.visibilityState === 'hidden') this.#clear();\n };\n\n #clear = (): void => {\n if (this.#pressedCodes.size === 0) return;\n const changedCodes = [...this.#pressedCodes];\n this.#pressedCodes.clear();\n for (const subscriber of this.#subscribers) {\n if (changedCodes.some(code => subscriber.watchedCodes.has(code))) subscriber.requestUpdate();\n }\n };\n\n #notifySubscribers(code: string): void {\n for (const subscriber of this.#subscribers) {\n if (subscriber.watchedCodes.has(code)) subscriber.requestUpdate();\n }\n }\n}\n\nconst documentKeyStateSources = new WeakMap<Document, DocumentKeyStateSource>();\n\nfunction keyStateSourceFor(document: Document): DocumentKeyStateSource {\n let source = documentKeyStateSources.get(document);\n if (!source) {\n source = new DocumentKeyStateSource(document);\n documentKeyStateSources.set(document, source);\n }\n return source;\n}\n\n/** Provides host-scoped access to shared raw keyboard state without assigning interaction semantics to any key. */\nexport class KeyStateController implements ReactiveController {\n readonly #host: KeyStateHost;\n readonly #subscriber: KeyStateSubscriber;\n #connected = false;\n #enabled = false;\n #source?: DocumentKeyStateSource;\n\n constructor(host: KeyStateHost, { watchedCodes }: KeyStateControllerOptions) {\n this.#host = host;\n this.#subscriber = {\n watchedCodes: new Set(watchedCodes),\n requestUpdate: () => host.requestUpdate()\n };\n host.addController(this);\n }\n\n /** Enables shared keyboard tracking during the host's connected lifecycle. */\n get enabled(): boolean {\n return this.#enabled;\n }\n\n set enabled(value: boolean) {\n if (value === this.#enabled) return;\n this.#enabled = value;\n this.#syncSubscription();\n }\n\n /** Returns whether a key identified by `KeyboardEvent.code` is currently held. */\n isPressed(code: string): boolean {\n return this.#source?.isPressed(code) ?? false;\n }\n\n hostConnected(): void {\n this.#connected = true;\n this.#syncSubscription();\n }\n\n hostDisconnected(): void {\n this.#connected = false;\n this.#syncSubscription();\n }\n\n #syncSubscription(): void {\n const source = this.#connected && this.#enabled ? keyStateSourceFor(this.#host.ownerDocument) : undefined;\n if (source === this.#source) return;\n this.#source?.unsubscribe(this.#subscriber);\n this.#source = source;\n this.#source?.subscribe(this.#subscriber);\n }\n}\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- //#region src/internal/controllers/keynav-grid.controller.examples.ts
1
+ // src/internal/controllers/keynav-grid.controller.examples.ts
2
2
  var e = "";
3
- //#endregion
4
3
  export { e as default };
5
4
 
6
5
  //# sourceMappingURL=keynav-grid.controller.examples.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keynav-grid.controller.examples.js","names":[],"sources":["../../../src/internal/controllers/keynav-grid.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 { keyNavigationGrid } 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@keyNavigationGrid<DemoKeyNavigationGridController>()\nclass DemoKeyNavigationGridController extends LitElement {\n get keynavGridConfig() {\n return {\n rows: this.shadowRoot.querySelectorAll<HTMLElement>('.row'),\n cells: this.shadowRoot.querySelectorAll<HTMLElement>('.cell')\n }\n }\n\n @state() private selected = '0,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(() => Array.from(Array(10).keys())).map((r, ri) => html`<div class=\"row\">\n ${r.map(c => html`<div class=\"cell\">\n <button ?selected=${this.selected === `${ri}-${c}`} @click=${e => (this.selected = e.target.innerText)}>${ri}-${c}</button>\n </div>`)}\n </div>`)}\n </section>\n `;\n }\n}\n\ncustomElements.get('demo-key-navigation-grid') || customElements.define('demo-key-navigation-grid', DemoKeyNavigationGridController);\n\n/**\n * @summary Grid-based keyboard navigation controller with arrow key support across rows and columns.\n * @tags test-case\n */\nexport const GridDemo = {\n render: () => html`<demo-key-navigation-grid></demo-key-navigation-grid>`\n};\n"],"mappings":";AAGA,IAAA,IAAc"}
1
+ {"version":3,"file":"keynav-grid.controller.examples.js","names":["keynav_grid_controller_examples_default"],"sources":["../../../src/internal/controllers/keynav-grid.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 { keyNavigationGrid } 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@keyNavigationGrid<DemoKeyNavigationGridController>()\nclass DemoKeyNavigationGridController extends LitElement {\n get keynavGridConfig() {\n return {\n rows: this.shadowRoot.querySelectorAll<HTMLElement>('.row'),\n cells: this.shadowRoot.querySelectorAll<HTMLElement>('.cell')\n }\n }\n\n @state() private selected = '0,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(() => Array.from(Array(10).keys())).map((r, ri) => html`<div class=\"row\">\n ${r.map(c => html`<div class=\"cell\">\n <button ?selected=${this.selected === `${ri}-${c}`} @click=${e => (this.selected = e.target.innerText)}>${ri}-${c}</button>\n </div>`)}\n </div>`)}\n </section>\n `;\n }\n}\n\ncustomElements.get('demo-key-navigation-grid') || customElements.define('demo-key-navigation-grid', DemoKeyNavigationGridController);\n\n/**\n * @summary Grid-based keyboard navigation controller with arrow key support across rows and columns.\n * @tags test-case\n */\nexport const GridDemo = {\n render: () => html`<demo-key-navigation-grid></demo-key-navigation-grid>`\n};\n"],"mappings":";AAGA,IAAAA,IAAc"}
@@ -3,7 +3,7 @@ import { throttle as t } from "../utils/events.js";
3
3
  import { focusElement as n, getActiveElement as r, isSimpleFocusable as i, setActiveKeyListItem as a } from "../utils/focus.js";
4
4
  import { KeynavCode as o, getFlattenedDOMTree as s, getFlattenedFocusableItems as c, hasInvalidDOMGrid as l, isContextMenuClick as u, validKeyNavigationCode as d } from "../utils/dom.js";
5
5
  import { GlobalStateService as f } from "@nvidia-elements/foundations/internal/state";
6
- //#region src/internal/controllers/keynav-grid.controller.ts
6
+ // src/internal/controllers/keynav-grid.controller.ts
7
7
  function p() {
8
8
  return (e) => e.addInitializer((e) => new m(e));
9
9
  }
@@ -72,11 +72,8 @@ var m = class {
72
72
  if (!d(t)) return;
73
73
  this.#u();
74
74
  let n = Array.from(this.#o), a = Array.from(this.#s);
75
- if (f.state.env !== "production" && l(n)) {
76
- e.warn("Invalid grid structure, all rows must have the same number of cells");
77
- return;
78
- }
79
- if (i(r())) {
75
+ if (f.state.env !== "production" && l(n)) e.warn("Invalid grid structure, all rows must have the same number of cells");
76
+ else if (i(r())) {
80
77
  let { x: e, y: r } = _(a, n, {
81
78
  code: t.code,
82
79
  ctrlKey: t.ctrlKey,
@@ -156,7 +153,6 @@ function _(e, t, n) {
156
153
  y: u
157
154
  };
158
155
  }
159
- //#endregion
160
156
  export { m as KeyNavigationGridController, _ as getNextKeyGridItem, p as keyNavigationGrid };
161
157
 
162
158
  //# sourceMappingURL=keynav-grid.controller.js.map