@awc-ui/core 1.0.0-beta.2 → 1.0.0-beta.4

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 (833) hide show
  1. package/README.md +18 -0
  2. package/dist/cjs/app-globals-V2Kpy_OQ.js +8 -0
  3. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
  4. package/dist/cjs/engine.wasm-9JtXME10.js +12 -0
  5. package/dist/cjs/engine.wasm-9JtXME10.js.map +1 -0
  6. package/dist/cjs/{index-DlQ_5_Mv.js → index-Bm07YAg9.js} +4 -15
  7. package/dist/cjs/index-Bm07YAg9.js.map +1 -0
  8. package/dist/cjs/lazy-loading-indicator-CoC-_DMs.js +69 -0
  9. package/dist/cjs/lazy-loading-indicator-CoC-_DMs.js.map +1 -0
  10. package/dist/cjs/loader.cjs.js +4 -3
  11. package/dist/cjs/loader.cjs.js.map +1 -1
  12. package/dist/cjs/md-accordion-item.cjs.entry.js +4 -4
  13. package/dist/cjs/md-accordion.cjs.entry.js +1 -1
  14. package/dist/cjs/md-app-bar.cjs.entry.js +2 -2
  15. package/dist/cjs/md-area-chart.cjs.entry.js +3 -3
  16. package/dist/cjs/md-autocomplete.cjs.entry.js +6 -5
  17. package/dist/cjs/md-autocomplete.cjs.entry.js.map +1 -1
  18. package/dist/cjs/md-avatar_2.cjs.entry.js +4 -4
  19. package/dist/cjs/md-badge.cjs.entry.js +3 -3
  20. package/dist/cjs/md-bar-chart.cjs.entry.js +3 -3
  21. package/dist/cjs/md-bottom-sheet.cjs.entry.js +5 -5
  22. package/dist/cjs/md-breadcrumb-item.cjs.entry.js +1 -1
  23. package/dist/cjs/md-breadcrumbs.cjs.entry.js +3 -3
  24. package/dist/cjs/md-button-group.cjs.entry.js +3 -3
  25. package/dist/cjs/{md-button_7.cjs.entry.js → md-button_6.cjs.entry.js} +14 -39
  26. package/dist/cjs/md-button_6.cjs.entry.js.map +1 -0
  27. package/dist/cjs/md-checkbox.cjs.entry.js +3 -3
  28. package/dist/cjs/md-chip.cjs.entry.js +3 -3
  29. package/dist/cjs/md-color-picker.cjs.entry.js +1 -1
  30. package/dist/cjs/md-date-picker.cjs.entry.js +2 -2
  31. package/dist/cjs/md-dialog.cjs.entry.js +3 -3
  32. package/dist/cjs/md-divider.cjs.entry.js +3 -3
  33. package/dist/cjs/md-fab-menu-item.cjs.entry.js +3 -3
  34. package/dist/cjs/md-fab-menu.cjs.entry.js +3 -3
  35. package/dist/cjs/md-fab.cjs.entry.js +3 -3
  36. package/dist/cjs/md-line-chart.cjs.entry.js +3 -3
  37. package/dist/cjs/md-list-item.cjs.entry.js +4 -4
  38. package/dist/cjs/md-list.cjs.entry.js +4 -4
  39. package/dist/cjs/md-loading-indicator-CmzdcYLR.js +33 -0
  40. package/dist/cjs/md-loading-indicator-CmzdcYLR.js.map +1 -0
  41. package/dist/cjs/md-loading-indicator.cjs.entry.js +11 -0
  42. package/dist/cjs/md-loading-indicator.cjs.entry.js.map +1 -0
  43. package/dist/cjs/md-menu-item-group.cjs.entry.js +1 -1
  44. package/dist/cjs/md-menu_2.cjs.entry.js +6 -6
  45. package/dist/cjs/md-meter.cjs.entry.js +1 -1
  46. package/dist/cjs/md-multi-select.cjs.entry.js +7 -6
  47. package/dist/cjs/md-multi-select.cjs.entry.js.map +1 -1
  48. package/dist/cjs/md-navigation-bar.cjs.entry.js +2 -2
  49. package/dist/cjs/md-navigation-rail-tab.cjs.entry.js +1 -1
  50. package/dist/cjs/md-navigation-rail.cjs.entry.js +1 -1
  51. package/dist/cjs/md-navigation-tab.cjs.entry.js +3 -3
  52. package/dist/cjs/md-number-field.cjs.entry.js +3 -3
  53. package/dist/cjs/md-organization-chart.cjs.entry.js +3 -3
  54. package/dist/cjs/md-otp-field.cjs.entry.js +4 -4
  55. package/dist/cjs/md-pie-chart.cjs.entry.js +1 -1
  56. package/dist/cjs/md-progress-indicator.cjs.entry.js +1 -1
  57. package/dist/cjs/md-rating.cjs.entry.js +1 -1
  58. package/dist/cjs/md-search.cjs.entry.js +8 -7
  59. package/dist/cjs/md-search.cjs.entry.js.map +1 -1
  60. package/dist/cjs/md-segmented-button-set.cjs.entry.js +1 -1
  61. package/dist/cjs/md-segmented-button.cjs.entry.js +1 -1
  62. package/dist/cjs/md-select-option.cjs.entry.js +2 -2
  63. package/dist/cjs/md-select.cjs.entry.js +7 -6
  64. package/dist/cjs/md-select.cjs.entry.js.map +1 -1
  65. package/dist/cjs/md-side-sheet.cjs.entry.js +1 -1
  66. package/dist/cjs/md-skeleton.cjs.entry.js +1 -1
  67. package/dist/cjs/md-slider.cjs.entry.js +3 -3
  68. package/dist/cjs/md-sparkline.cjs.entry.js +3 -3
  69. package/dist/cjs/md-split-button.cjs.entry.js +1 -1
  70. package/dist/cjs/md-status-dot.cjs.entry.js +2 -2
  71. package/dist/cjs/md-step.cjs.entry.js +1 -1
  72. package/dist/cjs/md-stepper.cjs.entry.js +1 -1
  73. package/dist/cjs/md-sub-menu-item.cjs.entry.js +1 -1
  74. package/dist/cjs/md-switch.cjs.entry.js +1 -1
  75. package/dist/cjs/md-tab-panel.cjs.entry.js +1 -1
  76. package/dist/cjs/md-tab-panels.cjs.entry.js +1 -1
  77. package/dist/cjs/md-tab.cjs.entry.js +1 -1
  78. package/dist/cjs/md-table-body.cjs.entry.js +1 -1
  79. package/dist/cjs/md-table-cell.cjs.entry.js +1 -1
  80. package/dist/cjs/md-table-container.cjs.entry.js +1 -1
  81. package/dist/cjs/md-table-expand-toggle.cjs.entry.js +1 -1
  82. package/dist/cjs/md-table-foot.cjs.entry.js +1 -1
  83. package/dist/cjs/md-table-head.cjs.entry.js +1 -1
  84. package/dist/cjs/md-table-pagination.cjs.entry.js +1 -1
  85. package/dist/cjs/md-table-row.cjs.entry.js +1 -1
  86. package/dist/cjs/md-table-sort-label.cjs.entry.js +1 -1
  87. package/dist/cjs/md-table-toolbar.cjs.entry.js +1 -1
  88. package/dist/cjs/md-table.cjs.entry.js +4 -4
  89. package/dist/cjs/md-tabs.cjs.entry.js +1 -1
  90. package/dist/cjs/md-text-field.cjs.entry.js +8 -8
  91. package/dist/cjs/md-time-picker.cjs.entry.js +2 -2
  92. package/dist/cjs/md-toolbar.cjs.entry.js +1 -1
  93. package/dist/cjs/md-transfer-list.cjs.entry.js +2 -2
  94. package/dist/cjs/md3.cjs.js +4 -3
  95. package/dist/cjs/md3.cjs.js.map +1 -1
  96. package/dist/cjs/{virtual-select-controller-CqriaZgm.js → virtual-select-controller-C5cSoKfB.js} +10 -9
  97. package/dist/cjs/virtual-select-controller-C5cSoKfB.js.map +1 -0
  98. package/dist/collection/collection-manifest.json +1 -1
  99. package/dist/collection/components/md-accordion-item/md-accordion-item.js +3 -3
  100. package/dist/collection/components/md-app-bar/md-app-bar.js +1 -1
  101. package/dist/collection/components/md-area-chart/md-area-chart.js +2 -2
  102. package/dist/collection/components/md-autocomplete/md-autocomplete.js +4 -3
  103. package/dist/collection/components/md-autocomplete/md-autocomplete.js.map +1 -1
  104. package/dist/collection/components/md-avatar/md-avatar.js +2 -2
  105. package/dist/collection/components/md-badge/md-badge.js +2 -2
  106. package/dist/collection/components/md-bar-chart/md-bar-chart.js +2 -2
  107. package/dist/collection/components/md-bottom-sheet/md-bottom-sheet.js +4 -4
  108. package/dist/collection/components/md-breadcrumbs/md-breadcrumbs.js +2 -2
  109. package/dist/collection/components/md-button/md-button.js +4 -3
  110. package/dist/collection/components/md-button/md-button.js.map +1 -1
  111. package/dist/collection/components/md-button-group/md-button-group.js +2 -2
  112. package/dist/collection/components/md-card/md-card.js +2 -2
  113. package/dist/collection/components/md-checkbox/md-checkbox.js +2 -2
  114. package/dist/collection/components/md-chip/md-chip.js +2 -2
  115. package/dist/collection/components/md-date-picker/md-date-picker.js +1 -1
  116. package/dist/collection/components/md-dialog/md-dialog.js +2 -2
  117. package/dist/collection/components/md-divider/md-divider.js +2 -2
  118. package/dist/collection/components/md-fab/md-fab.js +2 -2
  119. package/dist/collection/components/md-fab-menu/md-fab-menu.js +2 -2
  120. package/dist/collection/components/md-fab-menu-item/md-fab-menu-item.js +2 -2
  121. package/dist/collection/components/md-icon-button/md-icon-button.js +4 -4
  122. package/dist/collection/components/md-line-chart/md-line-chart.js +2 -2
  123. package/dist/collection/components/md-list/md-list.js +3 -3
  124. package/dist/collection/components/md-list-item/md-list-item.js +3 -3
  125. package/dist/collection/components/md-loading-indicator/md-loading-indicator.js +2 -2
  126. package/dist/collection/components/md-menu/md-menu.js +3 -3
  127. package/dist/collection/components/md-menu-item/md-menu-item.js +2 -2
  128. package/dist/collection/components/md-multi-select/md-multi-select.js +5 -4
  129. package/dist/collection/components/md-multi-select/md-multi-select.js.map +1 -1
  130. package/dist/collection/components/md-navigation-bar/md-navigation-bar.js +1 -1
  131. package/dist/collection/components/md-navigation-tab/md-navigation-tab.js +2 -2
  132. package/dist/collection/components/md-number-field/md-number-field.js +2 -2
  133. package/dist/collection/components/md-organization-chart/md-organization-chart.js +2 -2
  134. package/dist/collection/components/md-otp-field/md-otp-field.js +3 -3
  135. package/dist/collection/components/md-ripple/md-ripple.js +1 -1
  136. package/dist/collection/components/md-search/md-search.js +7 -6
  137. package/dist/collection/components/md-search/md-search.js.map +1 -1
  138. package/dist/collection/components/md-select/md-select.js +5 -4
  139. package/dist/collection/components/md-select/md-select.js.map +1 -1
  140. package/dist/collection/components/md-select-option/md-select-option.js +1 -1
  141. package/dist/collection/components/md-slider/md-slider.js +2 -2
  142. package/dist/collection/components/md-sparkline/md-sparkline.js +2 -2
  143. package/dist/collection/components/md-status-dot/md-status-dot.js +1 -1
  144. package/dist/collection/components/md-table/md-table.js +3 -3
  145. package/dist/collection/components/md-text-field/md-text-field.js +7 -7
  146. package/dist/collection/components/md-time-picker/md-time-picker.js +1 -1
  147. package/dist/collection/components/md-tooltip/md-tooltip.js +1 -1
  148. package/dist/collection/components/md-transfer-list/md-transfer-list.js +1 -1
  149. package/dist/collection/utils/lazy-loading-indicator.js +62 -0
  150. package/dist/collection/utils/lazy-loading-indicator.js.map +1 -0
  151. package/dist/collection/wasm/engine-abi.js +8 -2
  152. package/dist/collection/wasm/engine-abi.js.map +1 -1
  153. package/dist/components/index.js +1 -1
  154. package/dist/components/md-accordion-item.js +1 -1
  155. package/dist/components/md-accordion.js +1 -1
  156. package/dist/components/md-app-bar.js +1 -1
  157. package/dist/components/md-area-chart.js +1 -1
  158. package/dist/components/md-autocomplete.js +1 -1
  159. package/dist/components/md-autocomplete.js.map +1 -1
  160. package/dist/components/md-avatar.js +1 -1
  161. package/dist/components/md-badge.js +1 -1
  162. package/dist/components/md-bar-chart.js +1 -1
  163. package/dist/components/md-bottom-sheet.js +1 -1
  164. package/dist/components/md-breadcrumb-item.js +1 -1
  165. package/dist/components/md-breadcrumbs.js +1 -1
  166. package/dist/components/md-button-group.js +1 -1
  167. package/dist/components/md-button.js +1 -1
  168. package/dist/components/md-card.js +1 -1
  169. package/dist/components/md-checkbox.js +1 -1
  170. package/dist/components/md-chip.js +1 -1
  171. package/dist/components/md-color-picker.js +1 -1
  172. package/dist/components/md-date-picker.js +1 -1
  173. package/dist/components/md-date-picker.js.map +1 -1
  174. package/dist/components/md-dialog.js +1 -1
  175. package/dist/components/md-dialog.js.map +1 -1
  176. package/dist/components/md-divider.js +1 -1
  177. package/dist/components/md-divider.js.map +1 -1
  178. package/dist/components/md-fab-menu-item.js +1 -1
  179. package/dist/components/md-fab-menu.js +1 -1
  180. package/dist/components/md-fab.js +1 -1
  181. package/dist/components/md-icon-button.js +1 -1
  182. package/dist/components/md-line-chart.js +1 -1
  183. package/dist/components/md-line-chart.js.map +1 -1
  184. package/dist/components/md-list-item.js +1 -1
  185. package/dist/components/md-list.js +1 -1
  186. package/dist/components/md-loading-indicator.js +1 -1
  187. package/dist/components/md-menu-item-group.js +1 -1
  188. package/dist/components/md-menu-item.js +1 -1
  189. package/dist/components/md-menu.js +1 -1
  190. package/dist/components/md-meter.js +1 -1
  191. package/dist/components/md-multi-select.js +1 -1
  192. package/dist/components/md-multi-select.js.map +1 -1
  193. package/dist/components/md-navigation-bar.js +1 -1
  194. package/dist/components/md-navigation-rail-tab.js +1 -1
  195. package/dist/components/md-navigation-rail.js +1 -1
  196. package/dist/components/md-navigation-tab.js +1 -1
  197. package/dist/components/md-number-field.js +1 -1
  198. package/dist/components/md-organization-chart.js +1 -1
  199. package/dist/components/md-otp-field.js +1 -1
  200. package/dist/components/md-pie-chart.js +1 -1
  201. package/dist/components/md-progress-indicator.js +1 -1
  202. package/dist/components/md-radio.js +1 -1
  203. package/dist/components/md-rating.js +1 -1
  204. package/dist/components/md-ripple.js +1 -1
  205. package/dist/components/md-search.js +1 -1
  206. package/dist/components/md-search.js.map +1 -1
  207. package/dist/components/md-segmented-button-set.js +1 -1
  208. package/dist/components/md-segmented-button.js +1 -1
  209. package/dist/components/md-select-option.js +1 -1
  210. package/dist/components/md-select.js +1 -1
  211. package/dist/components/md-side-sheet.js +1 -1
  212. package/dist/components/md-skeleton.js +1 -1
  213. package/dist/components/md-slider.js +1 -1
  214. package/dist/components/md-snackbar.js +1 -1
  215. package/dist/components/md-snackbar.js.map +1 -1
  216. package/dist/components/md-sparkline.js +1 -1
  217. package/dist/components/md-split-button.js +1 -1
  218. package/dist/components/md-status-dot.js +1 -1
  219. package/dist/components/md-step.js +1 -1
  220. package/dist/components/md-step.js.map +1 -1
  221. package/dist/components/md-stepper.js +1 -1
  222. package/dist/components/md-stepper.js.map +1 -1
  223. package/dist/components/md-sub-menu-item.js +1 -1
  224. package/dist/components/md-switch.js +1 -1
  225. package/dist/components/md-tab-panel.js +1 -1
  226. package/dist/components/md-tab-panels.js +1 -1
  227. package/dist/components/md-tab.js +1 -1
  228. package/dist/components/md-table-body.js +1 -1
  229. package/dist/components/md-table-cell.js +1 -1
  230. package/dist/components/md-table-container.js +1 -1
  231. package/dist/components/md-table-expand-toggle.js +1 -1
  232. package/dist/components/md-table-foot.js +1 -1
  233. package/dist/components/md-table-head.js +1 -1
  234. package/dist/components/md-table-pagination.js +1 -1
  235. package/dist/components/md-table-pagination.js.map +1 -1
  236. package/dist/components/md-table-row.js +1 -1
  237. package/dist/components/md-table-sort-label.js +1 -1
  238. package/dist/components/md-table-toolbar.js +1 -1
  239. package/dist/components/md-table.js +1 -1
  240. package/dist/components/md-tabs.js +1 -1
  241. package/dist/components/md-text-field.js +1 -1
  242. package/dist/components/md-time-picker.js +1 -1
  243. package/dist/components/md-time-picker.js.map +1 -1
  244. package/dist/components/md-toolbar.js +1 -1
  245. package/dist/components/md-tooltip.js +1 -1
  246. package/dist/components/md-transfer-list.js +1 -1
  247. package/dist/components/p-1RSrsLOs.js +2 -0
  248. package/dist/components/p-1RSrsLOs.js.map +1 -0
  249. package/dist/components/p-2HV152w7.js +2 -0
  250. package/dist/components/p-2HV152w7.js.map +1 -0
  251. package/dist/components/p-6ZDAcEKN.js +2 -0
  252. package/dist/components/p-6ZDAcEKN.js.map +1 -0
  253. package/dist/components/p-B2fYoYe9.js +2 -0
  254. package/dist/components/p-B2fYoYe9.js.map +1 -0
  255. package/dist/components/p-BR6gfOQH.js +2 -0
  256. package/dist/components/p-BR6gfOQH.js.map +1 -0
  257. package/dist/components/p-Bz-JaJcA.js +2 -0
  258. package/dist/components/p-Bz-JaJcA.js.map +1 -0
  259. package/dist/components/p-C77M30dm.js +2 -0
  260. package/dist/components/p-C77M30dm.js.map +1 -0
  261. package/dist/components/p-CNgkGl_1.js +2 -0
  262. package/dist/components/p-CNgkGl_1.js.map +1 -0
  263. package/dist/components/p-CfBPnYW7.js +2 -0
  264. package/dist/components/p-CfBPnYW7.js.map +1 -0
  265. package/dist/components/p-D5Ht729E.js +2 -0
  266. package/dist/components/p-D5Ht729E.js.map +1 -0
  267. package/dist/components/p-DPqGg8C1.js +2 -0
  268. package/dist/components/p-DPqGg8C1.js.map +1 -0
  269. package/dist/components/p-De3E5Q8v.js +2 -0
  270. package/dist/components/p-De3E5Q8v.js.map +1 -0
  271. package/dist/components/p-Dm_7DA1f.js +2 -0
  272. package/dist/components/p-Dm_7DA1f.js.map +1 -0
  273. package/dist/components/p-Dz3R-2Wn.js +2 -0
  274. package/dist/components/p-Dz3R-2Wn.js.map +1 -0
  275. package/dist/components/p-Zjf9uhOr.js +2 -0
  276. package/dist/components/p-Zjf9uhOr.js.map +1 -0
  277. package/dist/components/p-ssLobpGS.js +2 -0
  278. package/dist/components/p-ssLobpGS.js.map +1 -0
  279. package/dist/components/p-tSoecrcz.js +2 -0
  280. package/dist/components/p-tSoecrcz.js.map +1 -0
  281. package/dist/components/p-zMR3UIR_.js +2 -0
  282. package/dist/components/p-zMR3UIR_.js.map +1 -0
  283. package/dist/components-csr/index.js +2 -0
  284. package/dist/components-csr/index.js.map +1 -0
  285. package/dist/components-csr/md-accordion-item.js +2 -0
  286. package/dist/components-csr/md-accordion-item.js.map +1 -0
  287. package/dist/components-csr/md-accordion.js +2 -0
  288. package/dist/components-csr/md-accordion.js.map +1 -0
  289. package/dist/components-csr/md-app-bar.js +2 -0
  290. package/dist/components-csr/md-app-bar.js.map +1 -0
  291. package/dist/components-csr/md-area-chart.js +2 -0
  292. package/dist/components-csr/md-area-chart.js.map +1 -0
  293. package/dist/components-csr/md-autocomplete.js +2 -0
  294. package/dist/components-csr/md-autocomplete.js.map +1 -0
  295. package/dist/components-csr/md-avatar.js +2 -0
  296. package/dist/components-csr/md-avatar.js.map +1 -0
  297. package/dist/components-csr/md-badge.js +2 -0
  298. package/dist/components-csr/md-badge.js.map +1 -0
  299. package/dist/components-csr/md-bar-chart.js +2 -0
  300. package/dist/components-csr/md-bar-chart.js.map +1 -0
  301. package/dist/components-csr/md-bottom-sheet.js +2 -0
  302. package/dist/components-csr/md-bottom-sheet.js.map +1 -0
  303. package/dist/components-csr/md-breadcrumb-item.js +2 -0
  304. package/dist/components-csr/md-breadcrumb-item.js.map +1 -0
  305. package/dist/components-csr/md-breadcrumbs.js +2 -0
  306. package/dist/components-csr/md-breadcrumbs.js.map +1 -0
  307. package/dist/components-csr/md-button-group.js +2 -0
  308. package/dist/components-csr/md-button-group.js.map +1 -0
  309. package/dist/components-csr/md-button.js +2 -0
  310. package/dist/components-csr/md-button.js.map +1 -0
  311. package/dist/components-csr/md-card.js +2 -0
  312. package/dist/components-csr/md-card.js.map +1 -0
  313. package/dist/components-csr/md-checkbox.js +2 -0
  314. package/dist/components-csr/md-checkbox.js.map +1 -0
  315. package/dist/components-csr/md-chip.js +2 -0
  316. package/dist/components-csr/md-chip.js.map +1 -0
  317. package/dist/components-csr/md-color-picker.js +2 -0
  318. package/dist/components-csr/md-color-picker.js.map +1 -0
  319. package/dist/components-csr/md-date-picker.js +2 -0
  320. package/dist/components-csr/md-date-picker.js.map +1 -0
  321. package/dist/components-csr/md-dialog.js +2 -0
  322. package/dist/components-csr/md-dialog.js.map +1 -0
  323. package/dist/components-csr/md-divider.js +2 -0
  324. package/dist/components-csr/md-divider.js.map +1 -0
  325. package/dist/components-csr/md-fab-menu-item.js +2 -0
  326. package/dist/components-csr/md-fab-menu-item.js.map +1 -0
  327. package/dist/components-csr/md-fab-menu.js +2 -0
  328. package/dist/components-csr/md-fab-menu.js.map +1 -0
  329. package/dist/components-csr/md-fab.js +2 -0
  330. package/dist/components-csr/md-fab.js.map +1 -0
  331. package/dist/components-csr/md-icon-button.js +2 -0
  332. package/dist/components-csr/md-icon-button.js.map +1 -0
  333. package/dist/components-csr/md-line-chart.js +2 -0
  334. package/dist/components-csr/md-line-chart.js.map +1 -0
  335. package/dist/components-csr/md-list-item.js +2 -0
  336. package/dist/components-csr/md-list-item.js.map +1 -0
  337. package/dist/components-csr/md-list.js +2 -0
  338. package/dist/components-csr/md-list.js.map +1 -0
  339. package/dist/components-csr/md-loading-indicator.js +2 -0
  340. package/dist/components-csr/md-loading-indicator.js.map +1 -0
  341. package/dist/components-csr/md-menu-item-group.js +2 -0
  342. package/dist/components-csr/md-menu-item-group.js.map +1 -0
  343. package/dist/components-csr/md-menu-item.js +2 -0
  344. package/dist/components-csr/md-menu-item.js.map +1 -0
  345. package/dist/components-csr/md-menu.js +2 -0
  346. package/dist/components-csr/md-menu.js.map +1 -0
  347. package/dist/components-csr/md-meter.js +2 -0
  348. package/dist/components-csr/md-meter.js.map +1 -0
  349. package/dist/components-csr/md-multi-select.js +2 -0
  350. package/dist/components-csr/md-multi-select.js.map +1 -0
  351. package/dist/components-csr/md-navigation-bar.js +2 -0
  352. package/dist/components-csr/md-navigation-bar.js.map +1 -0
  353. package/dist/components-csr/md-navigation-rail-tab.js +2 -0
  354. package/dist/components-csr/md-navigation-rail-tab.js.map +1 -0
  355. package/dist/components-csr/md-navigation-rail.js +2 -0
  356. package/dist/components-csr/md-navigation-rail.js.map +1 -0
  357. package/dist/components-csr/md-navigation-tab.js +2 -0
  358. package/dist/components-csr/md-navigation-tab.js.map +1 -0
  359. package/dist/components-csr/md-number-field.js +2 -0
  360. package/dist/components-csr/md-number-field.js.map +1 -0
  361. package/dist/components-csr/md-organization-chart.js +2 -0
  362. package/dist/components-csr/md-organization-chart.js.map +1 -0
  363. package/dist/components-csr/md-otp-field.js +2 -0
  364. package/dist/components-csr/md-otp-field.js.map +1 -0
  365. package/dist/components-csr/md-pie-chart.js +2 -0
  366. package/dist/components-csr/md-pie-chart.js.map +1 -0
  367. package/dist/components-csr/md-progress-indicator.js +2 -0
  368. package/dist/components-csr/md-progress-indicator.js.map +1 -0
  369. package/dist/components-csr/md-radio.js +2 -0
  370. package/dist/components-csr/md-radio.js.map +1 -0
  371. package/dist/components-csr/md-rating.js +2 -0
  372. package/dist/components-csr/md-rating.js.map +1 -0
  373. package/dist/components-csr/md-ripple.js +2 -0
  374. package/dist/components-csr/md-ripple.js.map +1 -0
  375. package/dist/components-csr/md-search.js +2 -0
  376. package/dist/components-csr/md-search.js.map +1 -0
  377. package/dist/components-csr/md-segmented-button-set.js +2 -0
  378. package/dist/components-csr/md-segmented-button-set.js.map +1 -0
  379. package/dist/components-csr/md-segmented-button.js +2 -0
  380. package/dist/components-csr/md-segmented-button.js.map +1 -0
  381. package/dist/components-csr/md-select-option.js +2 -0
  382. package/dist/components-csr/md-select-option.js.map +1 -0
  383. package/dist/components-csr/md-select.js +2 -0
  384. package/dist/components-csr/md-select.js.map +1 -0
  385. package/dist/components-csr/md-side-sheet.js +2 -0
  386. package/dist/components-csr/md-side-sheet.js.map +1 -0
  387. package/dist/components-csr/md-skeleton.js +2 -0
  388. package/dist/components-csr/md-skeleton.js.map +1 -0
  389. package/dist/components-csr/md-slider.js +2 -0
  390. package/dist/components-csr/md-slider.js.map +1 -0
  391. package/dist/components-csr/md-snackbar.js +2 -0
  392. package/dist/components-csr/md-snackbar.js.map +1 -0
  393. package/dist/components-csr/md-sparkline.js +2 -0
  394. package/dist/components-csr/md-sparkline.js.map +1 -0
  395. package/dist/components-csr/md-split-button.js +2 -0
  396. package/dist/components-csr/md-split-button.js.map +1 -0
  397. package/dist/components-csr/md-status-dot.js +2 -0
  398. package/dist/components-csr/md-status-dot.js.map +1 -0
  399. package/dist/components-csr/md-step.js +2 -0
  400. package/dist/components-csr/md-step.js.map +1 -0
  401. package/dist/components-csr/md-stepper.js +2 -0
  402. package/dist/components-csr/md-stepper.js.map +1 -0
  403. package/dist/components-csr/md-sub-menu-item.js +2 -0
  404. package/dist/components-csr/md-sub-menu-item.js.map +1 -0
  405. package/dist/components-csr/md-switch.js +2 -0
  406. package/dist/components-csr/md-switch.js.map +1 -0
  407. package/dist/components-csr/md-tab-panel.js +2 -0
  408. package/dist/components-csr/md-tab-panel.js.map +1 -0
  409. package/dist/components-csr/md-tab-panels.js +2 -0
  410. package/dist/components-csr/md-tab-panels.js.map +1 -0
  411. package/dist/components-csr/md-tab.js +2 -0
  412. package/dist/components-csr/md-tab.js.map +1 -0
  413. package/dist/components-csr/md-table-body.js +2 -0
  414. package/dist/components-csr/md-table-body.js.map +1 -0
  415. package/dist/components-csr/md-table-cell.js +2 -0
  416. package/dist/components-csr/md-table-cell.js.map +1 -0
  417. package/dist/components-csr/md-table-container.js +2 -0
  418. package/dist/components-csr/md-table-container.js.map +1 -0
  419. package/dist/components-csr/md-table-expand-toggle.js +2 -0
  420. package/dist/components-csr/md-table-expand-toggle.js.map +1 -0
  421. package/dist/components-csr/md-table-foot.js +2 -0
  422. package/dist/components-csr/md-table-foot.js.map +1 -0
  423. package/dist/components-csr/md-table-head.js +2 -0
  424. package/dist/components-csr/md-table-head.js.map +1 -0
  425. package/dist/components-csr/md-table-pagination.js +2 -0
  426. package/dist/components-csr/md-table-pagination.js.map +1 -0
  427. package/dist/components-csr/md-table-row.js +2 -0
  428. package/dist/components-csr/md-table-row.js.map +1 -0
  429. package/dist/components-csr/md-table-sort-label.js +2 -0
  430. package/dist/components-csr/md-table-sort-label.js.map +1 -0
  431. package/dist/components-csr/md-table-toolbar.js +2 -0
  432. package/dist/components-csr/md-table-toolbar.js.map +1 -0
  433. package/dist/components-csr/md-table.js +2 -0
  434. package/dist/components-csr/md-table.js.map +1 -0
  435. package/dist/components-csr/md-tabs.js +2 -0
  436. package/dist/components-csr/md-tabs.js.map +1 -0
  437. package/dist/components-csr/md-text-field.js +2 -0
  438. package/dist/components-csr/md-text-field.js.map +1 -0
  439. package/dist/components-csr/md-time-picker.js +2 -0
  440. package/dist/components-csr/md-time-picker.js.map +1 -0
  441. package/dist/components-csr/md-toolbar.js +2 -0
  442. package/dist/components-csr/md-toolbar.js.map +1 -0
  443. package/dist/components-csr/md-tooltip.js +2 -0
  444. package/dist/components-csr/md-tooltip.js.map +1 -0
  445. package/dist/components-csr/md-transfer-list.js +2 -0
  446. package/dist/components-csr/md-transfer-list.js.map +1 -0
  447. package/dist/components-csr/p-6WgHjhDg.js +2 -0
  448. package/dist/components-csr/p-6WgHjhDg.js.map +1 -0
  449. package/dist/{components/p-uTEkf0sE.js → components-csr/p-BEmwDSzw.js} +2 -2
  450. package/dist/{components/p-C8EP4S21.js → components-csr/p-BQKzjYcY.js} +2 -2
  451. package/dist/{components/p-BwXpiUsu.js → components-csr/p-BWMwewtY.js} +2 -2
  452. package/dist/{components/p-DXXUoRSH.js → components-csr/p-BZakoRau.js} +2 -2
  453. package/dist/components-csr/p-BZakoRau.js.map +1 -0
  454. package/dist/{md3/p-BjYKc1Ge.js → components-csr/p-BdEoSBtL.js} +2 -2
  455. package/dist/components-csr/p-BdEoSBtL.js.map +1 -0
  456. package/dist/{components/p-B0Opn6dK.js → components-csr/p-Bkt_X-6v.js} +2 -2
  457. package/dist/components-csr/p-Bx6--dQF.js.map +1 -0
  458. package/dist/components-csr/p-Bz-JaJcA.js +2 -0
  459. package/dist/components-csr/p-Bz-JaJcA.js.map +1 -0
  460. package/dist/{components/p-stybaFzj.js → components-csr/p-C3vB0Hd9.js} +2 -2
  461. package/dist/{components/p-B3MWYEEJ.js → components-csr/p-CF7mq5T7.js} +2 -2
  462. package/dist/{components/p-7fN_yCXW.js → components-csr/p-CVMM-tdC.js} +2 -2
  463. package/dist/components-csr/p-C_ogF68H.js.map +1 -0
  464. package/dist/components-csr/p-Cch_V1vi.js +2 -0
  465. package/dist/components-csr/p-Cch_V1vi.js.map +1 -0
  466. package/dist/components-csr/p-CfBPnYW7.js +2 -0
  467. package/dist/components-csr/p-CfBPnYW7.js.map +1 -0
  468. package/dist/components-csr/p-CxhZdOPw.js +2 -0
  469. package/dist/components-csr/p-CxhZdOPw.js.map +1 -0
  470. package/dist/{components/p-Ch2-tttM.js → components-csr/p-DMQ-6aj8.js} +2 -2
  471. package/dist/components-csr/p-DWxN44zD.js +2 -0
  472. package/dist/components-csr/p-DWxN44zD.js.map +1 -0
  473. package/dist/components-csr/p-DYBUr7K_.js +2 -0
  474. package/dist/components-csr/p-DYBUr7K_.js.map +1 -0
  475. package/dist/{components/p-e2HRV63Y.js → components-csr/p-DfcpeJAu.js} +2 -2
  476. package/dist/{components/p-Dp-w93ot.js → components-csr/p-DjKPc5EU.js} +2 -2
  477. package/dist/components-csr/p-DvOKnoqK.js.map +1 -0
  478. package/dist/components-csr/p-DzPKu-Ma.js.map +1 -0
  479. package/dist/{components/p-UdGDg2oJ.js → components-csr/p-If0JHsYV.js} +2 -2
  480. package/dist/components-csr/p-If0JHsYV.js.map +1 -0
  481. package/dist/components-csr/p-RLxbNqRv.js.map +1 -0
  482. package/dist/{components/p-6wZSqm_2.js → components-csr/p-R_guULjT.js} +2 -2
  483. package/dist/components-csr/p-bSpXNc5J.js +2 -0
  484. package/dist/components-csr/p-bSpXNc5J.js.map +1 -0
  485. package/dist/{components/p-Ddiw2Kjw.js → components-csr/p-uSMrgqAy.js} +2 -2
  486. package/dist/components-csr/package.json +3 -0
  487. package/dist/esm/{a11y-C6CRqodW.js → a11y-BckJ95d7.js} +3 -3
  488. package/dist/esm/{a11y-C6CRqodW.js.map → a11y-BckJ95d7.js.map} +1 -1
  489. package/dist/esm/app-globals-DQuL1Twl.js +6 -0
  490. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
  491. package/dist/esm/{bar-chart-ZZrajEkM.js → bar-chart-BuTyuCbt.js} +4 -4
  492. package/dist/esm/{bar-chart-ZZrajEkM.js.map → bar-chart-BuTyuCbt.js.map} +1 -1
  493. package/dist/esm/{chart-32olae06.js → chart-ByIhkqsG.js} +4 -4
  494. package/dist/esm/{chart-32olae06.js.map → chart-ByIhkqsG.js.map} +1 -1
  495. package/dist/esm/engine.wasm-CfBPnYW7.js +10 -0
  496. package/dist/esm/engine.wasm-CfBPnYW7.js.map +1 -0
  497. package/dist/esm/{hit-test-DHldf5Lm.js → hit-test-c_hI-yCX.js} +3 -3
  498. package/dist/esm/{hit-test-DHldf5Lm.js.map → hit-test-c_hI-yCX.js.map} +1 -1
  499. package/dist/esm/{index-DTaX19_O.js → index-WmvQpZnM.js} +5 -15
  500. package/dist/esm/index-WmvQpZnM.js.map +1 -0
  501. package/dist/esm/lazy-loading-indicator-BWFcjJiK.js +67 -0
  502. package/dist/esm/lazy-loading-indicator-BWFcjJiK.js.map +1 -0
  503. package/dist/esm/loader.js +4 -3
  504. package/dist/esm/loader.js.map +1 -1
  505. package/dist/esm/md-accordion-item.entry.js +4 -4
  506. package/dist/esm/md-accordion.entry.js +1 -1
  507. package/dist/esm/md-app-bar.entry.js +2 -2
  508. package/dist/esm/md-area-chart.entry.js +7 -7
  509. package/dist/esm/md-autocomplete.entry.js +6 -5
  510. package/dist/esm/md-autocomplete.entry.js.map +1 -1
  511. package/dist/esm/md-avatar_2.entry.js +4 -4
  512. package/dist/esm/md-badge.entry.js +3 -3
  513. package/dist/esm/md-bar-chart.entry.js +7 -7
  514. package/dist/esm/md-bottom-sheet.entry.js +5 -5
  515. package/dist/esm/md-breadcrumb-item.entry.js +2 -2
  516. package/dist/esm/md-breadcrumbs.entry.js +3 -3
  517. package/dist/esm/md-button-group.entry.js +3 -3
  518. package/dist/esm/{md-button_7.entry.js → md-button_6.entry.js} +16 -40
  519. package/dist/esm/md-button_6.entry.js.map +1 -0
  520. package/dist/esm/md-checkbox.entry.js +3 -3
  521. package/dist/esm/md-chip.entry.js +3 -3
  522. package/dist/esm/md-color-picker.entry.js +1 -1
  523. package/dist/esm/md-date-picker.entry.js +2 -2
  524. package/dist/esm/md-dialog.entry.js +3 -3
  525. package/dist/esm/md-divider.entry.js +3 -3
  526. package/dist/esm/md-fab-menu-item.entry.js +3 -3
  527. package/dist/esm/md-fab-menu.entry.js +3 -3
  528. package/dist/esm/md-fab.entry.js +3 -3
  529. package/dist/esm/md-line-chart.entry.js +7 -7
  530. package/dist/esm/md-list-item.entry.js +5 -5
  531. package/dist/esm/md-list.entry.js +4 -4
  532. package/dist/esm/md-loading-indicator-Bf-Pt29l.js +31 -0
  533. package/dist/esm/md-loading-indicator-Bf-Pt29l.js.map +1 -0
  534. package/dist/esm/md-loading-indicator.entry.js +5 -0
  535. package/dist/esm/md-loading-indicator.entry.js.map +1 -0
  536. package/dist/esm/md-menu-item-group.entry.js +1 -1
  537. package/dist/esm/md-menu_2.entry.js +6 -6
  538. package/dist/esm/md-meter.entry.js +1 -1
  539. package/dist/esm/md-multi-select.entry.js +7 -6
  540. package/dist/esm/md-multi-select.entry.js.map +1 -1
  541. package/dist/esm/md-navigation-bar.entry.js +2 -2
  542. package/dist/esm/md-navigation-rail-tab.entry.js +2 -2
  543. package/dist/esm/md-navigation-rail.entry.js +1 -1
  544. package/dist/esm/md-navigation-tab.entry.js +4 -4
  545. package/dist/esm/md-number-field.entry.js +3 -3
  546. package/dist/esm/md-organization-chart.entry.js +3 -3
  547. package/dist/esm/md-otp-field.entry.js +4 -4
  548. package/dist/esm/md-pie-chart.entry.js +3 -3
  549. package/dist/esm/md-progress-indicator.entry.js +1 -1
  550. package/dist/esm/md-rating.entry.js +1 -1
  551. package/dist/esm/md-search.entry.js +8 -7
  552. package/dist/esm/md-search.entry.js.map +1 -1
  553. package/dist/esm/md-segmented-button-set.entry.js +1 -1
  554. package/dist/esm/md-segmented-button.entry.js +1 -1
  555. package/dist/esm/md-select-option.entry.js +2 -2
  556. package/dist/esm/md-select.entry.js +7 -6
  557. package/dist/esm/md-select.entry.js.map +1 -1
  558. package/dist/esm/md-side-sheet.entry.js +1 -1
  559. package/dist/esm/md-skeleton.entry.js +1 -1
  560. package/dist/esm/md-slider.entry.js +3 -3
  561. package/dist/esm/md-sparkline.entry.js +7 -7
  562. package/dist/esm/md-split-button.entry.js +1 -1
  563. package/dist/esm/md-status-dot.entry.js +2 -2
  564. package/dist/esm/md-step.entry.js +1 -1
  565. package/dist/esm/md-stepper.entry.js +1 -1
  566. package/dist/esm/md-sub-menu-item.entry.js +1 -1
  567. package/dist/esm/md-switch.entry.js +1 -1
  568. package/dist/esm/md-tab-panel.entry.js +1 -1
  569. package/dist/esm/md-tab-panels.entry.js +1 -1
  570. package/dist/esm/md-tab.entry.js +1 -1
  571. package/dist/esm/md-table-body.entry.js +1 -1
  572. package/dist/esm/md-table-cell.entry.js +1 -1
  573. package/dist/esm/md-table-container.entry.js +1 -1
  574. package/dist/esm/md-table-expand-toggle.entry.js +1 -1
  575. package/dist/esm/md-table-foot.entry.js +1 -1
  576. package/dist/esm/md-table-head.entry.js +1 -1
  577. package/dist/esm/md-table-pagination.entry.js +1 -1
  578. package/dist/esm/md-table-row.entry.js +1 -1
  579. package/dist/esm/md-table-sort-label.entry.js +1 -1
  580. package/dist/esm/md-table-toolbar.entry.js +1 -1
  581. package/dist/esm/md-table.entry.js +4 -4
  582. package/dist/esm/md-tabs.entry.js +1 -1
  583. package/dist/esm/md-text-field.entry.js +8 -8
  584. package/dist/esm/md-time-picker.entry.js +2 -2
  585. package/dist/esm/md-toolbar.entry.js +1 -1
  586. package/dist/esm/md-transfer-list.entry.js +2 -2
  587. package/dist/esm/md3.js +4 -3
  588. package/dist/esm/md3.js.map +1 -1
  589. package/dist/esm/{rtl-DvOKnoqK.js → rtl-CVFH1DkU.js} +3 -3
  590. package/dist/esm/{rtl-DvOKnoqK.js.map → rtl-CVFH1DkU.js.map} +1 -1
  591. package/dist/esm/{url-BjYKc1Ge.js → url-BdEoSBtL.js} +3 -3
  592. package/dist/esm/{url-BjYKc1Ge.js.map → url-BdEoSBtL.js.map} +1 -1
  593. package/dist/esm/{virtual-select-controller-BEWIC0pC.js → virtual-select-controller-CR60w6DO.js} +10 -9
  594. package/dist/esm/virtual-select-controller-CR60w6DO.js.map +1 -0
  595. package/dist/md3/md3.css +1 -1
  596. package/dist/md3/md3.esm.js +1 -1
  597. package/dist/md3/md3.esm.js.map +1 -1
  598. package/dist/md3/p-08f1c469.entry.js +2 -0
  599. package/dist/md3/{p-4d82132d.entry.js.map → p-08f1c469.entry.js.map} +1 -1
  600. package/dist/md3/{p-9ddbf247.entry.js → p-108f89d7.entry.js} +2 -2
  601. package/dist/md3/p-1112bffc.entry.js +2 -0
  602. package/dist/md3/{p-cf07e761.entry.js.map → p-1112bffc.entry.js.map} +1 -1
  603. package/dist/md3/{p-c6a12344.entry.js → p-114c270b.entry.js} +2 -2
  604. package/dist/md3/p-1835fe36.entry.js +2 -0
  605. package/dist/md3/{p-a3308c40.entry.js.map → p-1835fe36.entry.js.map} +1 -1
  606. package/dist/md3/{p-396089fd.entry.js → p-1edb5a0d.entry.js} +2 -2
  607. package/dist/md3/p-2ba2db3b.entry.js +2 -0
  608. package/dist/md3/{p-6b2871a0.entry.js.map → p-2ba2db3b.entry.js.map} +1 -1
  609. package/dist/md3/p-3508d0e0.entry.js +2 -0
  610. package/dist/md3/{p-f31ab454.entry.js.map → p-3508d0e0.entry.js.map} +1 -1
  611. package/dist/md3/{p-b34d385b.entry.js → p-35b05b45.entry.js} +2 -2
  612. package/dist/md3/{p-c2dd8c8c.entry.js → p-38e9a583.entry.js} +2 -2
  613. package/dist/md3/{p-be02624e.entry.js → p-3c0469aa.entry.js} +2 -2
  614. package/dist/md3/p-3f64a27d.entry.js +2 -0
  615. package/dist/md3/{p-fb61868c.entry.js.map → p-3f64a27d.entry.js.map} +1 -1
  616. package/dist/md3/{p-63b8c8d1.entry.js → p-408ee4be.entry.js} +2 -2
  617. package/dist/md3/{p-edb34a6d.entry.js → p-43c708ad.entry.js} +2 -2
  618. package/dist/md3/{p-3015c7e3.entry.js → p-4770b534.entry.js} +2 -2
  619. package/dist/md3/{p-c861d774.entry.js → p-4b7cf934.entry.js} +2 -2
  620. package/dist/md3/{p-2e09a7b7.entry.js → p-4f26bd60.entry.js} +2 -2
  621. package/dist/md3/{p-7b463fbe.entry.js → p-4f2e82cb.entry.js} +2 -2
  622. package/dist/md3/{p-be412e3f.entry.js → p-501bf161.entry.js} +2 -2
  623. package/dist/md3/{p-c063c823.entry.js → p-56c7c570.entry.js} +2 -2
  624. package/dist/md3/{p-2e9503d7.entry.js → p-56ca0c3c.entry.js} +2 -2
  625. package/dist/md3/{p-ac8762e5.entry.js → p-5b63149a.entry.js} +2 -2
  626. package/dist/md3/{p-c5af701b.entry.js → p-5f668b0a.entry.js} +2 -2
  627. package/dist/md3/p-6237ddac.entry.js +2 -0
  628. package/dist/md3/{p-e7dc5a32.entry.js.map → p-6237ddac.entry.js.map} +1 -1
  629. package/dist/md3/{p-8eb0b6a4.entry.js → p-6d65fc6a.entry.js} +2 -2
  630. package/dist/md3/{p-e3124e1e.entry.js → p-707b6d7c.entry.js} +2 -2
  631. package/dist/md3/{p-a5fee424.entry.js → p-71f1660b.entry.js} +2 -2
  632. package/dist/md3/{p-1a8ec5bc.entry.js → p-7501170f.entry.js} +2 -2
  633. package/dist/md3/p-7c8842bf.entry.js +2 -0
  634. package/dist/md3/{p-ba2ebde1.entry.js.map → p-7c8842bf.entry.js.map} +1 -1
  635. package/dist/md3/{p-4e3d6e40.entry.js → p-7d1686a7.entry.js} +2 -2
  636. package/dist/md3/p-7e7f0e45.entry.js +2 -0
  637. package/dist/md3/p-7e7f0e45.entry.js.map +1 -0
  638. package/dist/md3/p-80379565.entry.js +2 -0
  639. package/dist/md3/{p-6c44cf13.entry.js.map → p-80379565.entry.js.map} +1 -1
  640. package/dist/md3/p-830724e4.entry.js +2 -0
  641. package/dist/md3/p-830724e4.entry.js.map +1 -0
  642. package/dist/md3/{p-4dda4cb0.entry.js → p-845ca9cc.entry.js} +2 -2
  643. package/dist/md3/{p-77a01bcc.entry.js → p-87f88d62.entry.js} +2 -2
  644. package/dist/md3/{p-5b74694e.entry.js → p-89d47130.entry.js} +2 -2
  645. package/dist/md3/p-8a6fed13.entry.js +2 -0
  646. package/dist/md3/{p-a803da99.entry.js.map → p-8a6fed13.entry.js.map} +1 -1
  647. package/dist/md3/p-8a7e0297.entry.js +2 -0
  648. package/dist/md3/p-8a7e0297.entry.js.map +1 -0
  649. package/dist/md3/{p-b0431a5c.entry.js → p-8bdcda53.entry.js} +2 -2
  650. package/dist/md3/{p-c10a33c2.entry.js → p-8e7df348.entry.js} +2 -2
  651. package/dist/md3/p-9003a7d4.entry.js +2 -0
  652. package/dist/md3/p-9003a7d4.entry.js.map +1 -0
  653. package/dist/md3/{p-05ae91b6.entry.js → p-90ccf4c3.entry.js} +2 -2
  654. package/dist/md3/p-BdEoSBtL.js +2 -0
  655. package/dist/md3/{p-BjYKc1Ge.js.map → p-BdEoSBtL.js.map} +1 -1
  656. package/dist/md3/p-Bz-JaJcA.js +2 -0
  657. package/dist/md3/p-Bz-JaJcA.js.map +1 -0
  658. package/dist/md3/p-CGqeEMjY.js +2 -0
  659. package/dist/md3/{p-DzPKu-Ma.js.map → p-CGqeEMjY.js.map} +1 -1
  660. package/dist/md3/p-CVFH1DkU.js +2 -0
  661. package/dist/md3/{p-DvOKnoqK.js.map → p-CVFH1DkU.js.map} +1 -1
  662. package/dist/md3/p-Cch92tDM.js +2 -0
  663. package/dist/md3/{p-RLxbNqRv.js.map → p-Cch92tDM.js.map} +1 -1
  664. package/dist/md3/p-CfBPnYW7.js +2 -0
  665. package/dist/md3/p-CfBPnYW7.js.map +1 -0
  666. package/dist/md3/p-D17cVKxS.js +2 -0
  667. package/dist/md3/p-D17cVKxS.js.map +1 -0
  668. package/dist/md3/p-DGtztV3K.js +2 -0
  669. package/dist/md3/{p-Bx6--dQF.js.map → p-DGtztV3K.js.map} +1 -1
  670. package/dist/md3/p-DQuL1Twl.js +2 -0
  671. package/dist/md3/p-DQuL1Twl.js.map +1 -0
  672. package/dist/md3/p-DnKDoE8K.js +2 -0
  673. package/dist/md3/p-DnKDoE8K.js.map +1 -0
  674. package/dist/md3/p-WmvQpZnM.js +3 -0
  675. package/dist/md3/p-WmvQpZnM.js.map +1 -0
  676. package/dist/md3/p-a3623653.entry.js +2 -0
  677. package/dist/md3/{p-19ee9c33.entry.js.map → p-a3623653.entry.js.map} +1 -1
  678. package/dist/md3/{p-da4e27d4.entry.js → p-a4d4cfed.entry.js} +2 -2
  679. package/dist/md3/{p-5394254f.entry.js → p-a976498b.entry.js} +2 -2
  680. package/dist/md3/{p-6038b907.entry.js → p-ab568d1c.entry.js} +2 -2
  681. package/dist/md3/{p-bf7842f8.entry.js → p-adf8a415.entry.js} +2 -2
  682. package/dist/md3/p-ae30e899.entry.js +2 -0
  683. package/dist/md3/p-ae30e899.entry.js.map +1 -0
  684. package/dist/md3/{p-45280bf4.entry.js → p-b2d88292.entry.js} +2 -2
  685. package/dist/md3/{p-796f79f8.entry.js → p-b3b5247b.entry.js} +2 -2
  686. package/dist/md3/{p-5b799707.entry.js → p-b4266f6b.entry.js} +2 -2
  687. package/dist/md3/p-b54bbf88.entry.js +2 -0
  688. package/dist/md3/p-b54bbf88.entry.js.map +1 -0
  689. package/dist/md3/{p-c00f7514.entry.js → p-ba011453.entry.js} +2 -2
  690. package/dist/md3/{p-6ba63c73.entry.js → p-bc24f0c9.entry.js} +2 -2
  691. package/dist/md3/{p-0c2e824d.entry.js → p-c20fbb9e.entry.js} +2 -2
  692. package/dist/md3/{p-fc0b325d.entry.js → p-c2944c87.entry.js} +2 -2
  693. package/dist/md3/{p-4e45b2ff.entry.js → p-c58c68d0.entry.js} +2 -2
  694. package/dist/md3/p-cc6e8afd.entry.js +2 -0
  695. package/dist/md3/{p-72457a85.entry.js.map → p-cc6e8afd.entry.js.map} +1 -1
  696. package/dist/md3/{p-0f764a1e.entry.js → p-d2e39c6e.entry.js} +2 -2
  697. package/dist/md3/{p-50555bb7.entry.js → p-d8885f53.entry.js} +2 -2
  698. package/dist/md3/{p-c1ca6f6c.entry.js → p-db6fb4e1.entry.js} +2 -2
  699. package/dist/md3/{p-81843ff7.entry.js → p-dcba2857.entry.js} +2 -2
  700. package/dist/md3/{p-65195996.entry.js → p-e357e8ac.entry.js} +2 -2
  701. package/dist/md3/{p-39cb7c24.entry.js → p-e5c6795e.entry.js} +2 -2
  702. package/dist/md3/p-e871663b.entry.js +2 -0
  703. package/dist/md3/{p-aaec2698.entry.js.map → p-e871663b.entry.js.map} +1 -1
  704. package/dist/md3/p-f1b69181.entry.js +2 -0
  705. package/dist/md3/{p-a986fd24.entry.js.map → p-f1b69181.entry.js.map} +1 -1
  706. package/dist/md3/p-f297d786.entry.js +2 -0
  707. package/dist/md3/{p-3cce1de3.entry.js.map → p-f297d786.entry.js.map} +1 -1
  708. package/dist/md3/{p-e6d7f0ff.entry.js → p-f403ad20.entry.js} +2 -2
  709. package/dist/md3/p-f5399b73.entry.js +2 -0
  710. package/dist/md3/{p-04e97f5d.entry.js.map → p-f5399b73.entry.js.map} +1 -1
  711. package/dist/md3/{p-708a9313.entry.js → p-f5fd9a0b.entry.js} +2 -2
  712. package/dist/md3/{p-aa0e7d4d.entry.js → p-f71af38f.entry.js} +2 -2
  713. package/dist/md3/{p-757e3aaf.entry.js → p-fac6da4c.entry.js} +2 -2
  714. package/dist/md3/{p-134b670a.entry.js → p-fc864f96.entry.js} +2 -2
  715. package/dist/md3/{p-32bdd439.entry.js → p-fd686966.entry.js} +2 -2
  716. package/dist/md3/p-nhfFYWzy.js +2 -0
  717. package/dist/md3/{p-C_ogF68H.js.map → p-nhfFYWzy.js.map} +1 -1
  718. package/dist/types/utils/lazy-loading-indicator.d.ts +7 -0
  719. package/dist/types/wasm/engine-abi.d.ts +14 -0
  720. package/hydrate/index.js +191 -113
  721. package/hydrate/index.mjs +191 -113
  722. package/package.json +30 -5
  723. package/dist/cjs/index-DlQ_5_Mv.js.map +0 -1
  724. package/dist/cjs/md-button_7.cjs.entry.js.map +0 -1
  725. package/dist/cjs/virtual-select-controller-CqriaZgm.js.map +0 -1
  726. package/dist/components/p-BEWIC0pC.js +0 -2
  727. package/dist/components/p-BEWIC0pC.js.map +0 -1
  728. package/dist/components/p-DXXUoRSH.js.map +0 -1
  729. package/dist/components/p-MWBNn6Lj.js +0 -2
  730. package/dist/components/p-MWBNn6Lj.js.map +0 -1
  731. package/dist/components/p-UdGDg2oJ.js.map +0 -1
  732. package/dist/esm/index-DTaX19_O.js.map +0 -1
  733. package/dist/esm/md-button_7.entry.js.map +0 -1
  734. package/dist/esm/virtual-select-controller-BEWIC0pC.js.map +0 -1
  735. package/dist/md3/p-04e97f5d.entry.js +0 -2
  736. package/dist/md3/p-19ee9c33.entry.js +0 -2
  737. package/dist/md3/p-21772851.entry.js +0 -2
  738. package/dist/md3/p-21772851.entry.js.map +0 -1
  739. package/dist/md3/p-3cce1de3.entry.js +0 -2
  740. package/dist/md3/p-47af9819.entry.js +0 -2
  741. package/dist/md3/p-47af9819.entry.js.map +0 -1
  742. package/dist/md3/p-4d82132d.entry.js +0 -2
  743. package/dist/md3/p-6b2871a0.entry.js +0 -2
  744. package/dist/md3/p-6c44cf13.entry.js +0 -2
  745. package/dist/md3/p-72457a85.entry.js +0 -2
  746. package/dist/md3/p-BEWIC0pC.js +0 -2
  747. package/dist/md3/p-BEWIC0pC.js.map +0 -1
  748. package/dist/md3/p-DTaX19_O.js +0 -3
  749. package/dist/md3/p-DTaX19_O.js.map +0 -1
  750. package/dist/md3/p-a3308c40.entry.js +0 -2
  751. package/dist/md3/p-a7ffb779.entry.js +0 -2
  752. package/dist/md3/p-a7ffb779.entry.js.map +0 -1
  753. package/dist/md3/p-a803da99.entry.js +0 -2
  754. package/dist/md3/p-a986fd24.entry.js +0 -2
  755. package/dist/md3/p-aaec2698.entry.js +0 -2
  756. package/dist/md3/p-ac35ac5f.entry.js +0 -2
  757. package/dist/md3/p-ac35ac5f.entry.js.map +0 -1
  758. package/dist/md3/p-b4631a55.entry.js +0 -2
  759. package/dist/md3/p-b4631a55.entry.js.map +0 -1
  760. package/dist/md3/p-ba2ebde1.entry.js +0 -2
  761. package/dist/md3/p-cf07e761.entry.js +0 -2
  762. package/dist/md3/p-e7dc5a32.entry.js +0 -2
  763. package/dist/md3/p-f31ab454.entry.js +0 -2
  764. package/dist/md3/p-fb61868c.entry.js +0 -2
  765. /package/dist/{components/p-uTEkf0sE.js.map → components-csr/p-BEmwDSzw.js.map} +0 -0
  766. /package/dist/{components/p-C8EP4S21.js.map → components-csr/p-BQKzjYcY.js.map} +0 -0
  767. /package/dist/{components/p-BwXpiUsu.js.map → components-csr/p-BWMwewtY.js.map} +0 -0
  768. /package/dist/{components/p-B0Opn6dK.js.map → components-csr/p-Bkt_X-6v.js.map} +0 -0
  769. /package/dist/{md3 → components-csr}/p-Bx6--dQF.js +0 -0
  770. /package/dist/{components/p-stybaFzj.js.map → components-csr/p-C3vB0Hd9.js.map} +0 -0
  771. /package/dist/{components/p-B3MWYEEJ.js.map → components-csr/p-CF7mq5T7.js.map} +0 -0
  772. /package/dist/{components/p-7fN_yCXW.js.map → components-csr/p-CVMM-tdC.js.map} +0 -0
  773. /package/dist/{md3 → components-csr}/p-C_ogF68H.js +0 -0
  774. /package/dist/{components/p-Ch2-tttM.js.map → components-csr/p-DMQ-6aj8.js.map} +0 -0
  775. /package/dist/{components/p-e2HRV63Y.js.map → components-csr/p-DfcpeJAu.js.map} +0 -0
  776. /package/dist/{components/p-Dp-w93ot.js.map → components-csr/p-DjKPc5EU.js.map} +0 -0
  777. /package/dist/{md3 → components-csr}/p-DvOKnoqK.js +0 -0
  778. /package/dist/{md3 → components-csr}/p-DzPKu-Ma.js +0 -0
  779. /package/dist/{md3 → components-csr}/p-RLxbNqRv.js +0 -0
  780. /package/dist/{components/p-6wZSqm_2.js.map → components-csr/p-R_guULjT.js.map} +0 -0
  781. /package/dist/{components/p-Ddiw2Kjw.js.map → components-csr/p-uSMrgqAy.js.map} +0 -0
  782. /package/dist/md3/{p-9ddbf247.entry.js.map → p-108f89d7.entry.js.map} +0 -0
  783. /package/dist/md3/{p-c6a12344.entry.js.map → p-114c270b.entry.js.map} +0 -0
  784. /package/dist/md3/{p-396089fd.entry.js.map → p-1edb5a0d.entry.js.map} +0 -0
  785. /package/dist/md3/{p-b34d385b.entry.js.map → p-35b05b45.entry.js.map} +0 -0
  786. /package/dist/md3/{p-c2dd8c8c.entry.js.map → p-38e9a583.entry.js.map} +0 -0
  787. /package/dist/md3/{p-be02624e.entry.js.map → p-3c0469aa.entry.js.map} +0 -0
  788. /package/dist/md3/{p-63b8c8d1.entry.js.map → p-408ee4be.entry.js.map} +0 -0
  789. /package/dist/md3/{p-edb34a6d.entry.js.map → p-43c708ad.entry.js.map} +0 -0
  790. /package/dist/md3/{p-3015c7e3.entry.js.map → p-4770b534.entry.js.map} +0 -0
  791. /package/dist/md3/{p-c861d774.entry.js.map → p-4b7cf934.entry.js.map} +0 -0
  792. /package/dist/md3/{p-2e09a7b7.entry.js.map → p-4f26bd60.entry.js.map} +0 -0
  793. /package/dist/md3/{p-7b463fbe.entry.js.map → p-4f2e82cb.entry.js.map} +0 -0
  794. /package/dist/md3/{p-be412e3f.entry.js.map → p-501bf161.entry.js.map} +0 -0
  795. /package/dist/md3/{p-c063c823.entry.js.map → p-56c7c570.entry.js.map} +0 -0
  796. /package/dist/md3/{p-2e9503d7.entry.js.map → p-56ca0c3c.entry.js.map} +0 -0
  797. /package/dist/md3/{p-ac8762e5.entry.js.map → p-5b63149a.entry.js.map} +0 -0
  798. /package/dist/md3/{p-c5af701b.entry.js.map → p-5f668b0a.entry.js.map} +0 -0
  799. /package/dist/md3/{p-8eb0b6a4.entry.js.map → p-6d65fc6a.entry.js.map} +0 -0
  800. /package/dist/md3/{p-e3124e1e.entry.js.map → p-707b6d7c.entry.js.map} +0 -0
  801. /package/dist/md3/{p-a5fee424.entry.js.map → p-71f1660b.entry.js.map} +0 -0
  802. /package/dist/md3/{p-1a8ec5bc.entry.js.map → p-7501170f.entry.js.map} +0 -0
  803. /package/dist/md3/{p-4e3d6e40.entry.js.map → p-7d1686a7.entry.js.map} +0 -0
  804. /package/dist/md3/{p-4dda4cb0.entry.js.map → p-845ca9cc.entry.js.map} +0 -0
  805. /package/dist/md3/{p-77a01bcc.entry.js.map → p-87f88d62.entry.js.map} +0 -0
  806. /package/dist/md3/{p-5b74694e.entry.js.map → p-89d47130.entry.js.map} +0 -0
  807. /package/dist/md3/{p-b0431a5c.entry.js.map → p-8bdcda53.entry.js.map} +0 -0
  808. /package/dist/md3/{p-c10a33c2.entry.js.map → p-8e7df348.entry.js.map} +0 -0
  809. /package/dist/md3/{p-05ae91b6.entry.js.map → p-90ccf4c3.entry.js.map} +0 -0
  810. /package/dist/md3/{p-da4e27d4.entry.js.map → p-a4d4cfed.entry.js.map} +0 -0
  811. /package/dist/md3/{p-5394254f.entry.js.map → p-a976498b.entry.js.map} +0 -0
  812. /package/dist/md3/{p-6038b907.entry.js.map → p-ab568d1c.entry.js.map} +0 -0
  813. /package/dist/md3/{p-bf7842f8.entry.js.map → p-adf8a415.entry.js.map} +0 -0
  814. /package/dist/md3/{p-45280bf4.entry.js.map → p-b2d88292.entry.js.map} +0 -0
  815. /package/dist/md3/{p-796f79f8.entry.js.map → p-b3b5247b.entry.js.map} +0 -0
  816. /package/dist/md3/{p-5b799707.entry.js.map → p-b4266f6b.entry.js.map} +0 -0
  817. /package/dist/md3/{p-c00f7514.entry.js.map → p-ba011453.entry.js.map} +0 -0
  818. /package/dist/md3/{p-6ba63c73.entry.js.map → p-bc24f0c9.entry.js.map} +0 -0
  819. /package/dist/md3/{p-0c2e824d.entry.js.map → p-c20fbb9e.entry.js.map} +0 -0
  820. /package/dist/md3/{p-fc0b325d.entry.js.map → p-c2944c87.entry.js.map} +0 -0
  821. /package/dist/md3/{p-4e45b2ff.entry.js.map → p-c58c68d0.entry.js.map} +0 -0
  822. /package/dist/md3/{p-0f764a1e.entry.js.map → p-d2e39c6e.entry.js.map} +0 -0
  823. /package/dist/md3/{p-50555bb7.entry.js.map → p-d8885f53.entry.js.map} +0 -0
  824. /package/dist/md3/{p-c1ca6f6c.entry.js.map → p-db6fb4e1.entry.js.map} +0 -0
  825. /package/dist/md3/{p-81843ff7.entry.js.map → p-dcba2857.entry.js.map} +0 -0
  826. /package/dist/md3/{p-65195996.entry.js.map → p-e357e8ac.entry.js.map} +0 -0
  827. /package/dist/md3/{p-39cb7c24.entry.js.map → p-e5c6795e.entry.js.map} +0 -0
  828. /package/dist/md3/{p-e6d7f0ff.entry.js.map → p-f403ad20.entry.js.map} +0 -0
  829. /package/dist/md3/{p-708a9313.entry.js.map → p-f5fd9a0b.entry.js.map} +0 -0
  830. /package/dist/md3/{p-aa0e7d4d.entry.js.map → p-f71af38f.entry.js.map} +0 -0
  831. /package/dist/md3/{p-757e3aaf.entry.js.map → p-fac6da4c.entry.js.map} +0 -0
  832. /package/dist/md3/{p-134b670a.entry.js.map → p-fc864f96.entry.js.map} +0 -0
  833. /package/dist/md3/{p-32bdd439.entry.js.map → p-fd686966.entry.js.map} +0 -0
@@ -1,5 +1,5 @@
1
- import { w as watchDevicePixelRatio, c as watchDirection, e as renderHover, f as clearHover, i as isRtl, s as syncOverlay, g as prefersReducedMotion, h as resolveIntro, m as mirrorScene, j as renderGlyphs, k as renderEndLabels, l as drawSceneCanvas, n as stepAnimation, o as computeLayout } from './rtl-DvOKnoqK.js';
2
- import { H as HoverFocus, n as nearestIndex, h as hitTestScene, a as axisSeriesValues, e as emphasizeScene, s as seriesSampleLines, b as areaSeriesAt, d as distanceToLine, E as EMPHASIS_MS } from './hit-test-DHldf5Lm.js';
1
+ import { w as watchDevicePixelRatio, a as watchDirection, r as renderHover, c as clearHover, i as isRtl, s as syncOverlay, p as prefersReducedMotion, b as resolveIntro, m as mirrorScene, d as renderGlyphs, e as renderEndLabels, f as drawSceneCanvas, g as stepAnimation, h as computeLayout } from './rtl-CVFH1DkU.js';
2
+ import { H as HoverFocus, n as nearestIndex, h as hitTestScene, a as axisSeriesValues, e as emphasizeScene, s as seriesSampleLines, b as areaSeriesAt, d as distanceToLine, E as EMPHASIS_MS } from './hit-test-c_hI-yCX.js';
3
3
 
4
4
  /*
5
5
  * Chart engine — LineChartEngine
@@ -547,6 +547,6 @@ class LineChartEngine {
547
547
  }
548
548
 
549
549
  export { LineChartEngine as L };
550
- //# sourceMappingURL=chart-32olae06.js.map
550
+ //# sourceMappingURL=chart-ByIhkqsG.js.map
551
551
 
552
- //# sourceMappingURL=chart-32olae06.js.map
552
+ //# sourceMappingURL=chart-ByIhkqsG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chart-32olae06.js","sources":["src/utils/charts/engine/chart.ts"],"sourcesContent":["/*\n * Chart engine — LineChartEngine\n * ===========================================================\n * The instance that replaces the ECharts object. Owns a plot\n * <canvas> + a DOM overlay layer inside the host's canvas box,\n * and runs the render pipeline: spec + theme + size →\n * computeLayout → draw geometry + sync the text/legend overlay. Exposes\n * setSpec / resize / dispose and a legend-toggle + hover callback,\n * mirroring the surface md-line-chart needs.\n * ===========================================================\n */\n\nimport { computeLayout, type EngineTheme, type LineChartSpec } from './layout';\nimport { drawSceneCanvas } from './renderer-canvas';\nimport { syncOverlay, renderGlyphs, renderEndLabels } from './overlay';\nimport { clearHover, renderHover, type HoverOptions } from './hover';\nimport { watchDevicePixelRatio, type DprWatcher } from './dpr';\nimport { resolveIntro, stepAnimation, prefersReducedMotion } from './animate';\n\n/** Monotonic ms, for the hover-focus dwell. */\nconst now = (): number => (typeof performance !== 'undefined' ? performance.now() : Date.now());\nimport { distanceToLine, emphasizeScene, HoverFocus, EMPHASIS_MS } from './emphasis';\nimport { axisSeriesValues, hitTestScene, nearestIndex, seriesSampleLines, type AxisSeriesValue, areaSeriesAt } from './hit-test';\nimport { isRtl, mirrorScene, watchDirection, type DirectionWatcher } from './rtl';\nimport type { MdChartAnimation } from '../types';\nimport type { LegendItem, RenderScene } from './scene';\n\nexport interface EngineCallbacks {\n onLegendClick?: (item: LegendItem) => void;\n /** Fires with the nearest category index as the pointer moves (or -1 on leave). */\n onHover?: (dataIndex: number) => void;\n /** Fires when a data point is clicked (nearest series + index). */\n onPointClick?: (seriesIndex: number, dataIndex: number, e: PointerEvent) => void;\n /** Fires when a series' drawn LINE is clicked away from its data points. */\n onLineClick?: (seriesIndex: number, dataIndex: number, e: PointerEvent) => void;\n /** Fires when a series' filled AREA is clicked (not its line or its points). */\n onAreaClick?: (seriesIndex: number, dataIndex: number, e: PointerEvent) => void;\n /** Fires when the plot background is clicked: the nearest x index plus every\n * visible series' value there. */\n onAxisClick?: (dataIndex: number, values: AxisSeriesValue[], e: PointerEvent) => void;\n}\n\n/**\n * How far (px) the pointer may travel between press and release for the release\n * to still count as a click on the plot. Anything further is a gesture (the\n * drag-to-zoom band, a slider pan), and the background / line / area clicks stay\n * quiet. Matches the same threshold md-line-chart uses to tell a stray drag from\n * a click. A MARK click is exempt — that behaviour predates this and is public.\n */\nconst DRAG_SLOP = 8;\n\nexport class LineChartEngine {\n private canvas: HTMLCanvasElement;\n private overlay: HTMLDivElement;\n /** Legend lives here: same box, but NOT clipped, so a focus ring keeps its\n * outer pixels where the legend hugs the plot edge. */\n private legendLayer: HTMLDivElement;\n private glyphLayer: HTMLDivElement;\n private endLabelLayer: HTMLDivElement;\n private hoverLayer: HTMLDivElement;\n private ctx: CanvasRenderingContext2D | null = null;\n private spec: LineChartSpec | null = null;\n private theme: EngineTheme | null = null;\n private scene: RenderScene | null = null;\n private cb: EngineCallbacks = {};\n private hoverRaf = 0;\n private lastHoverIndex = -2;\n private hoverEnabled = true;\n private hoverOpts: HoverOptions = {};\n private hasRendered = false;\n private introRaf = 0;\n private lastW = 0;\n private lastH = 0;\n private lastDpr = 1;\n // Hover emphasis: the series kept vivid (persists through the fade-out so the\n // others un-dim gradually) + the animated dim factor (0 none → 1 full).\n private emphasisSeries = -1;\n private emphasisT = 0;\n private emphasisTarget = 0;\n private emphasisRaf = 0;\n /** Per-scene cache for {@link seriesLines}. */\n private focusLines: { scene: RenderScene; points: [number, number][][] } | null = null;\n /** Picks which series the hover emphasises, and keeps that choice steady. */\n private focus = new HoverFocus();\n /** Where the pointer went down, and whether it has since travelled far enough\n * to make the coming click the end of a drag rather than a click. */\n private downAt: { x: number; y: number } | null = null;\n private dragged = false;\n /** Host is laid out right-to-left — the finished scene is mirrored. */\n private rtl = false;\n /** The scene BEFORE mirroring, for the +x-sweeping intro animations. */\n private sceneLtr: RenderScene | null = null;\n private dprWatch: DprWatcher = watchDevicePixelRatio(() => this.render());\n /** Re-render when the page (or an ancestor) flips direction — but only if\n * THIS chart's own computed direction actually changed. */\n private dirWatch: DirectionWatcher = watchDirection(() => {\n if (isRtl(this.container) !== this.rtl) this.render();\n });\n\n constructor(private container: HTMLElement) {\n // Host provides a positioned box; layer the canvas + overlay in it.\n if (getComputedStyle(container).position === 'static') container.style.position = 'relative';\n\n this.canvas = document.createElement('canvas');\n this.canvas.style.cssText = 'position:absolute;inset:0;width:100%;height:100%;display:block';\n this.canvas.setAttribute('part', 'plot-canvas');\n\n this.overlay = document.createElement('div');\n this.overlay.style.cssText = 'position:absolute;inset:0;pointer-events:none;overflow:hidden';\n\n this.legendLayer = document.createElement('div');\n this.legendLayer.style.cssText = 'position:absolute;inset:0;pointer-events:none;overflow:visible';\n\n // Emoji / text markers get their own layer so they can rise / reveal / fade\n // with the data geometry each animation frame (the static overlay above is\n // only synced once per render).\n this.glyphLayer = document.createElement('div');\n this.glyphLayer.style.cssText = 'position:absolute;inset:0;pointer-events:none;overflow:hidden';\n\n // End-of-line series labels live in their own PERSISTENT layer (not cleared\n // each frame) so they can fade in/out on collision via a CSS transition.\n this.endLabelLayer = document.createElement('div');\n this.endLabelLayer.style.cssText = 'position:absolute;inset:0;pointer-events:none;overflow:hidden';\n\n // Hover UI (crosshair + tooltip) sits above the static overlay so it\n // updates on pointermove without re-syncing the labels/legend.\n this.hoverLayer = document.createElement('div');\n this.hoverLayer.style.cssText = 'position:absolute;inset:0;pointer-events:none;overflow:hidden';\n\n container.append(this.canvas, this.overlay, this.legendLayer, this.glyphLayer, this.endLabelLayer, this.hoverLayer);\n\n this.ctx = this.canvas.getContext('2d');\n\n this.canvas.addEventListener('pointerdown', this.handlePointerDown);\n this.canvas.addEventListener('pointermove', this.handlePointerMove);\n this.canvas.addEventListener('pointerleave', this.handlePointerLeave);\n this.canvas.addEventListener('click', this.handleClick);\n }\n\n /** The current render scene — for diagnostics/tests. */\n getScene(): RenderScene | null {\n return this.scene;\n }\n\n /** Enable/disable the hover crosshair + tooltip (sparkline `show-tooltip`). */\n setHoverEnabled(enabled: boolean): void {\n this.hoverEnabled = enabled;\n if (!enabled) clearHover(this.hoverLayer);\n }\n\n /**\n * Install the tooltip extras: a developer's content renderer and/or the\n * formatter consulted for a series with no value at the hovered x. Presentation\n * only — it deliberately does NOT go through `setSpec`, so swapping the\n * renderer never re-runs layout.\n */\n setTooltip(opts: HoverOptions): void {\n this.hoverOpts = opts;\n }\n\n\n\n setSpec(spec: LineChartSpec, theme: EngineTheme, cb: EngineCallbacks = {}): void {\n this.spec = spec;\n this.theme = theme;\n this.cb = cb;\n // The series set may have changed — drop any stale hover focus.\n cancelAnimationFrame(this.emphasisRaf);\n this.focus.reset();\n this.emphasisSeries = -1;\n this.emphasisT = 0;\n this.emphasisTarget = 0;\n this.render();\n }\n\n resize(): void {\n // A ResizeObserver fires an initial callback right after observe() with the\n // same size the first render already used. Re-rendering there would draw the\n // static final geometry and cancel the just-scheduled intro animation (RO\n // delivery runs before rAF in the frame), so skip when size is unchanged.\n const rect = this.container.getBoundingClientRect();\n if (Math.round(rect.width) === this.lastW && Math.round(rect.height) === this.lastH) return;\n this.render();\n }\n\n /** Current frame as a data URL (for toDataURL export). */\n toDataURL(type = 'image/png'): string {\n // Guard for canvases that can't export (mock-doc / SSR): return '' rather\n // than throwing, so the host's toDataURL() degrades gracefully.\n return typeof this.canvas.toDataURL === 'function' ? this.canvas.toDataURL(type) : '';\n }\n\n dispose(): void {\n if (this.hoverRaf) cancelAnimationFrame(this.hoverRaf);\n // stopIntro rather than a bare cancel. Nothing depends on the clear here —\n // dispose() removes the canvas a few lines down — but routing EVERY cancel\n // of introRaf through stopIntro is what makes the invariant hold: the\n // inline opacity is only ever non-empty while the entrance loop is live.\n // The bug this fixes was one cancel site that forgot the clear.\n this.stopIntro();\n cancelAnimationFrame(this.emphasisRaf);\n this.canvas.removeEventListener('pointerdown', this.handlePointerDown);\n this.canvas.removeEventListener('pointermove', this.handlePointerMove);\n this.canvas.removeEventListener('pointerleave', this.handlePointerLeave);\n this.canvas.removeEventListener('click', this.handleClick);\n this.dprWatch.dispose();\n this.dirWatch.dispose();\n this.canvas.remove();\n this.overlay.remove();\n this.glyphLayer.remove();\n this.endLabelLayer.remove();\n this.hoverLayer.remove();\n this.spec = null;\n this.scene = null;\n this.sceneLtr = null;\n }\n\n private render(): void {\n if (!this.spec || !this.theme) return;\n this.dprWatch.update();\n const rect = this.container.getBoundingClientRect();\n const w = Math.round(rect.width);\n const h = Math.round(rect.height);\n if (w < 2 || h < 2) return; // not laid out yet — ResizeObserver retries\n this.lastW = w;\n this.lastH = h;\n\n // Cap the backing-store scale for perf; 4 keeps lines crisp through ~200%\n // browser zoom on a 2x display (the dpr watcher re-renders on zoom).\n const dpr = Math.min(window.devicePixelRatio || 1, 4);\n this.lastDpr = dpr;\n this.canvas.width = w * dpr;\n this.canvas.height = h * dpr;\n\n // Layout always runs left-to-right; an RTL host gets the finished frame\n // mirrored (see rtl.ts), so no part of the geometry pipeline needs to know.\n // The un-mirrored scene is kept because the intro animations sweep along +x\n // (`draw` reveals by a moving cutX) — they run in that space and each frame\n // is mirrored on its way to the canvas, so the reveal follows the reading\n // direction instead of running backwards.\n this.rtl = isRtl(this.container);\n const layout = (): RenderScene => {\n this.sceneLtr = computeLayout(this.spec!, this.theme!, w, h);\n return this.mirrored(this.sceneLtr);\n };\n\n this.scene = layout();\n // Chrome (axes, gridlines, labels, legend) is static — sync it once; only\n // the data geometry animates on the first render.\n syncOverlay(this.overlay, this.scene, this.theme.fontFamily, { onLegendClick: this.onLegendToggle }, this.rtl, this.legendLayer);\n // Two-pass legend: a wrapped legend's real extent isn't known until it's in\n // the DOM. Re-reserve the gutter to its measured height/width and re-lay-out\n // so a many-series legend never spills onto the plot.\n const legendEl = this.overlay.querySelector('[part=\"legend\"]') as HTMLElement | null;\n if (legendEl && this.spec.legend && this.spec.legend !== 'none') {\n const side = this.spec.legend === 'left' || this.spec.legend === 'right';\n const extent = side ? legendEl.offsetWidth : legendEl.offsetHeight;\n if (extent > 0 && Math.abs((this.spec.legendExtent ?? -1) - extent) > 2) {\n this.spec.legendExtent = extent;\n this.scene = layout();\n syncOverlay(this.overlay, this.scene, this.theme.fontFamily, { onLegendClick: this.onLegendToggle }, this.rtl, this.legendLayer);\n }\n }\n const { variant, duration } = resolveIntro(this.spec);\n const animate = !this.hasRendered && variant !== 'none' && !prefersReducedMotion();\n // An EMPTY scene is not a chart that has been shown: a host that hydrates\n // before its data lands renders once with no series, and treating that as\n // the first render spent the entrance on nothing — the real data then\n // arrived un-animated. The first render with geometry owns the entrance.\n const hasContent = this.sceneLtr\n ? this.sceneLtr.lines.length > 0 || this.sceneLtr.areas.length > 0 || this.sceneLtr.markers.length > 0\n : false;\n if (animate) {\n this.hasRendered = hasContent;\n this.playIntro(dpr, variant, duration);\n return;\n }\n this.hasRendered = this.hasRendered || hasContent;\n this.stopIntro();\n // Preserve any active hover emphasis across non-hover re-renders.\n this.paintGeometry(emphasizeScene(this.scene, this.emphasisSeries, this.emphasisT), dpr);\n }\n\n /**\n * Clear the inline opacity the entrance fades the layers in with.\n *\n * The entrance is the ONLY writer of it, and the loop's terminal frame the\n * only thing that clears it — so any path that ends the entrance early must\n * undo it here, or the chart is left drawn into a canvas pinned at\n * `opacity: 0` with nothing left to write style again.\n */\n private clearIntroOpacity(): void {\n this.canvas.style.opacity = '';\n this.glyphLayer.style.opacity = '';\n }\n\n /** End the entrance loop AND undo the fade it applied. Use this instead of a\n * bare `cancelAnimationFrame(this.introRaf)` outside the loop itself. */\n private stopIntro(): void {\n cancelAnimationFrame(this.introRaf);\n this.introRaf = 0;\n this.clearIntroOpacity();\n }\n\n /** A scene as it should reach the canvas: mirrored on an RTL host. */\n private mirrored(scene: RenderScene): RenderScene {\n return this.rtl ? mirrorScene(scene) : scene;\n }\n\n /** Draw the plot geometry (canvas) + the emoji/text markers (their own layer)\n * for a scene — both animate together frame to frame. */\n private paintGeometry(scene: RenderScene, dpr: number): void {\n this.drawGeometry(scene, dpr);\n renderGlyphs(this.glyphLayer, scene.glyphs ?? [], this.theme?.fontFamily);\n renderEndLabels(this.endLabelLayer, scene.endLabels ?? [], this.theme?.fontFamily);\n }\n\n /** Redraw the plot geometry at the current emphasis (hover-focus dimming).\n * Glyphs are unaffected by emphasis, so only the canvas is repainted. */\n private paintEmphasis(): void {\n if (this.scene) this.drawGeometry(emphasizeScene(this.scene, this.emphasisSeries, this.emphasisT), this.lastDpr);\n }\n\n /** Focus a series (dim the rest) with a short MD3 fade; -1 fades everything\n * back. The emphasised series is kept while fading OUT so the others un-dim\n * gradually instead of snapping. */\n private setFocus(idx: number): void {\n const target = idx >= 0 ? 1 : 0;\n const series = idx >= 0 ? idx : this.emphasisSeries; // keep the last series while fading out\n if (target === this.emphasisTarget && series === this.emphasisSeries) return;\n this.emphasisSeries = series;\n this.emphasisTarget = target;\n if (prefersReducedMotion()) {\n cancelAnimationFrame(this.emphasisRaf);\n this.emphasisT = target;\n if (target === 0) this.emphasisSeries = -1;\n this.paintEmphasis();\n return;\n }\n cancelAnimationFrame(this.emphasisRaf);\n let last = 0;\n const step = (now: number): void => {\n if (!last) last = now;\n const dt = now - last;\n last = now;\n const dir = this.emphasisTarget > this.emphasisT ? 1 : -1;\n this.emphasisT += dir * (dt / EMPHASIS_MS);\n if ((dir > 0 && this.emphasisT >= this.emphasisTarget) || (dir < 0 && this.emphasisT <= this.emphasisTarget)) {\n this.emphasisT = this.emphasisTarget;\n if (this.emphasisTarget === 0) this.emphasisSeries = -1; // fully restored → clear\n this.paintEmphasis();\n return;\n }\n this.paintEmphasis();\n this.emphasisRaf = requestAnimationFrame(step);\n };\n this.emphasisRaf = requestAnimationFrame(step);\n }\n\n /** Replay the entry animation from the start (uses the current spec's variant). */\n replay(): void {\n this.hasRendered = false;\n this.render();\n }\n\n private drawGeometry(scene: RenderScene, dpr: number): void {\n if (!this.ctx) return;\n this.ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n drawSceneCanvas(this.ctx, scene);\n }\n\n private playIntro(dpr: number, variant: MdChartAnimation, duration: number): void {\n // Animate in LTR space (the reveals sweep along +x) and mirror each frame.\n const target = this.sceneLtr;\n if (!target) return;\n // A staggered reveal draws each series in turn, so the whole timeline scales\n // with the series count (`duration` is the per-series draw time) — capped so\n // a many-series chart doesn't crawl.\n let dur = duration;\n if (variant === 'stagger') {\n const n = new Set(target.lines.map((l) => l.seriesIndex ?? 0)).size || 1;\n dur = Math.min(duration * n, 5200);\n }\n this.stopIntro();\n // Grow + fade share one layer opacity: `alpha` < 1 fades the canvas (and its\n // glyph overlay) in; an empty string restores the stylesheet default once the\n // entrance settles. draw/stagger report alpha 1, so their layer stays fully\n // opaque and only the geometry animates.\n const setOpacity = (a: number): void => {\n const v = a < 1 ? String(a) : '';\n this.canvas.style.opacity = v;\n this.glyphLayer.style.opacity = v;\n };\n // Draw t=0 NOW rather than waiting for the first frame. Setting the\n // canvas size above cleared it, so deferring the first draw leaves one\n // frame of blank canvas under a DOM overlay that has already painted its\n // labels — the chart appears to blink before it starts.\n const first = stepAnimation(variant, target, 0);\n setOpacity(first.alpha);\n this.drawGeometry(first.scene, dpr);\n let start = 0;\n const frame = (now: number): void => {\n if (!start) start = now;\n const tRaw = (now - start) / dur;\n if (tRaw >= 1) {\n setOpacity(1);\n this.paintGeometry(this.mirrored(target), dpr);\n return;\n }\n const { scene, alpha } = stepAnimation(variant, target, tRaw);\n setOpacity(alpha);\n this.paintGeometry(this.mirrored(scene), dpr);\n this.introRaf = requestAnimationFrame(frame);\n };\n this.introRaf = requestAnimationFrame(frame);\n }\n\n private handlePointerDown = (e: PointerEvent): void => {\n this.downAt = { x: e.clientX, y: e.clientY };\n this.dragged = false;\n };\n\n /**\n * Show the hover UI at a data index without a pointer — the keyboard path.\n *\n * A sighted keyboard user has to see the same crosshair and tooltip a mouse\n * user gets, so this reuses the pointer's own rendering rather than a second\n * presentation. The cursor is taken from the point itself, which is what the\n * tooltip positions against. `-1` clears.\n */\n focusIndex(index: number): void {\n if (!this.scene || !this.spec || !this.theme) return;\n if (index < 0) {\n clearHover(this.hoverLayer);\n this.focus.reset();\n this.setFocus(-1);\n return;\n }\n const inverted = !!this.scene.inverted;\n // Anchor on the topmost series that actually has a point here.\n const pt = this.scene.hoverPoints.map((hp) => hp.byIndex[index]).find(Boolean);\n const pos = this.scene.xPositions[index] ?? 0;\n const cursor = pt ? { x: pt.x, y: pt.y } : { x: inverted ? this.scene.plot.x : pos, y: inverted ? pos : this.scene.plot.y };\n renderHover(\n this.hoverLayer,\n this.scene,\n index,\n this.spec.yFormatter,\n this.theme.fontFamily,\n cursor,\n inverted ? 'horizontal' : 'vertical',\n -1,\n { ...this.hoverOpts, rtl: this.rtl },\n );\n }\n\n private handlePointerMove = (e: PointerEvent): void => {\n // Before the hover guard: a drag has to be recognised even with the hover UI\n // switched off (sparklines), and while the zoom band is being dragged.\n if (this.downAt && Math.hypot(e.clientX - this.downAt.x, e.clientY - this.downAt.y) > DRAG_SLOP) {\n this.dragged = true;\n }\n if (!this.scene || !this.hoverEnabled) return;\n const rect = this.canvas.getBoundingClientRect();\n const px = e.clientX - rect.left;\n const py = e.clientY - rect.top;\n // For an inverted chart the main axis is vertical, so hit-test along y.\n const inverted = !!this.scene.inverted;\n const idx = nearestIndex(this.scene.xPositions, inverted ? py : px);\n if (this.hoverRaf) cancelAnimationFrame(this.hoverRaf);\n this.hoverRaf = requestAnimationFrame(() => {\n this.hoverRaf = 0;\n if (!this.scene || !this.spec || !this.theme) return;\n // Emphasise the series nearest the cursor and fade the others (only worth\n // it with more than one series); the hover highlights fade to match.\n const focus = this.scene.hoverPoints.length > 1 ? this.nearestSeries(px, py) : -1;\n renderHover(this.hoverLayer, this.scene, idx, this.spec.yFormatter, this.theme.fontFamily, { x: px, y: py }, inverted ? 'horizontal' : 'vertical', focus, { ...this.hoverOpts, rtl: this.rtl });\n this.setFocus(focus);\n if (idx !== this.lastHoverIndex) {\n this.lastHoverIndex = idx;\n this.cb.onHover?.(idx);\n }\n });\n };\n\n /**\n * Each visible series' samples as `[main, value]` pixel pairs ordered along\n * the main axis, for the hover-focus distance test. Built once per scene and\n * only when a multi-series chart is actually hovered, so the single-series\n * and never-hovered cases cost nothing. (Integer-keyed records enumerate in\n * ascending numeric order, so `byIndex` is already in main-axis order.)\n */\n private seriesLines(scene: RenderScene): [number, number][][] {\n if (this.focusLines?.scene === scene) return this.focusLines.points;\n const points = seriesSampleLines(scene);\n this.focusLines = { scene, points };\n return points;\n }\n\n /**\n * Series whose drawn line is nearest the cursor, or -1.\n *\n * Distance is to the LINE, not to the sample at the hovered index: series\n * measured at different x (irregular data) mostly have no sample there, and\n * comparing exact samples handed the emphasis to whichever series owned that\n * slot — so it strobed as the pointer moved. The currently emphasised series\n * then holds on unless a rival is clearly nearer ({@link pickFocusSeries}),\n * which is what settles lines running close together.\n */\n private nearestSeries(px: number, py: number): number {\n if (!this.scene) return -1;\n // Emphasis exists to pick one LINE out of several running close together.\n // On a FILLED chart it does something else entirely: it recolours large\n // areas, and with an axis-triggered tooltip — which already lists every\n // series — singling one band out contradicts the card and washes the figure\n // out. So a filled chart on axis trigger emphasises nothing; the crosshair\n // and the card carry the reading. Item trigger is the opposite case: the\n // card names exactly ONE series, and without the highlight there would be\n // nothing to say which band it meant, so there the emphasis is essential.\n if (this.scene.areas.length > 0 && this.hoverOpts.trigger !== 'item') {\n this.focus.reset();\n return -1;\n }\n // The cursor is inside a band, and that band owns it. Distance-to-line is\n // the wrong test there: on a thick stacked band the nearest line is usually\n // the NEIGHBOURING series' edge, so the tooltip named a series the pointer\n // was never over.\n const inArea = areaSeriesAt(this.scene, px, py);\n if (inArea >= 0) {\n // Containment doesn't strobe the way a distance tie does, so it is\n // adopted immediately — but the dwell state still has to follow, or the\n // next move outside the bands inherits a stale focus.\n this.focus.reset();\n return inArea;\n }\n const inverted = !!this.scene.inverted;\n const cursorMain = inverted ? py : px;\n const cursorValue = inverted ? px : py;\n const lines = this.seriesLines(this.scene);\n const candidates = this.scene.hoverPoints.map((hp, i) => ({\n seriesIndex: hp.seriesIndex,\n distance: distanceToLine(lines[i], cursorMain, cursorValue),\n }));\n return this.focus.pick(candidates, now());\n }\n\n private handlePointerLeave = (): void => {\n if (this.hoverRaf) {\n cancelAnimationFrame(this.hoverRaf);\n this.hoverRaf = 0;\n }\n clearHover(this.hoverLayer);\n this.focus.reset(); // next hover adopts a series immediately\n this.setFocus(-1); // restore all series to full emphasis\n if (this.lastHoverIndex !== -1) {\n this.lastHoverIndex = -1;\n this.cb.onHover?.(-1);\n }\n };\n\n /**\n * Resolve a click to the most specific thing under it — mark, then line, then\n * area, then the plot background — and fire that one callback only\n * ({@link hitTestScene} owns the geometry).\n */\n private handleClick = (e: MouseEvent): void => {\n const dragged = this.dragged;\n this.dragged = false;\n this.downAt = null;\n if (!this.scene) return;\n const rect = this.canvas.getBoundingClientRect();\n const px = e.clientX - rect.left;\n const py = e.clientY - rect.top;\n const hit = hitTestScene(this.scene, px, py, this.seriesLines(this.scene));\n if (!hit) return;\n const pe = e as PointerEvent;\n if (hit.kind === 'mark') {\n this.cb.onPointClick?.(hit.seriesIndex, hit.dataIndex, pe);\n return;\n }\n // The plot-wide clicks are the ones a stray drag would spam, so they take\n // the drag guard (a mark click never has — see DRAG_SLOP).\n if (dragged) return;\n if (hit.kind === 'line') this.cb.onLineClick?.(hit.seriesIndex, hit.dataIndex, pe);\n else if (hit.kind === 'area') this.cb.onAreaClick?.(hit.seriesIndex, hit.dataIndex, pe);\n else this.cb.onAxisClick?.(hit.dataIndex, axisSeriesValues(this.scene, hit.dataIndex), pe);\n };\n\n /** Toggle the series' visibility on legend click (ECharts-style built-in\n * behaviour) and forward the resulting state to the consumer. */\n private onLegendToggle = (item: LegendItem): void => {\n if (this.spec) {\n this.spec.series[item.seriesIndex].hidden = !this.spec.series[item.seriesIndex].hidden;\n // Re-play the entry motion so the chart animates into its new\n // configuration (respects the variant + reduced-motion / 'none').\n this.hasRendered = false;\n this.render();\n this.cb.onLegendClick?.({ ...item, hidden: this.spec.series[item.seriesIndex].hidden });\n } else {\n this.cb.onLegendClick?.(item);\n }\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chart-ByIhkqsG.js","sources":["src/utils/charts/engine/chart.ts"],"sourcesContent":["/*\n * Chart engine — LineChartEngine\n * ===========================================================\n * The instance that replaces the ECharts object. Owns a plot\n * <canvas> + a DOM overlay layer inside the host's canvas box,\n * and runs the render pipeline: spec + theme + size →\n * computeLayout → draw geometry + sync the text/legend overlay. Exposes\n * setSpec / resize / dispose and a legend-toggle + hover callback,\n * mirroring the surface md-line-chart needs.\n * ===========================================================\n */\n\nimport { computeLayout, type EngineTheme, type LineChartSpec } from './layout';\nimport { drawSceneCanvas } from './renderer-canvas';\nimport { syncOverlay, renderGlyphs, renderEndLabels } from './overlay';\nimport { clearHover, renderHover, type HoverOptions } from './hover';\nimport { watchDevicePixelRatio, type DprWatcher } from './dpr';\nimport { resolveIntro, stepAnimation, prefersReducedMotion } from './animate';\n\n/** Monotonic ms, for the hover-focus dwell. */\nconst now = (): number => (typeof performance !== 'undefined' ? performance.now() : Date.now());\nimport { distanceToLine, emphasizeScene, HoverFocus, EMPHASIS_MS } from './emphasis';\nimport { axisSeriesValues, hitTestScene, nearestIndex, seriesSampleLines, type AxisSeriesValue, areaSeriesAt } from './hit-test';\nimport { isRtl, mirrorScene, watchDirection, type DirectionWatcher } from './rtl';\nimport type { MdChartAnimation } from '../types';\nimport type { LegendItem, RenderScene } from './scene';\n\nexport interface EngineCallbacks {\n onLegendClick?: (item: LegendItem) => void;\n /** Fires with the nearest category index as the pointer moves (or -1 on leave). */\n onHover?: (dataIndex: number) => void;\n /** Fires when a data point is clicked (nearest series + index). */\n onPointClick?: (seriesIndex: number, dataIndex: number, e: PointerEvent) => void;\n /** Fires when a series' drawn LINE is clicked away from its data points. */\n onLineClick?: (seriesIndex: number, dataIndex: number, e: PointerEvent) => void;\n /** Fires when a series' filled AREA is clicked (not its line or its points). */\n onAreaClick?: (seriesIndex: number, dataIndex: number, e: PointerEvent) => void;\n /** Fires when the plot background is clicked: the nearest x index plus every\n * visible series' value there. */\n onAxisClick?: (dataIndex: number, values: AxisSeriesValue[], e: PointerEvent) => void;\n}\n\n/**\n * How far (px) the pointer may travel between press and release for the release\n * to still count as a click on the plot. Anything further is a gesture (the\n * drag-to-zoom band, a slider pan), and the background / line / area clicks stay\n * quiet. Matches the same threshold md-line-chart uses to tell a stray drag from\n * a click. A MARK click is exempt — that behaviour predates this and is public.\n */\nconst DRAG_SLOP = 8;\n\nexport class LineChartEngine {\n private canvas: HTMLCanvasElement;\n private overlay: HTMLDivElement;\n /** Legend lives here: same box, but NOT clipped, so a focus ring keeps its\n * outer pixels where the legend hugs the plot edge. */\n private legendLayer: HTMLDivElement;\n private glyphLayer: HTMLDivElement;\n private endLabelLayer: HTMLDivElement;\n private hoverLayer: HTMLDivElement;\n private ctx: CanvasRenderingContext2D | null = null;\n private spec: LineChartSpec | null = null;\n private theme: EngineTheme | null = null;\n private scene: RenderScene | null = null;\n private cb: EngineCallbacks = {};\n private hoverRaf = 0;\n private lastHoverIndex = -2;\n private hoverEnabled = true;\n private hoverOpts: HoverOptions = {};\n private hasRendered = false;\n private introRaf = 0;\n private lastW = 0;\n private lastH = 0;\n private lastDpr = 1;\n // Hover emphasis: the series kept vivid (persists through the fade-out so the\n // others un-dim gradually) + the animated dim factor (0 none → 1 full).\n private emphasisSeries = -1;\n private emphasisT = 0;\n private emphasisTarget = 0;\n private emphasisRaf = 0;\n /** Per-scene cache for {@link seriesLines}. */\n private focusLines: { scene: RenderScene; points: [number, number][][] } | null = null;\n /** Picks which series the hover emphasises, and keeps that choice steady. */\n private focus = new HoverFocus();\n /** Where the pointer went down, and whether it has since travelled far enough\n * to make the coming click the end of a drag rather than a click. */\n private downAt: { x: number; y: number } | null = null;\n private dragged = false;\n /** Host is laid out right-to-left — the finished scene is mirrored. */\n private rtl = false;\n /** The scene BEFORE mirroring, for the +x-sweeping intro animations. */\n private sceneLtr: RenderScene | null = null;\n private dprWatch: DprWatcher = watchDevicePixelRatio(() => this.render());\n /** Re-render when the page (or an ancestor) flips direction — but only if\n * THIS chart's own computed direction actually changed. */\n private dirWatch: DirectionWatcher = watchDirection(() => {\n if (isRtl(this.container) !== this.rtl) this.render();\n });\n\n constructor(private container: HTMLElement) {\n // Host provides a positioned box; layer the canvas + overlay in it.\n if (getComputedStyle(container).position === 'static') container.style.position = 'relative';\n\n this.canvas = document.createElement('canvas');\n this.canvas.style.cssText = 'position:absolute;inset:0;width:100%;height:100%;display:block';\n this.canvas.setAttribute('part', 'plot-canvas');\n\n this.overlay = document.createElement('div');\n this.overlay.style.cssText = 'position:absolute;inset:0;pointer-events:none;overflow:hidden';\n\n this.legendLayer = document.createElement('div');\n this.legendLayer.style.cssText = 'position:absolute;inset:0;pointer-events:none;overflow:visible';\n\n // Emoji / text markers get their own layer so they can rise / reveal / fade\n // with the data geometry each animation frame (the static overlay above is\n // only synced once per render).\n this.glyphLayer = document.createElement('div');\n this.glyphLayer.style.cssText = 'position:absolute;inset:0;pointer-events:none;overflow:hidden';\n\n // End-of-line series labels live in their own PERSISTENT layer (not cleared\n // each frame) so they can fade in/out on collision via a CSS transition.\n this.endLabelLayer = document.createElement('div');\n this.endLabelLayer.style.cssText = 'position:absolute;inset:0;pointer-events:none;overflow:hidden';\n\n // Hover UI (crosshair + tooltip) sits above the static overlay so it\n // updates on pointermove without re-syncing the labels/legend.\n this.hoverLayer = document.createElement('div');\n this.hoverLayer.style.cssText = 'position:absolute;inset:0;pointer-events:none;overflow:hidden';\n\n container.append(this.canvas, this.overlay, this.legendLayer, this.glyphLayer, this.endLabelLayer, this.hoverLayer);\n\n this.ctx = this.canvas.getContext('2d');\n\n this.canvas.addEventListener('pointerdown', this.handlePointerDown);\n this.canvas.addEventListener('pointermove', this.handlePointerMove);\n this.canvas.addEventListener('pointerleave', this.handlePointerLeave);\n this.canvas.addEventListener('click', this.handleClick);\n }\n\n /** The current render scene — for diagnostics/tests. */\n getScene(): RenderScene | null {\n return this.scene;\n }\n\n /** Enable/disable the hover crosshair + tooltip (sparkline `show-tooltip`). */\n setHoverEnabled(enabled: boolean): void {\n this.hoverEnabled = enabled;\n if (!enabled) clearHover(this.hoverLayer);\n }\n\n /**\n * Install the tooltip extras: a developer's content renderer and/or the\n * formatter consulted for a series with no value at the hovered x. Presentation\n * only — it deliberately does NOT go through `setSpec`, so swapping the\n * renderer never re-runs layout.\n */\n setTooltip(opts: HoverOptions): void {\n this.hoverOpts = opts;\n }\n\n\n\n setSpec(spec: LineChartSpec, theme: EngineTheme, cb: EngineCallbacks = {}): void {\n this.spec = spec;\n this.theme = theme;\n this.cb = cb;\n // The series set may have changed — drop any stale hover focus.\n cancelAnimationFrame(this.emphasisRaf);\n this.focus.reset();\n this.emphasisSeries = -1;\n this.emphasisT = 0;\n this.emphasisTarget = 0;\n this.render();\n }\n\n resize(): void {\n // A ResizeObserver fires an initial callback right after observe() with the\n // same size the first render already used. Re-rendering there would draw the\n // static final geometry and cancel the just-scheduled intro animation (RO\n // delivery runs before rAF in the frame), so skip when size is unchanged.\n const rect = this.container.getBoundingClientRect();\n if (Math.round(rect.width) === this.lastW && Math.round(rect.height) === this.lastH) return;\n this.render();\n }\n\n /** Current frame as a data URL (for toDataURL export). */\n toDataURL(type = 'image/png'): string {\n // Guard for canvases that can't export (mock-doc / SSR): return '' rather\n // than throwing, so the host's toDataURL() degrades gracefully.\n return typeof this.canvas.toDataURL === 'function' ? this.canvas.toDataURL(type) : '';\n }\n\n dispose(): void {\n if (this.hoverRaf) cancelAnimationFrame(this.hoverRaf);\n // stopIntro rather than a bare cancel. Nothing depends on the clear here —\n // dispose() removes the canvas a few lines down — but routing EVERY cancel\n // of introRaf through stopIntro is what makes the invariant hold: the\n // inline opacity is only ever non-empty while the entrance loop is live.\n // The bug this fixes was one cancel site that forgot the clear.\n this.stopIntro();\n cancelAnimationFrame(this.emphasisRaf);\n this.canvas.removeEventListener('pointerdown', this.handlePointerDown);\n this.canvas.removeEventListener('pointermove', this.handlePointerMove);\n this.canvas.removeEventListener('pointerleave', this.handlePointerLeave);\n this.canvas.removeEventListener('click', this.handleClick);\n this.dprWatch.dispose();\n this.dirWatch.dispose();\n this.canvas.remove();\n this.overlay.remove();\n this.glyphLayer.remove();\n this.endLabelLayer.remove();\n this.hoverLayer.remove();\n this.spec = null;\n this.scene = null;\n this.sceneLtr = null;\n }\n\n private render(): void {\n if (!this.spec || !this.theme) return;\n this.dprWatch.update();\n const rect = this.container.getBoundingClientRect();\n const w = Math.round(rect.width);\n const h = Math.round(rect.height);\n if (w < 2 || h < 2) return; // not laid out yet — ResizeObserver retries\n this.lastW = w;\n this.lastH = h;\n\n // Cap the backing-store scale for perf; 4 keeps lines crisp through ~200%\n // browser zoom on a 2x display (the dpr watcher re-renders on zoom).\n const dpr = Math.min(window.devicePixelRatio || 1, 4);\n this.lastDpr = dpr;\n this.canvas.width = w * dpr;\n this.canvas.height = h * dpr;\n\n // Layout always runs left-to-right; an RTL host gets the finished frame\n // mirrored (see rtl.ts), so no part of the geometry pipeline needs to know.\n // The un-mirrored scene is kept because the intro animations sweep along +x\n // (`draw` reveals by a moving cutX) — they run in that space and each frame\n // is mirrored on its way to the canvas, so the reveal follows the reading\n // direction instead of running backwards.\n this.rtl = isRtl(this.container);\n const layout = (): RenderScene => {\n this.sceneLtr = computeLayout(this.spec!, this.theme!, w, h);\n return this.mirrored(this.sceneLtr);\n };\n\n this.scene = layout();\n // Chrome (axes, gridlines, labels, legend) is static — sync it once; only\n // the data geometry animates on the first render.\n syncOverlay(this.overlay, this.scene, this.theme.fontFamily, { onLegendClick: this.onLegendToggle }, this.rtl, this.legendLayer);\n // Two-pass legend: a wrapped legend's real extent isn't known until it's in\n // the DOM. Re-reserve the gutter to its measured height/width and re-lay-out\n // so a many-series legend never spills onto the plot.\n const legendEl = this.overlay.querySelector('[part=\"legend\"]') as HTMLElement | null;\n if (legendEl && this.spec.legend && this.spec.legend !== 'none') {\n const side = this.spec.legend === 'left' || this.spec.legend === 'right';\n const extent = side ? legendEl.offsetWidth : legendEl.offsetHeight;\n if (extent > 0 && Math.abs((this.spec.legendExtent ?? -1) - extent) > 2) {\n this.spec.legendExtent = extent;\n this.scene = layout();\n syncOverlay(this.overlay, this.scene, this.theme.fontFamily, { onLegendClick: this.onLegendToggle }, this.rtl, this.legendLayer);\n }\n }\n const { variant, duration } = resolveIntro(this.spec);\n const animate = !this.hasRendered && variant !== 'none' && !prefersReducedMotion();\n // An EMPTY scene is not a chart that has been shown: a host that hydrates\n // before its data lands renders once with no series, and treating that as\n // the first render spent the entrance on nothing — the real data then\n // arrived un-animated. The first render with geometry owns the entrance.\n const hasContent = this.sceneLtr\n ? this.sceneLtr.lines.length > 0 || this.sceneLtr.areas.length > 0 || this.sceneLtr.markers.length > 0\n : false;\n if (animate) {\n this.hasRendered = hasContent;\n this.playIntro(dpr, variant, duration);\n return;\n }\n this.hasRendered = this.hasRendered || hasContent;\n this.stopIntro();\n // Preserve any active hover emphasis across non-hover re-renders.\n this.paintGeometry(emphasizeScene(this.scene, this.emphasisSeries, this.emphasisT), dpr);\n }\n\n /**\n * Clear the inline opacity the entrance fades the layers in with.\n *\n * The entrance is the ONLY writer of it, and the loop's terminal frame the\n * only thing that clears it — so any path that ends the entrance early must\n * undo it here, or the chart is left drawn into a canvas pinned at\n * `opacity: 0` with nothing left to write style again.\n */\n private clearIntroOpacity(): void {\n this.canvas.style.opacity = '';\n this.glyphLayer.style.opacity = '';\n }\n\n /** End the entrance loop AND undo the fade it applied. Use this instead of a\n * bare `cancelAnimationFrame(this.introRaf)` outside the loop itself. */\n private stopIntro(): void {\n cancelAnimationFrame(this.introRaf);\n this.introRaf = 0;\n this.clearIntroOpacity();\n }\n\n /** A scene as it should reach the canvas: mirrored on an RTL host. */\n private mirrored(scene: RenderScene): RenderScene {\n return this.rtl ? mirrorScene(scene) : scene;\n }\n\n /** Draw the plot geometry (canvas) + the emoji/text markers (their own layer)\n * for a scene — both animate together frame to frame. */\n private paintGeometry(scene: RenderScene, dpr: number): void {\n this.drawGeometry(scene, dpr);\n renderGlyphs(this.glyphLayer, scene.glyphs ?? [], this.theme?.fontFamily);\n renderEndLabels(this.endLabelLayer, scene.endLabels ?? [], this.theme?.fontFamily);\n }\n\n /** Redraw the plot geometry at the current emphasis (hover-focus dimming).\n * Glyphs are unaffected by emphasis, so only the canvas is repainted. */\n private paintEmphasis(): void {\n if (this.scene) this.drawGeometry(emphasizeScene(this.scene, this.emphasisSeries, this.emphasisT), this.lastDpr);\n }\n\n /** Focus a series (dim the rest) with a short MD3 fade; -1 fades everything\n * back. The emphasised series is kept while fading OUT so the others un-dim\n * gradually instead of snapping. */\n private setFocus(idx: number): void {\n const target = idx >= 0 ? 1 : 0;\n const series = idx >= 0 ? idx : this.emphasisSeries; // keep the last series while fading out\n if (target === this.emphasisTarget && series === this.emphasisSeries) return;\n this.emphasisSeries = series;\n this.emphasisTarget = target;\n if (prefersReducedMotion()) {\n cancelAnimationFrame(this.emphasisRaf);\n this.emphasisT = target;\n if (target === 0) this.emphasisSeries = -1;\n this.paintEmphasis();\n return;\n }\n cancelAnimationFrame(this.emphasisRaf);\n let last = 0;\n const step = (now: number): void => {\n if (!last) last = now;\n const dt = now - last;\n last = now;\n const dir = this.emphasisTarget > this.emphasisT ? 1 : -1;\n this.emphasisT += dir * (dt / EMPHASIS_MS);\n if ((dir > 0 && this.emphasisT >= this.emphasisTarget) || (dir < 0 && this.emphasisT <= this.emphasisTarget)) {\n this.emphasisT = this.emphasisTarget;\n if (this.emphasisTarget === 0) this.emphasisSeries = -1; // fully restored → clear\n this.paintEmphasis();\n return;\n }\n this.paintEmphasis();\n this.emphasisRaf = requestAnimationFrame(step);\n };\n this.emphasisRaf = requestAnimationFrame(step);\n }\n\n /** Replay the entry animation from the start (uses the current spec's variant). */\n replay(): void {\n this.hasRendered = false;\n this.render();\n }\n\n private drawGeometry(scene: RenderScene, dpr: number): void {\n if (!this.ctx) return;\n this.ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n drawSceneCanvas(this.ctx, scene);\n }\n\n private playIntro(dpr: number, variant: MdChartAnimation, duration: number): void {\n // Animate in LTR space (the reveals sweep along +x) and mirror each frame.\n const target = this.sceneLtr;\n if (!target) return;\n // A staggered reveal draws each series in turn, so the whole timeline scales\n // with the series count (`duration` is the per-series draw time) — capped so\n // a many-series chart doesn't crawl.\n let dur = duration;\n if (variant === 'stagger') {\n const n = new Set(target.lines.map((l) => l.seriesIndex ?? 0)).size || 1;\n dur = Math.min(duration * n, 5200);\n }\n this.stopIntro();\n // Grow + fade share one layer opacity: `alpha` < 1 fades the canvas (and its\n // glyph overlay) in; an empty string restores the stylesheet default once the\n // entrance settles. draw/stagger report alpha 1, so their layer stays fully\n // opaque and only the geometry animates.\n const setOpacity = (a: number): void => {\n const v = a < 1 ? String(a) : '';\n this.canvas.style.opacity = v;\n this.glyphLayer.style.opacity = v;\n };\n // Draw t=0 NOW rather than waiting for the first frame. Setting the\n // canvas size above cleared it, so deferring the first draw leaves one\n // frame of blank canvas under a DOM overlay that has already painted its\n // labels — the chart appears to blink before it starts.\n const first = stepAnimation(variant, target, 0);\n setOpacity(first.alpha);\n this.drawGeometry(first.scene, dpr);\n let start = 0;\n const frame = (now: number): void => {\n if (!start) start = now;\n const tRaw = (now - start) / dur;\n if (tRaw >= 1) {\n setOpacity(1);\n this.paintGeometry(this.mirrored(target), dpr);\n return;\n }\n const { scene, alpha } = stepAnimation(variant, target, tRaw);\n setOpacity(alpha);\n this.paintGeometry(this.mirrored(scene), dpr);\n this.introRaf = requestAnimationFrame(frame);\n };\n this.introRaf = requestAnimationFrame(frame);\n }\n\n private handlePointerDown = (e: PointerEvent): void => {\n this.downAt = { x: e.clientX, y: e.clientY };\n this.dragged = false;\n };\n\n /**\n * Show the hover UI at a data index without a pointer — the keyboard path.\n *\n * A sighted keyboard user has to see the same crosshair and tooltip a mouse\n * user gets, so this reuses the pointer's own rendering rather than a second\n * presentation. The cursor is taken from the point itself, which is what the\n * tooltip positions against. `-1` clears.\n */\n focusIndex(index: number): void {\n if (!this.scene || !this.spec || !this.theme) return;\n if (index < 0) {\n clearHover(this.hoverLayer);\n this.focus.reset();\n this.setFocus(-1);\n return;\n }\n const inverted = !!this.scene.inverted;\n // Anchor on the topmost series that actually has a point here.\n const pt = this.scene.hoverPoints.map((hp) => hp.byIndex[index]).find(Boolean);\n const pos = this.scene.xPositions[index] ?? 0;\n const cursor = pt ? { x: pt.x, y: pt.y } : { x: inverted ? this.scene.plot.x : pos, y: inverted ? pos : this.scene.plot.y };\n renderHover(\n this.hoverLayer,\n this.scene,\n index,\n this.spec.yFormatter,\n this.theme.fontFamily,\n cursor,\n inverted ? 'horizontal' : 'vertical',\n -1,\n { ...this.hoverOpts, rtl: this.rtl },\n );\n }\n\n private handlePointerMove = (e: PointerEvent): void => {\n // Before the hover guard: a drag has to be recognised even with the hover UI\n // switched off (sparklines), and while the zoom band is being dragged.\n if (this.downAt && Math.hypot(e.clientX - this.downAt.x, e.clientY - this.downAt.y) > DRAG_SLOP) {\n this.dragged = true;\n }\n if (!this.scene || !this.hoverEnabled) return;\n const rect = this.canvas.getBoundingClientRect();\n const px = e.clientX - rect.left;\n const py = e.clientY - rect.top;\n // For an inverted chart the main axis is vertical, so hit-test along y.\n const inverted = !!this.scene.inverted;\n const idx = nearestIndex(this.scene.xPositions, inverted ? py : px);\n if (this.hoverRaf) cancelAnimationFrame(this.hoverRaf);\n this.hoverRaf = requestAnimationFrame(() => {\n this.hoverRaf = 0;\n if (!this.scene || !this.spec || !this.theme) return;\n // Emphasise the series nearest the cursor and fade the others (only worth\n // it with more than one series); the hover highlights fade to match.\n const focus = this.scene.hoverPoints.length > 1 ? this.nearestSeries(px, py) : -1;\n renderHover(this.hoverLayer, this.scene, idx, this.spec.yFormatter, this.theme.fontFamily, { x: px, y: py }, inverted ? 'horizontal' : 'vertical', focus, { ...this.hoverOpts, rtl: this.rtl });\n this.setFocus(focus);\n if (idx !== this.lastHoverIndex) {\n this.lastHoverIndex = idx;\n this.cb.onHover?.(idx);\n }\n });\n };\n\n /**\n * Each visible series' samples as `[main, value]` pixel pairs ordered along\n * the main axis, for the hover-focus distance test. Built once per scene and\n * only when a multi-series chart is actually hovered, so the single-series\n * and never-hovered cases cost nothing. (Integer-keyed records enumerate in\n * ascending numeric order, so `byIndex` is already in main-axis order.)\n */\n private seriesLines(scene: RenderScene): [number, number][][] {\n if (this.focusLines?.scene === scene) return this.focusLines.points;\n const points = seriesSampleLines(scene);\n this.focusLines = { scene, points };\n return points;\n }\n\n /**\n * Series whose drawn line is nearest the cursor, or -1.\n *\n * Distance is to the LINE, not to the sample at the hovered index: series\n * measured at different x (irregular data) mostly have no sample there, and\n * comparing exact samples handed the emphasis to whichever series owned that\n * slot — so it strobed as the pointer moved. The currently emphasised series\n * then holds on unless a rival is clearly nearer ({@link pickFocusSeries}),\n * which is what settles lines running close together.\n */\n private nearestSeries(px: number, py: number): number {\n if (!this.scene) return -1;\n // Emphasis exists to pick one LINE out of several running close together.\n // On a FILLED chart it does something else entirely: it recolours large\n // areas, and with an axis-triggered tooltip — which already lists every\n // series — singling one band out contradicts the card and washes the figure\n // out. So a filled chart on axis trigger emphasises nothing; the crosshair\n // and the card carry the reading. Item trigger is the opposite case: the\n // card names exactly ONE series, and without the highlight there would be\n // nothing to say which band it meant, so there the emphasis is essential.\n if (this.scene.areas.length > 0 && this.hoverOpts.trigger !== 'item') {\n this.focus.reset();\n return -1;\n }\n // The cursor is inside a band, and that band owns it. Distance-to-line is\n // the wrong test there: on a thick stacked band the nearest line is usually\n // the NEIGHBOURING series' edge, so the tooltip named a series the pointer\n // was never over.\n const inArea = areaSeriesAt(this.scene, px, py);\n if (inArea >= 0) {\n // Containment doesn't strobe the way a distance tie does, so it is\n // adopted immediately — but the dwell state still has to follow, or the\n // next move outside the bands inherits a stale focus.\n this.focus.reset();\n return inArea;\n }\n const inverted = !!this.scene.inverted;\n const cursorMain = inverted ? py : px;\n const cursorValue = inverted ? px : py;\n const lines = this.seriesLines(this.scene);\n const candidates = this.scene.hoverPoints.map((hp, i) => ({\n seriesIndex: hp.seriesIndex,\n distance: distanceToLine(lines[i], cursorMain, cursorValue),\n }));\n return this.focus.pick(candidates, now());\n }\n\n private handlePointerLeave = (): void => {\n if (this.hoverRaf) {\n cancelAnimationFrame(this.hoverRaf);\n this.hoverRaf = 0;\n }\n clearHover(this.hoverLayer);\n this.focus.reset(); // next hover adopts a series immediately\n this.setFocus(-1); // restore all series to full emphasis\n if (this.lastHoverIndex !== -1) {\n this.lastHoverIndex = -1;\n this.cb.onHover?.(-1);\n }\n };\n\n /**\n * Resolve a click to the most specific thing under it — mark, then line, then\n * area, then the plot background — and fire that one callback only\n * ({@link hitTestScene} owns the geometry).\n */\n private handleClick = (e: MouseEvent): void => {\n const dragged = this.dragged;\n this.dragged = false;\n this.downAt = null;\n if (!this.scene) return;\n const rect = this.canvas.getBoundingClientRect();\n const px = e.clientX - rect.left;\n const py = e.clientY - rect.top;\n const hit = hitTestScene(this.scene, px, py, this.seriesLines(this.scene));\n if (!hit) return;\n const pe = e as PointerEvent;\n if (hit.kind === 'mark') {\n this.cb.onPointClick?.(hit.seriesIndex, hit.dataIndex, pe);\n return;\n }\n // The plot-wide clicks are the ones a stray drag would spam, so they take\n // the drag guard (a mark click never has — see DRAG_SLOP).\n if (dragged) return;\n if (hit.kind === 'line') this.cb.onLineClick?.(hit.seriesIndex, hit.dataIndex, pe);\n else if (hit.kind === 'area') this.cb.onAreaClick?.(hit.seriesIndex, hit.dataIndex, pe);\n else this.cb.onAxisClick?.(hit.dataIndex, axisSeriesValues(this.scene, hit.dataIndex), pe);\n };\n\n /** Toggle the series' visibility on legend click (ECharts-style built-in\n * behaviour) and forward the resulting state to the consumer. */\n private onLegendToggle = (item: LegendItem): void => {\n if (this.spec) {\n this.spec.series[item.seriesIndex].hidden = !this.spec.series[item.seriesIndex].hidden;\n // Re-play the entry motion so the chart animates into its new\n // configuration (respects the variant + reduced-motion / 'none').\n this.hasRendered = false;\n this.render();\n this.cb.onLegendClick?.({ ...item, hidden: this.spec.series[item.seriesIndex].hidden });\n } else {\n this.cb.onLegendClick?.(item);\n }\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ // GENERATED by scripts/build-wasm.mjs — DO NOT EDIT.
2
+ // Source: packages/core/src/wasm/engine.ts
3
+ // Regenerate with: pnpm --filter @awc-ui/core build:wasm
4
+ /* eslint-disable */
5
+ const WASM_BASE64 = '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';
6
+
7
+ export { WASM_BASE64 };
8
+ //# sourceMappingURL=engine.wasm-CfBPnYW7.js.map
9
+
10
+ //# sourceMappingURL=engine.wasm-CfBPnYW7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.wasm-CfBPnYW7.js","sources":["src/wasm/engine.wasm.ts"],"sourcesContent":["// GENERATED by scripts/build-wasm.mjs — DO NOT EDIT.\n// Source: packages/core/src/wasm/engine.ts\n// Regenerate with: pnpm --filter @awc-ui/core build:wasm\n/* eslint-disable */\nexport const WASM_BASE64 =\n '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';\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACO,MAAM,WAAW,GACtB;;;;"}
@@ -1,4 +1,4 @@
1
- import { q as withAlpha, u as ascending } from './rtl-DvOKnoqK.js';
1
+ import { q as withAlpha, u as ascending } from './rtl-CVFH1DkU.js';
2
2
 
3
3
  /*
4
4
  * Chart engine — hover emphasis
@@ -364,6 +364,6 @@ function hitTestScene(scene, px, py, lines = seriesSampleLines(scene)) {
364
364
  }
365
365
 
366
366
  export { EMPHASIS_MS as E, HoverFocus as H, axisSeriesValues as a, areaSeriesAt as b, distanceToLine as d, emphasizeScene as e, hitTestScene as h, nearestIndex as n, seriesSampleLines as s };
367
- //# sourceMappingURL=hit-test-DHldf5Lm.js.map
367
+ //# sourceMappingURL=hit-test-c_hI-yCX.js.map
368
368
 
369
- //# sourceMappingURL=hit-test-DHldf5Lm.js.map
369
+ //# sourceMappingURL=hit-test-c_hI-yCX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hit-test-DHldf5Lm.js","sources":["src/utils/charts/engine/emphasis.ts","src/utils/charts/engine/hit-test.ts"],"sourcesContent":["/*\n * Chart engine — hover emphasis\n * ===========================================================\n * When the pointer is near one series, that series stays vivid and\n * the others fade back so the focused line reads clearly. A pure\n * scene→scene transform (like animate.ts) so both renderer backends\n * dim identically; the engine animates the `t` factor over a short\n * MD3 transition and redraws emphasizeScene(scene, focus, t).\n * ===========================================================\n */\n\nimport { withAlpha } from './color';\nimport type { RenderScene } from './scene';\n\n/** How faded a non-focused series gets at full emphasis (alpha multiplier). */\nconst DIM = 0.22;\n/** Emphasis fade duration in ms. */\nexport const EMPHASIS_MS = 260;\n\n/**\n * How much nearer (px) a rival series must be before the emphasis leaves the\n * series it is on. Sized just under a typical \"close lines\" gap: enough of a\n * deadband to stop the two trading focus at their midpoint, small enough that\n * moving onto the other line still takes the focus with it.\n */\nexport const FOCUS_STICK = 4;\n\n/**\n * How far the cursor is (px) from a series' drawn line.\n *\n * `points` are that series' samples as `[main, value]` pixel pairs ordered\n * along the main axis (x for a normal chart, y for an inverted one). The line\n * is interpolated between the two samples bracketing the cursor, which is what\n * makes this work for series sampled at *different* x: with irregular data a\n * series usually has no sample exactly at the hovered position, and comparing\n * only exact samples hands the emphasis to whichever series happens to own\n * that slot. Past either end of the series the distance is measured to its\n * endpoint, so a line that has already finished reads as far away.\n */\nexport function distanceToLine(\n points: readonly (readonly [number, number])[],\n cursorMain: number,\n cursorValue: number,\n): number {\n const n = points.length;\n if (!n) return Infinity;\n const first = points[0];\n const last = points[n - 1];\n if (cursorMain <= first[0]) return Math.hypot(first[0] - cursorMain, first[1] - cursorValue);\n if (cursorMain >= last[0]) return Math.hypot(last[0] - cursorMain, last[1] - cursorValue);\n let lo = 0;\n let hi = n - 1;\n while (hi - lo > 1) {\n const mid = (lo + hi) >> 1;\n if (points[mid][0] <= cursorMain) lo = mid;\n else hi = mid;\n }\n const [aMain, aValue] = points[lo];\n const [bMain, bValue] = points[hi];\n const t = bMain === aMain ? 0 : (cursorMain - aMain) / (bMain - aMain);\n return Math.abs(aValue + (bValue - aValue) * t - cursorValue);\n}\n\n/**\n * Which series the hover should emphasise, given each candidate's distance to\n * the cursor and the one currently held (`-1` for none).\n *\n * Plain \"nearest wins\" flickers: between two lines a few pixels apart the\n * winner flips on every pointer move, and because the emphasis is already\n * fully faded in, each flip swaps vivid and dimmed instantly. Holding the\n * current series until a rival is clearly nearer turns the midpoint into a\n * deadband. A held series that isn't a candidate any more (it was hidden, or\n * the pointer left the plot) has no distance, so the focus moves on.\n */\nexport function pickFocusSeries(\n candidates: readonly { seriesIndex: number; distance: number }[],\n held: number,\n stick: number = FOCUS_STICK,\n): number {\n let best = -1;\n let bestD = Infinity;\n let heldD = Infinity;\n for (const c of candidates) {\n if (c.seriesIndex === held) heldD = c.distance;\n if (c.distance < bestD) {\n bestD = c.distance;\n best = c.seriesIndex;\n }\n }\n if (held >= 0 && bestD > heldD - stick) return held;\n return best;\n}\n\n/**\n * How long (ms) a rival has to stay the nearest before the emphasis moves to\n * it. The px deadband alone can't settle two lines running close together: a\n * hand held roughly still while the lines wander across the cursor makes the\n * nearest genuinely alternate, by the full gap each time. Requiring the rival\n * to *stay* nearest ignores that alternation while still following a\n * deliberate move onto the other line within a frame or three.\n */\nexport const FOCUS_DWELL_MS = 140;\n\n/**\n * Chooses the emphasised series over time: {@link pickFocusSeries} for the\n * geometry, plus a dwell so a contested choice has to settle before it moves.\n *\n * Owns the held series, so the engine just feeds it distances and a clock.\n */\nexport class HoverFocus {\n private held = -1;\n private candidate = -1;\n private since = 0;\n\n constructor(\n private readonly stick: number = FOCUS_STICK,\n private readonly dwellMs: number = FOCUS_DWELL_MS,\n ) {}\n\n /** The series to emphasise now, given each one's distance to the cursor. */\n pick(candidates: readonly { seriesIndex: number; distance: number }[], now: number): number {\n const wanted = pickFocusSeries(candidates, this.held, this.stick);\n if (wanted !== this.candidate) {\n this.candidate = wanted;\n this.since = now;\n }\n // Nothing focused yet (first hover, or after the pointer left): adopt\n // immediately, so arriving on a line reads as instant.\n if (this.held < 0) {\n this.held = wanted;\n } else if (wanted !== this.held && now - this.since >= this.dwellMs) {\n this.held = wanted;\n }\n return this.held;\n }\n\n /** Pointer left the plot, or the scene changed — drop the held series. */\n reset(): void {\n this.held = -1;\n this.candidate = -1;\n this.since = 0;\n }\n}\n\n/**\n * The scene with every series except `focusIndex` dimmed by progress `t`\n * (0 = no dimming, 1 = fully faded). Glyph markers and chrome are untouched.\n * Series without an index are treated as focused (never dimmed).\n */\nexport function emphasizeScene(scene: RenderScene, focusIndex: number, t: number): RenderScene {\n if (focusIndex < 0 || t <= 0) return scene;\n const factor = 1 - (1 - DIM) * Math.min(1, t);\n const dim = (si: number | undefined): boolean => si != null && si !== focusIndex;\n return {\n ...scene,\n lines: scene.lines.map((l) => (dim(l.seriesIndex) ? { ...l, color: withAlpha(l.color, factor) } : l)),\n areas: scene.areas.map((a) =>\n dim(a.seriesIndex) ? { ...a, colorTop: withAlpha(a.colorTop, factor), colorBottom: withAlpha(a.colorBottom, factor) } : a,\n ),\n markers: scene.markers.map((m) => (dim(m.seriesIndex) ? { ...m, color: withAlpha(m.color, factor) } : m)),\n };\n}\n","/*\n * Chart engine — click hit-testing\n * ===========================================================\n * Turns a pointer position over a rendered scene into the most\n * specific thing under it: a data mark, a series line, a filled\n * area, or the plot background (an \"axis\" click). Pure functions\n * over the RenderScene, so the precedence rule is unit-testable\n * without a canvas — the engine only maps the result onto its\n * callbacks.\n * ===========================================================\n */\n\nimport { distanceToLine } from './emphasis';\nimport type { Pt } from './geometry';\nimport { ascending } from './rtl';\nimport type { RenderScene, Rect, SceneArea } from './scene';\n\n/**\n * Max cursor→point distance (px) for a click to count as a mark click.\n * Deliberately generous: a mark is the thing consumers most want to catch, and\n * at this radius a click anywhere in a fingertip-sized region around the point\n * still lands on it.\n */\nexport const MARK_HIT_RADIUS = 26;\n\n/**\n * Max cursor→line distance (px) for a click to count as a line click.\n *\n * The stroke is 2.5px wide (±1.25px from the centreline), so this leaves ~6.75px\n * of pointer slop on either side — comfortable for an imprecise mouse without\n * reaching so far into the fill below that \"clicked the area just under the\n * line\" gets stolen by the line. It also absorbs the small error in\n * {@link distanceToLine}, which measures against the straight segment between\n * two samples while a `smooth` curve bows a little away from it.\n */\nexport const LINE_HIT_TOLERANCE = 8;\n\n/** What sits under the pointer, most specific first. */\nexport type SceneHit =\n | { kind: 'mark'; seriesIndex: number; dataIndex: number }\n | { kind: 'line'; seriesIndex: number; dataIndex: number }\n | { kind: 'area'; seriesIndex: number; dataIndex: number }\n | { kind: 'axis'; dataIndex: number }\n | null;\n\n/** One visible series' value at an x index — the rows the tooltip lists. */\nexport interface AxisSeriesValue {\n seriesIndex: number;\n label: string;\n /** Raw value there, or `null` when this series has no point at that x. */\n value: number | null;\n}\n\n/** Index of the xPosition nearest to `px` (or -1 if none). */\nexport function nearestIndex(positions: number[], px: number): number {\n if (!positions.length) return -1;\n let best = 0;\n let bestD = Infinity;\n for (let i = 0; i < positions.length; i++) {\n const d = Math.abs(positions[i] - px);\n if (d < bestD) {\n bestD = d;\n best = i;\n }\n }\n return best;\n}\n\n/**\n * Each visible series' samples as `[main, value]` pixel pairs ordered along the\n * main axis (x for a normal chart, y for an inverted one) — the input\n * {@link distanceToLine} expects. (Integer-keyed records enumerate in ascending\n * numeric order, so `byIndex` is already in main-axis order.)\n */\nexport function seriesSampleLines(scene: RenderScene): [number, number][][] {\n const inverted = !!scene.inverted;\n return scene.hoverPoints.map((hp) =>\n // `ascending`: an RTL scene is mirrored, so its samples descend in x — the\n // distance search bisects on that axis and needs them the other way round.\n ascending(\n Object.keys(hp.byIndex).map((k): [number, number] => {\n const p = hp.byIndex[Number(k)];\n return inverted ? [p.y, p.x] : [p.x, p.y];\n }),\n ),\n );\n}\n\n/** Every visible series' value at `index` — what an axis click reports. */\nexport function axisSeriesValues(scene: RenderScene, index: number): AxisSeriesValue[] {\n return scene.hoverPoints.map((hp) => ({\n seriesIndex: hp.seriesIndex,\n label: hp.label,\n value: hp.byIndex[index]?.value ?? null,\n }));\n}\n\n/** Is (px, py) inside the plot rect (i.e. not in the title / legend / gutters)? */\nexport function insidePlot(plot: Rect, px: number, py: number): boolean {\n return px >= plot.x && px <= plot.x + plot.width && py >= plot.y && py <= plot.y + plot.height;\n}\n\n/**\n * The polyline's y at `x`, linearly interpolated between the samples bracketing\n * it, or `null` when `x` is outside its span. Assumes points ascend in x, which\n * every drawn series polyline does.\n */\nfunction polylineY(input: readonly Pt[], x: number): number | null {\n const n = input.length;\n if (!n) return null;\n // A mirrored (RTL) area runs right-to-left; bisecting needs ascending x.\n const points = n > 1 && input[0].x > input[n - 1].x ? [...input].reverse() : input;\n if (x < points[0].x || x > points[n - 1].x) return null;\n if (n === 1) return points[0].y;\n let lo = 0;\n let hi = n - 1;\n while (hi - lo > 1) {\n const mid = (lo + hi) >> 1;\n if (points[mid].x <= x) lo = mid;\n else hi = mid;\n }\n const a = points[lo];\n const b = points[hi];\n return b.x === a.x ? a.y : a.y + ((b.y - a.y) * (x - a.x)) / (b.x - a.x);\n}\n\n/**\n * Is (px, py) inside this filled area — between its top edge and its base?\n *\n * A stacked layer fills only its own band, so its `basePoints` (not the global\n * baseline) are the bottom edge; an unstacked area fills down to `baselineY`.\n * `min`/`max` rather than `<`/`>` because a negative series fills *upward* to\n * the zero line.\n */\nfunction areaContains(area: SceneArea, px: number, py: number): boolean {\n const top = polylineY(area.points, px);\n if (top == null) return false;\n const base = (area.basePoints ? polylineY(area.basePoints, px) : null) ?? area.baselineY;\n return py >= Math.min(top, base) && py <= Math.max(top, base);\n}\n\n/**\n * Which series' filled band contains (px, py), or -1.\n *\n * This is what the eye reads on an area chart: the cursor sits INSIDE a band,\n * so the band it is in owns it — not whichever series' drawn line happens to\n * pass nearest, which on a thick stacked band is usually a different series\n * altogether. Where unstacked areas overlap and several contain the cursor,\n * the one whose own top edge is nearest wins.\n */\nexport function areaSeriesAt(scene: RenderScene, px: number, py: number): number {\n if (!insidePlot(scene.plot, px, py)) return -1;\n let best = -1;\n let bestD = Infinity;\n for (const a of scene.areas) {\n if (a.seriesIndex == null || !areaContains(a, px, py)) continue;\n const top = polylineY(a.points, px);\n const d = top == null ? Infinity : Math.abs(py - top);\n if (d < bestD) {\n bestD = d;\n best = a.seriesIndex;\n }\n }\n return best;\n}\n\n/**\n * What a click at (px, py) — canvas-relative pixels — landed on.\n *\n * Most specific first: a data **mark**, else a series **line**, else a filled\n * **area**, else the plot background (**axis**). So a click on a mark never\n * also reads as a click on that series' line, and one on the line never reads\n * as its area.\n *\n * Only the mark test reaches outside the plot rect (it always has: a click just\n * past the axis still counts as the point it is nearest). Line / area / axis\n * are plot-only, since the geometry is clipped to the plot and a click in the\n * title, legend or an axis gutter is not a click on the chart background.\n *\n * `lines` is {@link seriesSampleLines}, passed in so the engine can reuse its\n * per-scene cache.\n */\nexport function hitTestScene(\n scene: RenderScene,\n px: number,\n py: number,\n lines: [number, number][][] = seriesSampleLines(scene),\n): SceneHit {\n const inverted = !!scene.inverted;\n const cursorMain = inverted ? py : px;\n const cursorValue = inverted ? px : py;\n const dataIndex = nearestIndex(scene.xPositions, cursorMain);\n if (dataIndex < 0) return null;\n\n // ── 1. a data mark: the series whose point at this x is nearest (2D) ──\n let markSeries = -1;\n let markD = Infinity;\n for (const hp of scene.hoverPoints) {\n const p = hp.byIndex[dataIndex];\n if (!p) continue;\n const d = Math.hypot(p.x - px, p.y - py);\n if (d < markD) {\n markD = d;\n markSeries = hp.seriesIndex;\n }\n }\n if (markSeries >= 0 && markD <= MARK_HIT_RADIUS) return { kind: 'mark', seriesIndex: markSeries, dataIndex };\n\n if (!insidePlot(scene.plot, px, py)) return null;\n\n // ── 2. a series line: distance to the DRAWN line, not to the sample at this\n // x (series can be measured at different x and have no sample here) ──\n let lineSeries = -1;\n let lineD = Infinity;\n scene.hoverPoints.forEach((hp, i) => {\n const d = distanceToLine(lines[i] ?? [], cursorMain, cursorValue);\n if (d < lineD) {\n lineD = d;\n lineSeries = hp.seriesIndex;\n }\n });\n if (lineSeries >= 0 && lineD <= LINE_HIT_TOLERANCE) return { kind: 'line', seriesIndex: lineSeries, dataIndex };\n\n // ── 3. a filled area (only when the chart draws them). Where unstacked areas\n // overlap, the one whose own line is nearest above/below wins — that is\n // the band the click reads as being \"under\". ──\n let areaSeries = -1;\n let areaD = Infinity;\n for (const a of scene.areas) {\n if (a.seriesIndex == null || !areaContains(a, px, py)) continue;\n const d = Math.abs(py - (polylineY(a.points, px) as number));\n if (d < areaD) {\n areaD = d;\n areaSeries = a.seriesIndex;\n }\n }\n if (areaSeries >= 0) return { kind: 'area', seriesIndex: areaSeries, dataIndex };\n\n // ── 4. plot background ──\n return { kind: 'axis', dataIndex };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hit-test-c_hI-yCX.js","sources":["src/utils/charts/engine/emphasis.ts","src/utils/charts/engine/hit-test.ts"],"sourcesContent":["/*\n * Chart engine — hover emphasis\n * ===========================================================\n * When the pointer is near one series, that series stays vivid and\n * the others fade back so the focused line reads clearly. A pure\n * scene→scene transform (like animate.ts) so both renderer backends\n * dim identically; the engine animates the `t` factor over a short\n * MD3 transition and redraws emphasizeScene(scene, focus, t).\n * ===========================================================\n */\n\nimport { withAlpha } from './color';\nimport type { RenderScene } from './scene';\n\n/** How faded a non-focused series gets at full emphasis (alpha multiplier). */\nconst DIM = 0.22;\n/** Emphasis fade duration in ms. */\nexport const EMPHASIS_MS = 260;\n\n/**\n * How much nearer (px) a rival series must be before the emphasis leaves the\n * series it is on. Sized just under a typical \"close lines\" gap: enough of a\n * deadband to stop the two trading focus at their midpoint, small enough that\n * moving onto the other line still takes the focus with it.\n */\nexport const FOCUS_STICK = 4;\n\n/**\n * How far the cursor is (px) from a series' drawn line.\n *\n * `points` are that series' samples as `[main, value]` pixel pairs ordered\n * along the main axis (x for a normal chart, y for an inverted one). The line\n * is interpolated between the two samples bracketing the cursor, which is what\n * makes this work for series sampled at *different* x: with irregular data a\n * series usually has no sample exactly at the hovered position, and comparing\n * only exact samples hands the emphasis to whichever series happens to own\n * that slot. Past either end of the series the distance is measured to its\n * endpoint, so a line that has already finished reads as far away.\n */\nexport function distanceToLine(\n points: readonly (readonly [number, number])[],\n cursorMain: number,\n cursorValue: number,\n): number {\n const n = points.length;\n if (!n) return Infinity;\n const first = points[0];\n const last = points[n - 1];\n if (cursorMain <= first[0]) return Math.hypot(first[0] - cursorMain, first[1] - cursorValue);\n if (cursorMain >= last[0]) return Math.hypot(last[0] - cursorMain, last[1] - cursorValue);\n let lo = 0;\n let hi = n - 1;\n while (hi - lo > 1) {\n const mid = (lo + hi) >> 1;\n if (points[mid][0] <= cursorMain) lo = mid;\n else hi = mid;\n }\n const [aMain, aValue] = points[lo];\n const [bMain, bValue] = points[hi];\n const t = bMain === aMain ? 0 : (cursorMain - aMain) / (bMain - aMain);\n return Math.abs(aValue + (bValue - aValue) * t - cursorValue);\n}\n\n/**\n * Which series the hover should emphasise, given each candidate's distance to\n * the cursor and the one currently held (`-1` for none).\n *\n * Plain \"nearest wins\" flickers: between two lines a few pixels apart the\n * winner flips on every pointer move, and because the emphasis is already\n * fully faded in, each flip swaps vivid and dimmed instantly. Holding the\n * current series until a rival is clearly nearer turns the midpoint into a\n * deadband. A held series that isn't a candidate any more (it was hidden, or\n * the pointer left the plot) has no distance, so the focus moves on.\n */\nexport function pickFocusSeries(\n candidates: readonly { seriesIndex: number; distance: number }[],\n held: number,\n stick: number = FOCUS_STICK,\n): number {\n let best = -1;\n let bestD = Infinity;\n let heldD = Infinity;\n for (const c of candidates) {\n if (c.seriesIndex === held) heldD = c.distance;\n if (c.distance < bestD) {\n bestD = c.distance;\n best = c.seriesIndex;\n }\n }\n if (held >= 0 && bestD > heldD - stick) return held;\n return best;\n}\n\n/**\n * How long (ms) a rival has to stay the nearest before the emphasis moves to\n * it. The px deadband alone can't settle two lines running close together: a\n * hand held roughly still while the lines wander across the cursor makes the\n * nearest genuinely alternate, by the full gap each time. Requiring the rival\n * to *stay* nearest ignores that alternation while still following a\n * deliberate move onto the other line within a frame or three.\n */\nexport const FOCUS_DWELL_MS = 140;\n\n/**\n * Chooses the emphasised series over time: {@link pickFocusSeries} for the\n * geometry, plus a dwell so a contested choice has to settle before it moves.\n *\n * Owns the held series, so the engine just feeds it distances and a clock.\n */\nexport class HoverFocus {\n private held = -1;\n private candidate = -1;\n private since = 0;\n\n constructor(\n private readonly stick: number = FOCUS_STICK,\n private readonly dwellMs: number = FOCUS_DWELL_MS,\n ) {}\n\n /** The series to emphasise now, given each one's distance to the cursor. */\n pick(candidates: readonly { seriesIndex: number; distance: number }[], now: number): number {\n const wanted = pickFocusSeries(candidates, this.held, this.stick);\n if (wanted !== this.candidate) {\n this.candidate = wanted;\n this.since = now;\n }\n // Nothing focused yet (first hover, or after the pointer left): adopt\n // immediately, so arriving on a line reads as instant.\n if (this.held < 0) {\n this.held = wanted;\n } else if (wanted !== this.held && now - this.since >= this.dwellMs) {\n this.held = wanted;\n }\n return this.held;\n }\n\n /** Pointer left the plot, or the scene changed — drop the held series. */\n reset(): void {\n this.held = -1;\n this.candidate = -1;\n this.since = 0;\n }\n}\n\n/**\n * The scene with every series except `focusIndex` dimmed by progress `t`\n * (0 = no dimming, 1 = fully faded). Glyph markers and chrome are untouched.\n * Series without an index are treated as focused (never dimmed).\n */\nexport function emphasizeScene(scene: RenderScene, focusIndex: number, t: number): RenderScene {\n if (focusIndex < 0 || t <= 0) return scene;\n const factor = 1 - (1 - DIM) * Math.min(1, t);\n const dim = (si: number | undefined): boolean => si != null && si !== focusIndex;\n return {\n ...scene,\n lines: scene.lines.map((l) => (dim(l.seriesIndex) ? { ...l, color: withAlpha(l.color, factor) } : l)),\n areas: scene.areas.map((a) =>\n dim(a.seriesIndex) ? { ...a, colorTop: withAlpha(a.colorTop, factor), colorBottom: withAlpha(a.colorBottom, factor) } : a,\n ),\n markers: scene.markers.map((m) => (dim(m.seriesIndex) ? { ...m, color: withAlpha(m.color, factor) } : m)),\n };\n}\n","/*\n * Chart engine — click hit-testing\n * ===========================================================\n * Turns a pointer position over a rendered scene into the most\n * specific thing under it: a data mark, a series line, a filled\n * area, or the plot background (an \"axis\" click). Pure functions\n * over the RenderScene, so the precedence rule is unit-testable\n * without a canvas — the engine only maps the result onto its\n * callbacks.\n * ===========================================================\n */\n\nimport { distanceToLine } from './emphasis';\nimport type { Pt } from './geometry';\nimport { ascending } from './rtl';\nimport type { RenderScene, Rect, SceneArea } from './scene';\n\n/**\n * Max cursor→point distance (px) for a click to count as a mark click.\n * Deliberately generous: a mark is the thing consumers most want to catch, and\n * at this radius a click anywhere in a fingertip-sized region around the point\n * still lands on it.\n */\nexport const MARK_HIT_RADIUS = 26;\n\n/**\n * Max cursor→line distance (px) for a click to count as a line click.\n *\n * The stroke is 2.5px wide (±1.25px from the centreline), so this leaves ~6.75px\n * of pointer slop on either side — comfortable for an imprecise mouse without\n * reaching so far into the fill below that \"clicked the area just under the\n * line\" gets stolen by the line. It also absorbs the small error in\n * {@link distanceToLine}, which measures against the straight segment between\n * two samples while a `smooth` curve bows a little away from it.\n */\nexport const LINE_HIT_TOLERANCE = 8;\n\n/** What sits under the pointer, most specific first. */\nexport type SceneHit =\n | { kind: 'mark'; seriesIndex: number; dataIndex: number }\n | { kind: 'line'; seriesIndex: number; dataIndex: number }\n | { kind: 'area'; seriesIndex: number; dataIndex: number }\n | { kind: 'axis'; dataIndex: number }\n | null;\n\n/** One visible series' value at an x index — the rows the tooltip lists. */\nexport interface AxisSeriesValue {\n seriesIndex: number;\n label: string;\n /** Raw value there, or `null` when this series has no point at that x. */\n value: number | null;\n}\n\n/** Index of the xPosition nearest to `px` (or -1 if none). */\nexport function nearestIndex(positions: number[], px: number): number {\n if (!positions.length) return -1;\n let best = 0;\n let bestD = Infinity;\n for (let i = 0; i < positions.length; i++) {\n const d = Math.abs(positions[i] - px);\n if (d < bestD) {\n bestD = d;\n best = i;\n }\n }\n return best;\n}\n\n/**\n * Each visible series' samples as `[main, value]` pixel pairs ordered along the\n * main axis (x for a normal chart, y for an inverted one) — the input\n * {@link distanceToLine} expects. (Integer-keyed records enumerate in ascending\n * numeric order, so `byIndex` is already in main-axis order.)\n */\nexport function seriesSampleLines(scene: RenderScene): [number, number][][] {\n const inverted = !!scene.inverted;\n return scene.hoverPoints.map((hp) =>\n // `ascending`: an RTL scene is mirrored, so its samples descend in x — the\n // distance search bisects on that axis and needs them the other way round.\n ascending(\n Object.keys(hp.byIndex).map((k): [number, number] => {\n const p = hp.byIndex[Number(k)];\n return inverted ? [p.y, p.x] : [p.x, p.y];\n }),\n ),\n );\n}\n\n/** Every visible series' value at `index` — what an axis click reports. */\nexport function axisSeriesValues(scene: RenderScene, index: number): AxisSeriesValue[] {\n return scene.hoverPoints.map((hp) => ({\n seriesIndex: hp.seriesIndex,\n label: hp.label,\n value: hp.byIndex[index]?.value ?? null,\n }));\n}\n\n/** Is (px, py) inside the plot rect (i.e. not in the title / legend / gutters)? */\nexport function insidePlot(plot: Rect, px: number, py: number): boolean {\n return px >= plot.x && px <= plot.x + plot.width && py >= plot.y && py <= plot.y + plot.height;\n}\n\n/**\n * The polyline's y at `x`, linearly interpolated between the samples bracketing\n * it, or `null` when `x` is outside its span. Assumes points ascend in x, which\n * every drawn series polyline does.\n */\nfunction polylineY(input: readonly Pt[], x: number): number | null {\n const n = input.length;\n if (!n) return null;\n // A mirrored (RTL) area runs right-to-left; bisecting needs ascending x.\n const points = n > 1 && input[0].x > input[n - 1].x ? [...input].reverse() : input;\n if (x < points[0].x || x > points[n - 1].x) return null;\n if (n === 1) return points[0].y;\n let lo = 0;\n let hi = n - 1;\n while (hi - lo > 1) {\n const mid = (lo + hi) >> 1;\n if (points[mid].x <= x) lo = mid;\n else hi = mid;\n }\n const a = points[lo];\n const b = points[hi];\n return b.x === a.x ? a.y : a.y + ((b.y - a.y) * (x - a.x)) / (b.x - a.x);\n}\n\n/**\n * Is (px, py) inside this filled area — between its top edge and its base?\n *\n * A stacked layer fills only its own band, so its `basePoints` (not the global\n * baseline) are the bottom edge; an unstacked area fills down to `baselineY`.\n * `min`/`max` rather than `<`/`>` because a negative series fills *upward* to\n * the zero line.\n */\nfunction areaContains(area: SceneArea, px: number, py: number): boolean {\n const top = polylineY(area.points, px);\n if (top == null) return false;\n const base = (area.basePoints ? polylineY(area.basePoints, px) : null) ?? area.baselineY;\n return py >= Math.min(top, base) && py <= Math.max(top, base);\n}\n\n/**\n * Which series' filled band contains (px, py), or -1.\n *\n * This is what the eye reads on an area chart: the cursor sits INSIDE a band,\n * so the band it is in owns it — not whichever series' drawn line happens to\n * pass nearest, which on a thick stacked band is usually a different series\n * altogether. Where unstacked areas overlap and several contain the cursor,\n * the one whose own top edge is nearest wins.\n */\nexport function areaSeriesAt(scene: RenderScene, px: number, py: number): number {\n if (!insidePlot(scene.plot, px, py)) return -1;\n let best = -1;\n let bestD = Infinity;\n for (const a of scene.areas) {\n if (a.seriesIndex == null || !areaContains(a, px, py)) continue;\n const top = polylineY(a.points, px);\n const d = top == null ? Infinity : Math.abs(py - top);\n if (d < bestD) {\n bestD = d;\n best = a.seriesIndex;\n }\n }\n return best;\n}\n\n/**\n * What a click at (px, py) — canvas-relative pixels — landed on.\n *\n * Most specific first: a data **mark**, else a series **line**, else a filled\n * **area**, else the plot background (**axis**). So a click on a mark never\n * also reads as a click on that series' line, and one on the line never reads\n * as its area.\n *\n * Only the mark test reaches outside the plot rect (it always has: a click just\n * past the axis still counts as the point it is nearest). Line / area / axis\n * are plot-only, since the geometry is clipped to the plot and a click in the\n * title, legend or an axis gutter is not a click on the chart background.\n *\n * `lines` is {@link seriesSampleLines}, passed in so the engine can reuse its\n * per-scene cache.\n */\nexport function hitTestScene(\n scene: RenderScene,\n px: number,\n py: number,\n lines: [number, number][][] = seriesSampleLines(scene),\n): SceneHit {\n const inverted = !!scene.inverted;\n const cursorMain = inverted ? py : px;\n const cursorValue = inverted ? px : py;\n const dataIndex = nearestIndex(scene.xPositions, cursorMain);\n if (dataIndex < 0) return null;\n\n // ── 1. a data mark: the series whose point at this x is nearest (2D) ──\n let markSeries = -1;\n let markD = Infinity;\n for (const hp of scene.hoverPoints) {\n const p = hp.byIndex[dataIndex];\n if (!p) continue;\n const d = Math.hypot(p.x - px, p.y - py);\n if (d < markD) {\n markD = d;\n markSeries = hp.seriesIndex;\n }\n }\n if (markSeries >= 0 && markD <= MARK_HIT_RADIUS) return { kind: 'mark', seriesIndex: markSeries, dataIndex };\n\n if (!insidePlot(scene.plot, px, py)) return null;\n\n // ── 2. a series line: distance to the DRAWN line, not to the sample at this\n // x (series can be measured at different x and have no sample here) ──\n let lineSeries = -1;\n let lineD = Infinity;\n scene.hoverPoints.forEach((hp, i) => {\n const d = distanceToLine(lines[i] ?? [], cursorMain, cursorValue);\n if (d < lineD) {\n lineD = d;\n lineSeries = hp.seriesIndex;\n }\n });\n if (lineSeries >= 0 && lineD <= LINE_HIT_TOLERANCE) return { kind: 'line', seriesIndex: lineSeries, dataIndex };\n\n // ── 3. a filled area (only when the chart draws them). Where unstacked areas\n // overlap, the one whose own line is nearest above/below wins — that is\n // the band the click reads as being \"under\". ──\n let areaSeries = -1;\n let areaD = Infinity;\n for (const a of scene.areas) {\n if (a.seriesIndex == null || !areaContains(a, px, py)) continue;\n const d = Math.abs(py - (polylineY(a.points, px) as number));\n if (d < areaD) {\n areaD = d;\n areaSeries = a.seriesIndex;\n }\n }\n if (areaSeries >= 0) return { kind: 'area', seriesIndex: areaSeries, dataIndex };\n\n // ── 4. plot background ──\n return { kind: 'axis', dataIndex };\n}\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,6 @@
1
1
  const NAMESPACE = 'md3';
2
2
  const BUILD = /* md3 */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: true, state: true, updatable: true};
3
3
 
4
- const globalScripts = () => {};
5
- const globalStyles = ":root{--md-sys-color-primary:#6750A4;--md-sys-color-on-primary:#FFFFFF;--md-sys-color-primary-container:#EADDFF;--md-sys-color-on-primary-container:#21005D;--md-sys-color-secondary:#625B71;--md-sys-color-on-secondary:#FFFFFF;--md-sys-color-secondary-container:#E8DEF8;--md-sys-color-on-secondary-container:#1E192B;--md-sys-color-tertiary:#7D5260;--md-sys-color-on-tertiary:#FFFFFF;--md-sys-color-tertiary-container:#FFD8E4;--md-sys-color-on-tertiary-container:#370B1E;--md-sys-color-error:#B3261E;--md-sys-color-on-error:#FFFFFF;--md-sys-color-error-container:#F9DEDC;--md-sys-color-on-error-container:#370606;--md-sys-color-success:#2E6B4F;--md-sys-color-on-success:#FFFFFF;--md-sys-color-success-container:#B8F0CE;--md-sys-color-on-success-container:#002110;--md-sys-color-warning:#7A5900;--md-sys-color-on-warning:#FFFFFF;--md-sys-color-warning-container:#FFDF9B;--md-sys-color-on-warning-container:#261A00;--md-sys-color-info:#38608F;--md-sys-color-on-info:#FFFFFF;--md-sys-color-info-container:#D3E4FF;--md-sys-color-on-info-container:#001D34;--md-sys-color-background:#FFFBFE;--md-sys-color-on-background:#1C1B1F;--md-sys-color-surface:#FFFBFE;--md-sys-color-on-surface:#1C1B1F;--md-sys-color-surface-variant:#E7E0EC;--md-sys-color-on-surface-variant:#49454F;--md-sys-color-surface-container-lowest:#FFFFFF;--md-sys-color-surface-container-low:#F7F2FA;--md-sys-color-surface-container:#F3EDF7;--md-sys-color-surface-container-high:#ECE6F0;--md-sys-color-surface-container-highest:#E6E0E9;--md-sys-color-surface-dim:#DED8E1;--md-sys-color-surface-bright:#FFFBFE;--md-sys-color-outline:#79747E;--md-sys-color-outline-variant:#CAC4D0;--md-sys-color-inverse-surface:#313033;--md-sys-color-inverse-on-surface:#F4EFF4;--md-sys-color-inverse-primary:#D0BCFF;--md-sys-color-shadow:#000000;--md-sys-color-scrim:#000000;--md-sys-color-surface-tint:#6750A4;--md-sys-elevation-0:none;--md-sys-elevation-1:0px 1px 2px rgba(0,0,0,0.3), 0px 1px 3px 1px rgba(0,0,0,0.15);--md-sys-elevation-2:0px 1px 2px rgba(0,0,0,0.3), 0px 2px 6px 2px rgba(0,0,0,0.15);--md-sys-elevation-3:0px 4px 8px 3px rgba(0,0,0,0.15), 0px 1px 3px rgba(0,0,0,0.3);--md-sys-elevation-4:0px 6px 10px 4px rgba(0,0,0,0.15), 0px 2px 3px rgba(0,0,0,0.3);--md-sys-elevation-5:0px 8px 12px 6px rgba(0,0,0,0.15), 0px 4px 4px rgba(0,0,0,0.3);--md-sys-shape-corner-none:0px;--md-sys-shape-corner-extra-small:4px;--md-sys-shape-corner-extra-small-top:4px 4px 0px 0px;--md-sys-shape-corner-small:8px;--md-sys-shape-corner-medium:12px;--md-sys-shape-corner-large:16px;--md-sys-shape-corner-large-end:0px 16px 16px 0px;--md-sys-shape-corner-large-top:16px 16px 0px 0px;--md-sys-shape-corner-extra-large:28px;--md-sys-shape-corner-extra-large-top:28px 28px 0px 0px;--md-sys-shape-corner-full:9999px;--md-sys-typescale-display-large-font-family:Roboto, sans-serif;--md-sys-typescale-display-large-font-size:57px;--md-sys-typescale-display-large-line-height:64px;--md-sys-typescale-display-large-font-weight:400;--md-sys-typescale-display-large-letter-spacing:-0.25px;--md-sys-typescale-display-large-font:400 57px/64px Roboto, sans-serif;--md-sys-typescale-display-medium-font-family:Roboto, sans-serif;--md-sys-typescale-display-medium-font-size:45px;--md-sys-typescale-display-medium-line-height:52px;--md-sys-typescale-display-medium-font-weight:400;--md-sys-typescale-display-medium-letter-spacing:0px;--md-sys-typescale-display-medium-font:400 45px/52px Roboto, sans-serif;--md-sys-typescale-display-small-font-family:Roboto, sans-serif;--md-sys-typescale-display-small-font-size:36px;--md-sys-typescale-display-small-line-height:44px;--md-sys-typescale-display-small-font-weight:400;--md-sys-typescale-display-small-letter-spacing:0px;--md-sys-typescale-display-small-font:400 36px/44px Roboto, sans-serif;--md-sys-typescale-headline-large-font-family:Roboto, sans-serif;--md-sys-typescale-headline-large-font-size:32px;--md-sys-typescale-headline-large-line-height:40px;--md-sys-typescale-headline-large-font-weight:400;--md-sys-typescale-headline-large-letter-spacing:0px;--md-sys-typescale-headline-large-font:400 32px/40px Roboto, sans-serif;--md-sys-typescale-headline-medium-font-family:Roboto, sans-serif;--md-sys-typescale-headline-medium-font-size:28px;--md-sys-typescale-headline-medium-line-height:36px;--md-sys-typescale-headline-medium-font-weight:400;--md-sys-typescale-headline-medium-letter-spacing:0px;--md-sys-typescale-headline-medium-font:400 28px/36px Roboto, sans-serif;--md-sys-typescale-headline-small-font-family:Roboto, sans-serif;--md-sys-typescale-headline-small-font-size:24px;--md-sys-typescale-headline-small-line-height:32px;--md-sys-typescale-headline-small-font-weight:400;--md-sys-typescale-headline-small-letter-spacing:0px;--md-sys-typescale-headline-small-font:400 24px/32px Roboto, sans-serif;--md-sys-typescale-title-large-font-family:Roboto, sans-serif;--md-sys-typescale-title-large-font-size:22px;--md-sys-typescale-title-large-line-height:28px;--md-sys-typescale-title-large-font-weight:400;--md-sys-typescale-title-large-letter-spacing:0px;--md-sys-typescale-title-large-font:400 22px/28px Roboto, sans-serif;--md-sys-typescale-title-medium-font-family:Roboto, sans-serif;--md-sys-typescale-title-medium-font-size:16px;--md-sys-typescale-title-medium-line-height:24px;--md-sys-typescale-title-medium-font-weight:500;--md-sys-typescale-title-medium-letter-spacing:0.15px;--md-sys-typescale-title-medium-font:500 16px/24px Roboto, sans-serif;--md-sys-typescale-title-small-font-family:Roboto, sans-serif;--md-sys-typescale-title-small-font-size:14px;--md-sys-typescale-title-small-line-height:20px;--md-sys-typescale-title-small-font-weight:500;--md-sys-typescale-title-small-letter-spacing:0.1px;--md-sys-typescale-title-small-font:500 14px/20px Roboto, sans-serif;--md-sys-typescale-label-large-font-family:Roboto, sans-serif;--md-sys-typescale-label-large-font-size:14px;--md-sys-typescale-label-large-line-height:20px;--md-sys-typescale-label-large-font-weight:500;--md-sys-typescale-label-large-letter-spacing:0.1px;--md-sys-typescale-label-large-font:500 14px/20px Roboto, sans-serif;--md-sys-typescale-label-medium-font-family:Roboto, sans-serif;--md-sys-typescale-label-medium-font-size:12px;--md-sys-typescale-label-medium-line-height:16px;--md-sys-typescale-label-medium-font-weight:500;--md-sys-typescale-label-medium-letter-spacing:0.5px;--md-sys-typescale-label-medium-font:500 12px/16px Roboto, sans-serif;--md-sys-typescale-label-small-font-family:Roboto, sans-serif;--md-sys-typescale-label-small-font-size:11px;--md-sys-typescale-label-small-line-height:16px;--md-sys-typescale-label-small-font-weight:500;--md-sys-typescale-label-small-letter-spacing:0.5px;--md-sys-typescale-label-small-font:500 11px/16px Roboto, sans-serif;--md-sys-typescale-body-large-font-family:Roboto, sans-serif;--md-sys-typescale-body-large-font-size:16px;--md-sys-typescale-body-large-line-height:24px;--md-sys-typescale-body-large-font-weight:400;--md-sys-typescale-body-large-letter-spacing:0.5px;--md-sys-typescale-body-large-font:400 16px/24px Roboto, sans-serif;--md-sys-typescale-body-medium-font-family:Roboto, sans-serif;--md-sys-typescale-body-medium-font-size:14px;--md-sys-typescale-body-medium-line-height:20px;--md-sys-typescale-body-medium-font-weight:400;--md-sys-typescale-body-medium-letter-spacing:0.25px;--md-sys-typescale-body-medium-font:400 14px/20px Roboto, sans-serif;--md-sys-typescale-body-small-font-family:Roboto, sans-serif;--md-sys-typescale-body-small-font-size:12px;--md-sys-typescale-body-small-line-height:16px;--md-sys-typescale-body-small-font-weight:400;--md-sys-typescale-body-small-letter-spacing:0.4px;--md-sys-typescale-body-small-font:400 12px/16px Roboto, sans-serif;--md-sys-motion-duration-short1:50ms;--md-sys-motion-duration-short2:100ms;--md-sys-motion-duration-short3:150ms;--md-sys-motion-duration-short4:200ms;--md-sys-motion-duration-medium1:250ms;--md-sys-motion-duration-medium2:300ms;--md-sys-motion-duration-medium3:350ms;--md-sys-motion-duration-medium4:400ms;--md-sys-motion-duration-long1:450ms;--md-sys-motion-duration-long2:500ms;--md-sys-motion-duration-long3:550ms;--md-sys-motion-duration-long4:600ms;--md-sys-motion-duration-extra-long1:700ms;--md-sys-motion-duration-extra-long2:800ms;--md-sys-motion-duration-extra-long3:900ms;--md-sys-motion-duration-extra-long4:1000ms;--md-sys-motion-easing-standard:cubic-bezier(0.2, 0, 0, 1);--md-sys-motion-easing-standard-accelerate:cubic-bezier(0.3, 0, 1, 1);--md-sys-motion-easing-standard-decelerate:cubic-bezier(0, 0, 0, 1);--md-sys-motion-easing-emphasized:cubic-bezier(0.2, 0, 0, 1);--md-sys-motion-easing-emphasized-accelerate:cubic-bezier(0.3, 0, 0.8, 0.15);--md-sys-motion-easing-emphasized-decelerate:cubic-bezier(0.05, 0.7, 0.1, 1);--md-sys-motion-easing-linear:linear;--md-sys-motion-spring-spatial-fast-easing:cubic-bezier(0.42, 1.67, 0.21, 0.90);--md-sys-motion-spring-spatial-fast-duration:350ms;--md-sys-motion-spring-spatial-default-easing:cubic-bezier(0.38, 1.21, 0.22, 1.00);--md-sys-motion-spring-spatial-default-duration:500ms;--md-sys-motion-spring-spatial-slow-easing:cubic-bezier(0.39, 1.29, 0.35, 0.98);--md-sys-motion-spring-spatial-slow-duration:650ms;--md-sys-motion-spring-effects-fast-easing:cubic-bezier(0.31, 0.94, 0.34, 1.00);--md-sys-motion-spring-effects-fast-duration:150ms;--md-sys-motion-spring-effects-default-easing:cubic-bezier(0.34, 0.80, 0.34, 1.00);--md-sys-motion-spring-effects-default-duration:200ms;--md-sys-motion-spring-effects-slow-easing:cubic-bezier(0.34, 0.88, 0.34, 1.00);--md-sys-motion-spring-effects-slow-duration:300ms;--md-sys-z-index-app-bar:100;--md-sys-z-index-navigation:200;--md-sys-z-index-bottom-sheet:300;--md-sys-z-index-popup:1000;--md-sys-z-index-dialog-scrim:1001;--md-sys-z-index-tooltip:1500;--md-sys-z-index-snackbar:2000;--md-sys-state-hover-state-layer-opacity:0.08;--md-sys-state-focus-state-layer-opacity:0.12;--md-sys-state-pressed-state-layer-opacity:0.12;--md-sys-state-dragged-state-layer-opacity:0.16;--md-sys-state-disabled-container-opacity:0.12;--md-sys-state-disabled-content-opacity:0.38;--md-sys-density-scale:0;--md-sys-icon-font-family:'Material Symbols Outlined', 'Material Icons';--md-sys-spacing-inset-xs:4px;--md-sys-spacing-inset-sm:8px;--md-sys-spacing-inset-md:12px;--md-sys-spacing-inset-lg:16px;--md-sys-spacing-inset-xl:24px;--md-sys-spacing-gap-xs:4px;--md-sys-spacing-gap-sm:8px;--md-sys-spacing-gap-md:12px;--md-sys-spacing-gap-lg:16px;--md-sys-spacing-row-height:56px}[data-theme=\"dark\"]{--md-sys-color-primary:#D0BCFF;--md-sys-color-on-primary:#381E72;--md-sys-color-primary-container:#4F378B;--md-sys-color-on-primary-container:#EADDFF;--md-sys-color-secondary:#CCC2DC;--md-sys-color-on-secondary:#332D41;--md-sys-color-secondary-container:#4A4458;--md-sys-color-on-secondary-container:#E8DEF8;--md-sys-color-tertiary:#EFB8C8;--md-sys-color-on-tertiary:#492532;--md-sys-color-tertiary-container:#633B48;--md-sys-color-on-tertiary-container:#FFD8E4;--md-sys-color-error:#F2B8B5;--md-sys-color-on-error:#601410;--md-sys-color-error-container:#8C1D18;--md-sys-color-on-error-container:#F9DEDC;--md-sys-color-success:#9DD5B0;--md-sys-color-on-success:#003920;--md-sys-color-success-container:#14512F;--md-sys-color-on-success-container:#B8F0CE;--md-sys-color-warning:#EFC148;--md-sys-color-on-warning:#402D00;--md-sys-color-warning-container:#5C4200;--md-sys-color-on-warning-container:#FFDF9B;--md-sys-color-info:#A2C9FE;--md-sys-color-on-info:#00325A;--md-sys-color-info-container:#1E4975;--md-sys-color-on-info-container:#D3E4FF;--md-sys-color-background:#1C1B1F;--md-sys-color-on-background:#E6E1E5;--md-sys-color-surface:#1C1B1F;--md-sys-color-on-surface:#E6E1E5;--md-sys-color-surface-variant:#49454F;--md-sys-color-on-surface-variant:#CAC4D0;--md-sys-color-surface-container-lowest:#0F0D13;--md-sys-color-surface-container-low:#1D1B20;--md-sys-color-surface-container:#211F26;--md-sys-color-surface-container-high:#2B2930;--md-sys-color-surface-container-highest:#36343B;--md-sys-color-surface-dim:#141218;--md-sys-color-surface-bright:#3B383E;--md-sys-color-outline:#938F99;--md-sys-color-outline-variant:#49454F;--md-sys-color-inverse-surface:#E6E1E5;--md-sys-color-inverse-on-surface:#313033;--md-sys-color-inverse-primary:#6750A4;--md-sys-color-shadow:#000000;--md-sys-color-scrim:#000000;--md-sys-color-surface-tint:#D0BCFF;--md-sys-elevation-1:0px 1px 2px rgba(0,0,0,0.5), 0px 1px 3px 1px rgba(0,0,0,0.25);--md-sys-elevation-2:0px 1px 2px rgba(0,0,0,0.5), 0px 2px 6px 2px rgba(0,0,0,0.25);--md-sys-elevation-3:0px 4px 8px 3px rgba(0,0,0,0.25), 0px 1px 3px rgba(0,0,0,0.5);--md-sys-elevation-4:0px 6px 10px 4px rgba(0,0,0,0.25), 0px 2px 3px rgba(0,0,0,0.5);--md-sys-elevation-5:0px 8px 12px 6px rgba(0,0,0,0.25), 0px 4px 4px rgba(0,0,0,0.5)}[data-density=\"-1\"],[density=\"-1\"]{--md-sys-density-scale:-1;--md-sys-spacing-row-height:52px}[data-density=\"-2\"],[density=\"-2\"]{--md-sys-density-scale:-2;--md-sys-spacing-row-height:48px;--md-sys-spacing-inset-md:8px;--md-sys-spacing-inset-lg:12px;--md-sys-spacing-inset-xl:20px;--md-sys-spacing-gap-md:8px;--md-sys-spacing-gap-lg:12px}[data-density=\"-3\"],[density=\"-3\"]{--md-sys-density-scale:-3;--md-sys-spacing-row-height:44px;--md-sys-spacing-inset-sm:4px;--md-sys-spacing-inset-md:8px;--md-sys-spacing-inset-lg:12px;--md-sys-spacing-inset-xl:16px;--md-sys-spacing-gap-sm:4px;--md-sys-spacing-gap-md:8px;--md-sys-spacing-gap-lg:12px}[data-density=\"-4\"],[density=\"-4\"]{--md-sys-density-scale:-4;--md-sys-spacing-row-height:40px;--md-sys-spacing-inset-sm:4px;--md-sys-spacing-inset-md:8px;--md-sys-spacing-inset-lg:8px;--md-sys-spacing-inset-xl:16px;--md-sys-spacing-gap-xs:2px;--md-sys-spacing-gap-sm:4px;--md-sys-spacing-gap-md:4px;--md-sys-spacing-gap-lg:8px}:root{--md-sys-ripple-enabled:1;--md-sys-shape-morph-enabled:1}[data-ripple=\"off\"],[ripple=\"off\"]{--md-sys-ripple-enabled:0}[data-ripple=\"on\"],[ripple=\"on\"]{--md-sys-ripple-enabled:1}[data-shape-morph=\"off\"],[shape-morph=\"off\"]{--md-sys-shape-morph-enabled:0}[data-shape-morph=\"on\"],[shape-morph=\"on\"]{--md-sys-shape-morph-enabled:1}";
6
-
7
4
  /*
8
5
  Stencil Client Platform v4.44.0 | MIT Licensed | https://stenciljs.com
9
6
  */
@@ -265,10 +262,7 @@ var writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);
265
262
 
266
263
  // src/utils/style.ts
267
264
  function createStyleSheetIfNeededAndSupported(styles2) {
268
- if (!supportsConstructableStylesheets) return void 0;
269
- const sheet = new CSSStyleSheet();
270
- sheet.replaceSync(styles2);
271
- return sheet;
265
+ return void 0;
272
266
  }
273
267
 
274
268
  // src/utils/shadow-root.ts
@@ -280,17 +274,13 @@ function createShadowRoot(cmpMeta) {
280
274
  opts.delegatesFocus = !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */);
281
275
  }
282
276
  const shadowRoot = this.attachShadow(opts);
283
- if (globalStyleSheet === void 0) globalStyleSheet = (_a = createStyleSheetIfNeededAndSupported(globalStyles)) != null ? _a : null;
277
+ if (globalStyleSheet === void 0) globalStyleSheet = (_a = createStyleSheetIfNeededAndSupported()) != null ? _a : null;
284
278
  if (globalStyleSheet) {
285
279
  if (supportsMutableAdoptedStyleSheets) {
286
280
  shadowRoot.adoptedStyleSheets.push(globalStyleSheet);
287
281
  } else {
288
282
  shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, globalStyleSheet];
289
283
  }
290
- } else if (!supportsConstructableStylesheets) {
291
- const styleElm = document.createElement("style");
292
- styleElm.innerHTML = globalStyles;
293
- shadowRoot.prepend(styleElm);
294
284
  }
295
285
  }
296
286
  var getSlottedChildNodes = (childNodes) => {
@@ -2523,7 +2513,7 @@ function transformTag(tag) {
2523
2513
  return tag;
2524
2514
  }
2525
2515
 
2526
- export { Host as H, getElement as a, bootstrapLazy as b, createEvent as c, forceUpdate as f, globalScripts as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
2527
- //# sourceMappingURL=index-DTaX19_O.js.map
2516
+ export { Host as H, bootstrapLazy as b, createEvent as c, forceUpdate as f, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
2517
+ //# sourceMappingURL=index-WmvQpZnM.js.map
2528
2518
 
2529
- //# sourceMappingURL=index-DTaX19_O.js.map
2519
+ //# sourceMappingURL=index-WmvQpZnM.js.map