@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 +0,0 @@
1
- {"version":3,"file":"virtual-select-controller-BEWIC0pC.js","sources":["src/utils/select-options.ts","src/utils/virtual-window.ts","src/wasm/engine.wasm.ts","src/wasm/engine-abi.ts","src/utils/wasm-option-store.ts","src/utils/virtual-select-controller.ts"],"sourcesContent":["/**\n * Shared option model + reader for `md-select` / `md-multi-select`.\n *\n * Both components accept options two ways (decided by the consumer):\n * 1. Declarative slotted `<md-select-option>` children (primary API —\n * framework-friendly, supports rich labels + per-option icons).\n * 2. A programmatic `options` array prop (data-driven lists).\n *\n * `collectOptions()` normalises either source into a single flat\n * `SelectOptionData[]` the pickers render into `md-menu-item`s. When\n * slotted children are present they take precedence; otherwise the\n * array prop is used. This keeps the result predictable (no silent\n * duplication when a consumer accidentally supplies both).\n */\n\n/** Normalised option the pickers render. */\nexport interface SelectOptionData {\n /** Stable identifier — emitted in the picker `value` and used for matching. */\n value: string;\n /** Visible label rendered in the menu, chips, and the trigger text. */\n label: string;\n /** Disabled options stay visible but cannot be selected. */\n disabled: boolean;\n /** Optional Material Symbols leading-icon glyph. */\n icon?: string;\n /** Optional CSS colour applied to the leading icon (e.g. a status/swatch hue).\n * Any CSS `<color>` — hex, `rgb()`, or a theme token like\n * `var(--md-sys-color-primary)`. Ignored when the option has no `icon`, and\n * not carried on the virtualized (WASM) path — huge datasets fall back to the\n * `--md-{multi-}select-option-icon-color` token. */\n iconColor?: string;\n /** Optional secondary text rendered under the label in the menu. */\n supportingText?: string;\n /** Initial-selected hint carried by the option element / array entry. */\n selected?: boolean;\n}\n\n/** Programmatic option entry accepted by the `options` array prop. */\nexport interface SelectOptionInit {\n value: string;\n label?: string;\n disabled?: boolean;\n icon?: string;\n iconColor?: string;\n supportingText?: string;\n selected?: boolean;\n}\n\n/** Element-side shape of a slotted `<md-select-option>`. */\ninterface SelectOptionEl extends HTMLElement {\n value?: string;\n label?: string;\n disabled?: boolean;\n icon?: string;\n iconColor?: string;\n supportingText?: string;\n selected?: boolean;\n}\n\nfunction fromElement(el: SelectOptionEl): SelectOptionData {\n const label = (el.label || el.getAttribute('label') || el.textContent || '').trim();\n return {\n value: el.value ?? el.getAttribute('value') ?? '',\n label,\n disabled: el.disabled ?? el.hasAttribute('disabled'),\n icon: el.icon || el.getAttribute('icon') || undefined,\n iconColor: el.iconColor || el.getAttribute('icon-color') || undefined,\n supportingText:\n el.supportingText || el.getAttribute('supporting-text') || undefined,\n selected: el.selected ?? el.hasAttribute('selected'),\n };\n}\n\nfunction fromInit(o: SelectOptionInit): SelectOptionData {\n return {\n value: o.value,\n label: o.label ?? o.value,\n disabled: !!o.disabled,\n icon: o.icon,\n iconColor: o.iconColor,\n supportingText: o.supportingText,\n selected: !!o.selected,\n };\n}\n\n/**\n * A dataset given as a row factory rather than a materialised array, so very\n * large option sets (tens of millions) can be streamed into the WASM store\n * without ever holding the whole array in JS at once.\n */\nexport interface OptionRowSource {\n count: number;\n getRow: (index: number) => SelectOptionInit;\n}\n\n/**\n * Type guard distinguishing a row factory from a materialised array.\n * (`Array.isArray` doesn't narrow a `readonly[]` union, so this is explicit.)\n */\nexport function isRowSource(\n source: ReadonlyArray<SelectOptionInit> | OptionRowSource,\n): source is OptionRowSource {\n return !Array.isArray(source);\n}\n\n/** Materialise a row source (array or factory) into a plain array. */\nexport function rowsToArray(\n source: ReadonlyArray<SelectOptionInit> | OptionRowSource,\n): SelectOptionInit[] {\n if (!isRowSource(source)) return source.slice();\n const out = new Array<SelectOptionInit>(source.count);\n for (let i = 0; i < source.count; i++) out[i] = source.getRow(i);\n return out;\n}\n\n/** Normalise a programmatic `options` array to `SelectOptionData[]`. */\nexport function normalizeInits(inits: ReadonlyArray<SelectOptionInit>): SelectOptionData[] {\n return inits.map(fromInit);\n}\n\n/**\n * Read the option set for a picker host. Slotted `<md-select-option>`\n * children win when present; otherwise the `options` array is used.\n */\nexport function collectOptions(\n host: HTMLElement,\n optionsProp?: SelectOptionInit[],\n): SelectOptionData[] {\n // Direct light-DOM children only (avoids `:scope`, which mock-doc/older\n // engines don't support, and avoids reaching into nested option groups).\n const slotted = Array.from(host.children).filter(\n (c) => c.tagName.toLowerCase() === 'md-select-option',\n ) as SelectOptionEl[];\n\n if (slotted.length > 0) {\n return slotted.map(fromElement);\n }\n return (optionsProp ?? []).map(fromInit);\n}\n\n/** Label for a single value, or '' if not found. */\nexport function labelFor(options: SelectOptionData[], value: string): string {\n return options.find((o) => o.value === value)?.label ?? '';\n}\n","/**\n * Fixed-row-height virtual windowing math, shared by the virtualized selects.\n *\n * Pure and DOM-free so it can be unit-tested directly. Given the scroll offset\n * and viewport size, it returns the slice of rows to render plus the spacer\n * heights that make the scroll container behave as if every row were present.\n *\n * Two regimes:\n * - Exact: when the full list height fits under `maxScrollHeight`, the spacers\n * reproduce the real height 1:1 and the offset maps to a row directly.\n * - Scaled: when the list is taller than a browser can lay out (millions of\n * rows × row height easily exceeds the ~16–33M px element-height cap), the\n * spacers reproduce a *capped* height and the scroll offset maps\n * proportionally onto the row range. The rendered block is always\n * positioned to cover the viewport, so the list never shows blank rows and\n * can be scrolled all the way to the end.\n */\nexport interface WindowCalc {\n /** First filtered index to render (inclusive), overscan applied. */\n start: number;\n /** One past the last filtered index to render (exclusive). */\n end: number;\n /** Spacer height (px) before the first rendered row. */\n topPad: number;\n /** Spacer height (px) after the last rendered row. */\n bottomPad: number;\n /** Total scrollable height the spacers reproduce (topPad + rows + bottomPad). */\n scrollHeight: number;\n /**\n * The scroll offset this window is laid out for. Equal to the input scrollTop\n * for mouse-driven windows; for an anchored (keyboard-nav) window it is the\n * offset the caller should apply so the anchor row lands at the viewport top.\n */\n scrollTop: number;\n}\n\n/**\n * Default ceiling on the scrollable height. Comfortably under every major\n * browser's maximum element height (Firefox ~17.9M, Chrome ~33.5M) so the\n * spacers always lay out, while still giving smooth scroll resolution for\n * millions of rows. The controller can lower this further at runtime if it\n * detects the browser clamping even shorter.\n */\nexport const DEFAULT_MAX_SCROLL_HEIGHT = 1_500_000;\n\nexport function computeWindow(\n scrollTop: number,\n viewportHeight: number,\n rowHeight: number,\n total: number,\n overscan: number,\n maxScrollHeight: number = DEFAULT_MAX_SCROLL_HEIGHT,\n // In the scaled regime, pin the first rendered row to this index instead of\n // deriving it from the scroll fraction. Keyboard nav uses this because integer\n // scrollTop is too coarse to address individual rows in a multi-million list.\n anchorFirstRow: number = -1,\n): WindowCalc {\n if (total <= 0 || rowHeight <= 0 || viewportHeight <= 0) {\n const realHeight = total > 0 && rowHeight > 0 ? total * rowHeight : 0;\n return { start: 0, end: 0, topPad: 0, bottomPad: realHeight, scrollHeight: realHeight, scrollTop: 0 };\n }\n\n const realHeight = total * rowHeight;\n const visibleCount = Math.ceil(viewportHeight / rowHeight);\n\n // ── Exact regime: the list fits, spacers mirror the real height. ──\n if (realHeight <= maxScrollHeight) {\n const clamped = Math.min(Math.max(0, scrollTop), Math.max(0, realHeight - viewportHeight));\n const firstVisible = Math.floor(clamped / rowHeight);\n const start = Math.min(total, Math.max(0, firstVisible - overscan));\n const end = Math.min(total, Math.max(start, firstVisible + visibleCount + overscan));\n return {\n start,\n end,\n topPad: start * rowHeight,\n bottomPad: Math.max(0, (total - end) * rowHeight),\n scrollHeight: realHeight,\n scrollTop: clamped,\n };\n }\n\n // ── Scaled regime: list taller than `maxScrollHeight`. ──\n const scrollHeight = maxScrollHeight;\n const maxScrollTop = Math.max(1, scrollHeight - viewportHeight);\n const maxFirstRow = Math.max(0, total - visibleCount);\n\n if (anchorFirstRow >= 0) {\n // Keyboard nav: position the anchor row at the viewport top and *derive* the\n // scroll offset to match. Integer scrollTop is too coarse to address single\n // rows near the ends of a multi-million-row list, so we treat the offset as\n // an output (the caller applies `scrollTop`) instead of an input. This is\n // what makes ArrowDown/ArrowUp keep advancing past the rendered window.\n const firstVisibleRow = Math.min(maxFirstRow, anchorFirstRow);\n const aboveRows = Math.min(overscan, firstVisibleRow);\n const start = firstVisibleRow - aboveRows;\n const end = Math.min(total, firstVisibleRow + visibleCount + overscan);\n const blockHeight = (end - start) * rowHeight;\n // Use the SAME proportional row↔offset mapping as the mouse-scroll branch\n // below, so a given offset uniquely identifies the anchor row and re-deriving\n // the window from `scrollTop` (when the anchor is dropped) lands on the same\n // row. We deliberately do NOT pull the offset up to bottom-align the block\n // near the end (an earlier `hi` clamp did): that collapsed many adjacent\n // anchors onto one integer offset, so a single stray scroll event would\n // re-map that offset proportionally and teleport the view thousands of rows\n // (ArrowUp \"jumping\" near the bottom of a huge list). `lo` still keeps\n // topPad ≥ 0 near the very top. The block may now extend a few hundred px\n // past the nominal cap at the very end; we clamp `bottomPad` to ≥ 0 and let\n // the real content height absorb the remainder — negligible against\n // `scrollHeight`, and the offset stays reachable.\n const lo = aboveRows * rowHeight;\n const proportional = Math.round((firstVisibleRow / Math.max(1, maxFirstRow)) * maxScrollTop);\n const usedScrollTop = Math.max(lo, Math.min(maxScrollTop, proportional));\n const topPad = usedScrollTop - aboveRows * rowHeight;\n const bottomPad = Math.max(0, scrollHeight - topPad - blockHeight);\n return { start, end, topPad, bottomPad, scrollHeight, scrollTop: usedScrollTop };\n }\n\n // Mouse scroll: the browser's scrollTop is authoritative; map it onto the row\n // range and seat the block so the first visible row lands at the viewport top\n // (overscan above limited to the room the offset leaves, so topPad stays ≥ 0).\n const clamped = Math.min(Math.max(0, scrollTop), maxScrollTop);\n const firstVisibleRow = Math.round((clamped / maxScrollTop) * maxFirstRow);\n const aboveRows = Math.min(overscan, firstVisibleRow, Math.floor(clamped / rowHeight));\n const start = firstVisibleRow - aboveRows;\n const end = Math.min(total, firstVisibleRow + visibleCount + overscan);\n const blockHeight = (end - start) * rowHeight;\n const maxTop = Math.max(0, scrollHeight - blockHeight);\n let topPad = clamped - aboveRows * rowHeight;\n if (topPad < 0) topPad = 0;\n else if (topPad > maxTop) topPad = maxTop;\n const bottomPad = Math.max(0, scrollHeight - topPad - blockHeight);\n\n return { start, end, topPad, bottomPad, scrollHeight, scrollTop: clamped };\n}\n","// 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","/**\n * Hand-written ABI surface for the WASM option engine.\n *\n * `engine.wasm.ts` (the base64 blob) is generated by scripts/build-wasm.mjs;\n * this file is the stable, committed wrapper the rest of the codebase imports.\n * Keep `EngineExports` in sync with the exports of `engine.ts`.\n */\nimport { WASM_BASE64 } from './engine.wasm';\n\n/** Filter modes accepted by `setQuery` (mirrors engine.ts). */\nexport const FILTER_SUBSTRING = 0;\nexport const FILTER_PREFIX = 1;\nexport const FILTER_FUZZY = 2;\n\n/** The functions exported by the compiled WASM engine. */\nexport interface EngineExports {\n memory: WebAssembly.Memory;\n reserve(\n rows: number,\n valueBytesTotal: number,\n labelBytesTotal: number,\n iconBytesTotal: number,\n supportBytesTotal: number,\n ): void;\n valueWritePtr(): number;\n labelWritePtr(): number;\n iconWritePtr(): number;\n supportWritePtr(): number;\n appendRow(\n valueLen: number,\n labelLen: number,\n iconLen: number,\n supportLen: number,\n flags: number,\n ): number;\n finalizeLoad(): void;\n queryPtr(): number;\n queryCapacity(): number;\n setQuery(queryLen: number, mode: number): number;\n totalCount(): number;\n filteredCount(): number;\n rowAt(filteredIndex: number): number;\n valuePtr(absIndex: number): number;\n valueLen(absIndex: number): number;\n labelPtr(absIndex: number): number;\n labelLen(absIndex: number): number;\n iconPtr(absIndex: number): number;\n iconLen(absIndex: number): number;\n supportPtr(absIndex: number): number;\n supportLen(absIndex: number): number;\n rowFlags(absIndex: number): number;\n indexOfValue(queryLen: number): number;\n findLabelPrefix(queryLen: number, fromFilteredIndex: number): number;\n reset(): void;\n}\n\nfunction decodeBase64(b64: string): Uint8Array {\n if (typeof atob === 'function') {\n const bin = atob(b64);\n const out = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);\n return out;\n }\n // Node without a global atob (older runtimes / spec env).\n return Uint8Array.from(Buffer.from(b64, 'base64'));\n}\n\n/**\n * Compiled once per process — the module bytes never change, and every\n * consumer gets its own isolated instance (fresh memory) below. Without this\n * cache each component instance re-decoded and recompiled the same module.\n */\nlet modulePromise: Promise<WebAssembly.Module> | undefined;\n\n/**\n * Lazily instantiate the engine. The compiled module is a few KB; consumers\n * load their (potentially millions of) rows into its memory at runtime.\n */\nexport async function instantiateEngine(): Promise<EngineExports> {\n modulePromise ??= WebAssembly.compile(decodeBase64(WASM_BASE64));\n const module = await modulePromise;\n const imports = {\n env: {\n abort() {},\n trace() {},\n seed() {\n return Date.now();\n },\n },\n };\n const instance = await WebAssembly.instantiate(module, imports);\n return instance.exports as unknown as EngineExports;\n}\n","/**\n * `WasmOptionStore` — the single integration point both `md-select` and\n * `md-multi-select` use for virtualized, WASM-backed option data.\n *\n * It hides the engine ABI entirely (see `wasm/engine-abi.ts`): the dataset is\n * packed into WASM linear memory at `load()` time and JS keeps no copy, so a\n * select can hold millions of options while only ever decoding the ~visible\n * window back out per render. Filtering/typeahead run inside WASM.\n *\n * One instance per component → one `WebAssembly.Instance` → isolated memory.\n */\nimport {\n EngineExports,\n FILTER_SUBSTRING,\n instantiateEngine,\n} from '../wasm/engine-abi';\nimport { isRowSource, OptionRowSource, SelectOptionInit } from './select-options';\n\n/** A row read back out of the store for rendering. */\nexport interface VirtualRow {\n /** Absolute row index in the dataset (stable across filtering). */\n index: number;\n value: string;\n label: string;\n disabled: boolean;\n /** Material Symbols leading-icon glyph, or '' when the dataset has no icons. */\n icon: string;\n /** Secondary line under the label, or '' when the dataset has no supporting text. */\n supportingText: string;\n}\n\n/** Filter strategy, mapped to the engine's `setQuery` mode. */\nexport type FilterMode = 'substring' | 'prefix' | 'fuzzy';\n\nconst FILTER_MODE: Record<FilterMode, number> = {\n substring: 0,\n prefix: 1,\n fuzzy: 2,\n};\n\nconst DISABLED_FLAG = 1;\n\n/**\n * Time budget (ms) for one main-thread slice while packing. Bounding every\n * slice to roughly a frame keeps busy animations (the loading indicator)\n * fluid during multi-million-row loads — a fixed row-count chunk (formerly\n * 250k rows) blocked 100ms+ per chunk and dropped the spinner to ~7fps.\n */\nconst LOAD_SLICE_BUDGET_MS = 6;\n\n/** Rows between clock reads inside a slice (amortises performance.now()).\n * Small enough that one stride stays well inside the slice budget even with\n * an expensive consumer getRow (~1.4µs/row measured → ~3ms per stride). */\nconst LOAD_STRIDE = 2_048;\n\n/** Millisecond clock that also works in non-DOM (spec) environments. */\nconst nowMs: () => number =\n typeof performance !== 'undefined' && typeof performance.now === 'function'\n ? () => performance.now()\n : () => Date.now();\n\n/** Yield to the event loop so the browser can handle input mid-load. NB:\n * scheduler.yield() continuations PREEMPT rendering, so this alone does not\n * produce paints — see yieldForPaint(). */\nfunction yieldToMain(): Promise<void> {\n const scheduler = (globalThis as { scheduler?: { yield?: () => Promise<void> } }).scheduler;\n if (scheduler?.yield) return scheduler.yield();\n return new Promise((resolve) => setTimeout(resolve, 0));\n}\n\n/**\n * Work window between paint yields. Deliberately UNDER a 60Hz frame (16.7ms):\n * we resume ~1ms after a paint, so a 16ms window would finish just past the\n * next vsync and miss it (measured: alternating 17/33ms gaps → 25ms average).\n * 12ms of work + up to a stride of overshoot still lands the rAF request\n * before the deadline, giving a consistent ~16.7ms cadence.\n */\nconst PAINT_INTERVAL_MS = 12;\n\n/**\n * Yield in a way that guarantees the browser can PAINT when a frame is due —\n * scheduler.yield continuations outprioritise rendering, which froze the\n * loading animation to ~10fps during multi-million-row packs. When a frame is\n * due, await requestAnimationFrame (a real rendering opportunity); otherwise\n * take the cheap yield.\n */\nasync function yieldForPaint(lastPaint: { t: number }): Promise<void> {\n if (\n typeof requestAnimationFrame === 'function' &&\n nowMs() - lastPaint.t >= PAINT_INTERVAL_MS\n ) {\n // Resume AFTER the paint, not inside the rAF callback: resolving in rAF\n // would continue the pack as a microtask still inside the rendering-steps\n // task — the paint would then wait behind the next 16ms of work (measured\n // as ~33ms frame gaps). rAF marks the frame; the nested macrotask lands\n // once rendering has actually flushed.\n await new Promise<void>((resolve) => {\n requestAnimationFrame(() => setTimeout(resolve, 0));\n });\n lastPaint.t = nowMs();\n return;\n }\n await yieldToMain();\n}\n\n/** True when this runtime can host the engine (false in non-WASM SSR/test envs). */\nexport function isWasmSupported(): boolean {\n return typeof WebAssembly !== 'undefined' && typeof WebAssembly.instantiate === 'function';\n}\n\n/**\n * UTF-8 byte length of a string, matching `TextEncoder` semantics (lone\n * surrogates count as the 3-byte U+FFFD replacement). Allocation-free, so the\n * load sizing pass over millions of rows stays cheap.\n */\nexport function utf8ByteLength(str: string): number {\n let bytes = 0;\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff) {\n const next = str.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3; // lone high surrogate → U+FFFD\n }\n } else {\n bytes += 3; // BMP ≥ 0x800, or lone low surrogate → U+FFFD\n }\n }\n return bytes;\n}\n\nexport class WasmOptionStore {\n private engine?: EngineExports;\n private ready?: Promise<void>;\n private enc = new TextEncoder();\n private dec = new TextDecoder();\n private _length = 0;\n private _total = 0;\n private mode: number = FILTER_SUBSTRING;\n\n /** Lazily instantiate the engine (memoized). */\n ensureReady(): Promise<void> {\n if (!this.ready) {\n this.ready = isWasmSupported()\n ? instantiateEngine().then((e) => {\n this.engine = e;\n })\n : Promise.reject(new Error('WebAssembly is not available in this environment'));\n }\n return this.ready;\n }\n\n get ready$(): boolean {\n return !!this.engine;\n }\n\n /** Current filtered row count. */\n get length(): number {\n return this._length;\n }\n\n /** Total rows loaded (ignores the active filter). */\n get total(): number {\n return this._total;\n }\n\n setFilterMode(mode: FilterMode): void {\n this.mode = FILTER_MODE[mode] ?? FILTER_SUBSTRING;\n }\n\n private mem(): Uint8Array {\n // Re-derived on every read batch: a prior `memory.grow` detaches the old\n // ArrayBuffer, so a cached view would throw.\n return new Uint8Array(this.engine!.memory.buffer);\n }\n\n /**\n * Load a dataset into WASM memory. Accepts either a materialised array or a\n * row factory (`{ count, getRow }`) — the factory path never holds more than\n * one row in JS at a time, so it scales to tens of millions of options. Two\n * passes over the input: size, then encode each row's UTF-8 directly into the\n * engine's buffers. JS references to the rows are not retained.\n */\n async load(source: ReadonlyArray<SelectOptionInit> | OptionRowSource): Promise<void> {\n await this.ensureReady();\n const e = this.engine!;\n\n let count: number;\n let at: (i: number) => SelectOptionInit;\n if (isRowSource(source)) {\n count = source.count;\n at = source.getRow;\n } else {\n count = source.length;\n at = (i) => source[i];\n }\n\n const lastPaint = { t: nowMs() };\n\n // Pass 1 — size the columns. TIME-SLICED with yields so a\n // multi-million-row load never blocks the main thread longer than about a\n // frame: the browser paints (fluid loading animation) and handles input\n // between slices. Icon / supporting-text totals stay 0 when the dataset\n // uses neither, so the engine skips those columns entirely.\n let valueBytesTotal = 0;\n let labelBytesTotal = 0;\n let iconBytesTotal = 0;\n let supportBytesTotal = 0;\n for (let i = 0; i < count; ) {\n const sliceStart = nowMs();\n do {\n const end = Math.min(count, i + LOAD_STRIDE);\n for (; i < end; i++) {\n const r = at(i);\n valueBytesTotal += utf8ByteLength(r.value);\n labelBytesTotal += utf8ByteLength(r.label ?? r.value);\n if (r.icon) iconBytesTotal += utf8ByteLength(r.icon);\n if (r.supportingText) supportBytesTotal += utf8ByteLength(r.supportingText);\n }\n } while (i < count && nowMs() - sliceStart < LOAD_SLICE_BUDGET_MS);\n if (i < count) await yieldForPaint(lastPaint);\n }\n\n e.reserve(count, valueBytesTotal, labelBytesTotal, iconBytesTotal, supportBytesTotal);\n\n // Pass 2 — encode each row's UTF-8 straight into the engine buffers, also\n // time-sliced + yielding. The memory view is re-derived per slice: appendRow\n // never grows memory, but a yield could let other work run in between. Read\n // all four write pointers before appendRow — it advances every cursor.\n for (let i = 0; i < count; ) {\n const sliceStart = nowMs();\n const mem = this.mem();\n do {\n const end = Math.min(count, i + LOAD_STRIDE);\n for (; i < end; i++) {\n const r = at(i);\n const vp = e.valueWritePtr();\n const v = this.enc.encodeInto(r.value, mem.subarray(vp));\n const lp = e.labelWritePtr();\n const l = this.enc.encodeInto(r.label ?? r.value, mem.subarray(lp));\n const ip = e.iconWritePtr();\n const ic =\n iconBytesTotal > 0 ? this.enc.encodeInto(r.icon ?? '', mem.subarray(ip)) : null;\n const sp = e.supportWritePtr();\n const sc =\n supportBytesTotal > 0\n ? this.enc.encodeInto(r.supportingText ?? '', mem.subarray(sp))\n : null;\n e.appendRow(\n v.written ?? 0,\n l.written ?? 0,\n ic?.written ?? 0,\n sc?.written ?? 0,\n r.disabled ? DISABLED_FLAG : 0,\n );\n }\n } while (i < count && nowMs() - sliceStart < LOAD_SLICE_BUDGET_MS);\n if (i < count) await yieldForPaint(lastPaint);\n }\n\n e.finalizeLoad(); // allocates the value index — may grow memory\n\n this._total = e.totalCount();\n this._length = e.filteredCount();\n }\n\n /** Write a string into the engine's scratch buffer; returns bytes written. */\n private writeScratch(s: string): number {\n const e = this.engine!;\n const cap = e.queryCapacity();\n const ptr = e.queryPtr();\n const { written } = this.enc.encodeInto(s, this.mem().subarray(ptr, ptr + cap));\n return written ?? 0;\n }\n\n /** Apply a filter query. Returns the new filtered length. */\n setQuery(query: string): number {\n if (!this.engine) return 0;\n const len = this.writeScratch(query);\n this._length = this.engine.setQuery(len, this.mode);\n return this._length;\n }\n\n private decodeRow(absIndex: number, mem: Uint8Array): VirtualRow {\n const e = this.engine!;\n const vp = e.valuePtr(absIndex);\n const vl = e.valueLen(absIndex);\n const lp = e.labelPtr(absIndex);\n const ll = e.labelLen(absIndex);\n // Icon / supporting-text columns return 0-length ranges when the dataset\n // didn't supply them, so these decode to '' at no extra packing cost.\n const ip = e.iconPtr(absIndex);\n const il = e.iconLen(absIndex);\n const sp = e.supportPtr(absIndex);\n const sl = e.supportLen(absIndex);\n return {\n index: absIndex,\n value: this.dec.decode(mem.subarray(vp, vp + vl)),\n label: this.dec.decode(mem.subarray(lp, lp + ll)),\n disabled: (e.rowFlags(absIndex) & DISABLED_FLAG) !== 0,\n icon: il > 0 ? this.dec.decode(mem.subarray(ip, ip + il)) : '',\n supportingText: sl > 0 ? this.dec.decode(mem.subarray(sp, sp + sl)) : '',\n };\n }\n\n /** Decode `count` rows starting at filtered position `start`. */\n getWindow(start: number, count: number): VirtualRow[] {\n if (!this.engine) return [];\n const e = this.engine;\n const mem = this.mem();\n const out: VirtualRow[] = [];\n const from = Math.max(0, start);\n const to = Math.min(this._length, start + count);\n for (let fi = from; fi < to; fi++) {\n const abs = e.rowAt(fi);\n if (abs >= 0) out.push(this.decodeRow(abs, mem));\n }\n return out;\n }\n\n /** Decode a single row at filtered position `filteredIndex`, or null. */\n getRow(filteredIndex: number): VirtualRow | null {\n if (!this.engine) return null;\n const abs = this.engine.rowAt(filteredIndex);\n if (abs < 0) return null;\n return this.decodeRow(abs, this.mem());\n }\n\n /** Map a filtered position to its absolute row index, or -1. */\n rowAt(filteredIndex: number): number {\n return this.engine ? this.engine.rowAt(filteredIndex) : -1;\n }\n\n /** Disabled flag for a filtered position — flag-only, no string decode. */\n disabledAt(filteredIndex: number): boolean {\n if (!this.engine) return false;\n const abs = this.engine.rowAt(filteredIndex);\n if (abs < 0) return false;\n return (this.engine.rowFlags(abs) & DISABLED_FLAG) !== 0;\n }\n\n /** Label for a filtered position — decodes a single label. */\n labelAt(filteredIndex: number): string {\n if (!this.engine) return '';\n const abs = this.engine.rowAt(filteredIndex);\n if (abs < 0) return '';\n const lp = this.engine.labelPtr(abs);\n const ll = this.engine.labelLen(abs);\n return this.dec.decode(this.mem().subarray(lp, lp + ll));\n }\n\n /**\n * Resolve labels for selected values that may be outside the current filter\n * (e.g. the trigger text / chips). O(1) per value via the engine's index.\n */\n getLabels(values: ReadonlyArray<string>): Map<string, string> {\n const result = new Map<string, string>();\n if (!this.engine) return result;\n const e = this.engine;\n for (const value of values) {\n const len = this.writeScratch(value);\n const abs = e.indexOfValue(len);\n if (abs >= 0) {\n const lp = e.labelPtr(abs);\n const ll = e.labelLen(abs);\n result.set(value, this.dec.decode(this.mem().subarray(lp, lp + ll)));\n }\n }\n return result;\n }\n\n /** Whether a value exists in the dataset. */\n has(value: string): boolean {\n if (!this.engine) return false;\n return this.engine.indexOfValue(this.writeScratch(value)) >= 0;\n }\n\n /**\n * Typeahead helper: first filtered position at/after `fromFilteredIndex`\n * whose label starts with `query` (wraps the filtered list). Returns a\n * filtered-list index, or -1.\n */\n findLabelPrefix(query: string, fromFilteredIndex: number): number {\n if (!this.engine) return -1;\n const len = this.writeScratch(query);\n return this.engine.findLabelPrefix(len, fromFilteredIndex);\n }\n\n /** Drop the dataset. */\n reset(): void {\n this.engine?.reset();\n this._length = 0;\n this._total = 0;\n }\n}\n","/**\n * `VirtualSelectController` — the shared virtualization engine for `md-select`\n * and `md-multi-select`, so neither component duplicates the window math,\n * scroll wiring, or the `VirtualMenuProvider` glue.\n *\n * It owns a `WasmOptionStore` (the dataset, packed in WASM memory) and the\n * current scroll window. The host component supplies a tiny adapter\n * (`queryItem` + `requestRender`) and reads the controller's public window\n * fields from its `render()`.\n */\nimport { computeWindow, DEFAULT_MAX_SCROLL_HEIGHT } from './virtual-window';\n\n/** Floor under which a measured scrollHeight cannot be a genuine browser\n * element-height clamp (real clamps are millions of px — Chrome ~33.5M,\n * Firefox ~17.8M) — it just means layout wasn't ready (see detectScrollCap). */\nconst MIN_PLAUSIBLE_SCROLL_CAP = 1_000_000;\nimport {\n FilterMode,\n isWasmSupported,\n VirtualRow,\n WasmOptionStore,\n} from './wasm-option-store';\nimport { isRowSource, OptionRowSource, SelectOptionInit } from './select-options';\nimport { VirtualMenuProvider } from './types';\n\n// Larger overscan than a typical virtual list: in the scaled regime a single\n// scroll frame can advance many rows, and render is async, so extra buffered\n// rows above/below the fold keep the body from flashing blank on fast scrolls.\nconst OVERSCAN = 8;\nconst DEFAULT_ROW_HEIGHT = 48;\nconst DEFAULT_VIEWPORT_HEIGHT = 320;\n// Extra px to keep a keyboard-revealed row clear of the viewport's top/bottom\n// edge. Historically 32px to clear md-scroll-shadow's edge fade; the scroll\n// shadow was removed, so a revealed row can sit flush against the edge (0). Kept\n// as a named knob in case a future edge treatment needs slack again.\nconst EDGE_SCRIM_PAD = 0;\n\nexport interface VirtualSelectHost {\n /** The rendered `md-menu-item` for a filtered index, from the host's shadow DOM. */\n queryItem(filteredIndex: number): HTMLElement | null;\n /** Re-render the host (it reads the controller's window fields). */\n requestRender(): void;\n}\n\nexport class VirtualSelectController {\n readonly store = new WasmOptionStore();\n\n /** True once a dataset is loaded and the component should render windowed. */\n active = false;\n /** First filtered index currently rendered. */\n windowStart = 0;\n /** The decoded rows in the current window. */\n windowRows: VirtualRow[] = [];\n /** Spacer heights (px) that preserve the full scroll height. */\n topPad = 0;\n bottomPad = 0;\n /** Current filtered row count. */\n filteredLength = 0;\n /** Effective fixed row height (measured or overridden). */\n rowHeight = DEFAULT_ROW_HEIGHT;\n\n private fixedRowHeight?: number;\n private viewportEl?: HTMLElement;\n private scrollRaf = 0;\n\n /**\n * The browser's observed maximum element height. Browsers clamp very tall\n * elements (a few-million-row list × row height blows past the ~16–33M px\n * cap), so the spacers can't reproduce the true height. We start optimistic\n * and shrink to the real clamp once we can measure it (see `detectScrollCap`).\n */\n private browserMaxScroll = Infinity;\n /** The scrollable height the last `recompute` asked the spacers to produce. */\n private intendedScrollHeight = 0;\n private detectRaf = 0;\n /** Retries left for detectScrollCap while layout isn't ready (see below). */\n private detectRetries = 0;\n\n /**\n * Scaled-regime keyboard nav: the first row to render, pinned independent of\n * the (too-coarse) integer scrollTop. -1 means the window is scroll-driven.\n */\n private navAnchorFirstRow = -1;\n /** The scroll offset the last `recompute` laid the window out for. */\n private usedScrollTop = 0;\n\n constructor(private host: VirtualSelectHost) {}\n\n /** Ceiling on the spacer height: our safe default, lowered by any real clamp. */\n private effectiveMaxScroll(): number {\n return Math.min(DEFAULT_MAX_SCROLL_HEIGHT, this.browserMaxScroll);\n }\n\n setFixedRowHeight(px?: number): void {\n this.fixedRowHeight = px && px > 0 ? px : undefined;\n if (this.fixedRowHeight) this.rowHeight = this.fixedRowHeight;\n }\n\n setFilterMode(mode: FilterMode): void {\n this.store.setFilterMode(mode);\n }\n\n /** Load a dataset into WASM memory. Returns false if WASM is unavailable. */\n async load(source: ReadonlyArray<SelectOptionInit> | OptionRowSource): Promise<boolean> {\n const count = isRowSource(source) ? source.count : source.length;\n if (!isWasmSupported() || count === 0) return false;\n try {\n await this.store.ensureReady();\n } catch {\n return false;\n }\n await this.store.load(source);\n this.active = true;\n this.filteredLength = this.store.length;\n this.recompute(this.viewportEl?.scrollTop ?? 0);\n return true;\n }\n\n /** Apply a filter query and reset the scroll to the top. */\n setQuery(query: string): void {\n if (!this.active) return;\n this.filteredLength = this.store.setQuery(query);\n this.navAnchorFirstRow = -1;\n if (this.viewportEl) this.viewportEl.scrollTop = 0;\n this.recompute(0);\n }\n\n getLabels(values: ReadonlyArray<string>): Map<string, string> {\n return this.store.getLabels(values);\n }\n\n reset(): void {\n this.store.reset();\n this.active = false;\n this.windowRows = [];\n this.filteredLength = 0;\n this.windowStart = 0;\n this.topPad = 0;\n this.bottomPad = 0;\n this.navAnchorFirstRow = -1;\n }\n\n // ── Viewport wiring (call when the menu opens / closes) ──────\n\n async attachViewport(getViewport: () => Promise<HTMLElement | null>): Promise<void> {\n this.detachViewport();\n const vp = await getViewport();\n this.viewportEl = vp ?? undefined;\n if (this.viewportEl) {\n this.viewportEl.addEventListener('scroll', this.onScroll, { passive: true });\n this.measureRowHeight();\n this.recompute(this.viewportEl.scrollTop);\n this.detectRetries = 60; // ~2s of rAF pairs — spacers may render late\n this.detectScrollCap();\n }\n }\n\n detachViewport(): void {\n if (this.scrollRaf) {\n cancelAnimationFrame(this.scrollRaf);\n this.scrollRaf = 0;\n }\n if (this.detectRaf) {\n cancelAnimationFrame(this.detectRaf);\n this.detectRaf = 0;\n }\n this.viewportEl?.removeEventListener('scroll', this.onScroll);\n this.viewportEl = undefined;\n }\n\n private onScroll = () => {\n if (this.scrollRaf) return;\n this.scrollRaf = requestAnimationFrame(() => {\n this.scrollRaf = 0;\n const vp = this.viewportEl;\n if (!vp) return;\n // Tell our own programmatic scroll (driving an anchored keyboard-nav\n // window) from a genuine user scroll by value: if the offset still matches\n // what the current window was laid out for, keep the anchor; otherwise the\n // user scrolled, so resume scroll-driven windowing. (A value check is\n // robust to event coalescing/ordering, unlike a one-shot flag.)\n if (this.navAnchorFirstRow >= 0 && Math.abs(vp.scrollTop - this.usedScrollTop) <= 1) {\n return;\n }\n this.navAnchorFirstRow = -1;\n this.recompute(vp.scrollTop);\n });\n };\n\n private measureRowHeight(): void {\n if (this.fixedRowHeight) {\n this.rowHeight = this.fixedRowHeight;\n return;\n }\n const first = this.host.queryItem(this.windowStart);\n const h = first?.offsetHeight ?? 0;\n if (h > 0 && h !== this.rowHeight) {\n this.rowHeight = h;\n if (this.viewportEl) this.recompute(this.viewportEl.scrollTop);\n }\n }\n\n private recompute(scrollTop: number): void {\n const vpH = this.viewportEl?.clientHeight || DEFAULT_VIEWPORT_HEIGHT;\n const calc = computeWindow(\n scrollTop,\n vpH,\n this.rowHeight,\n this.filteredLength,\n OVERSCAN,\n this.effectiveMaxScroll(),\n this.navAnchorFirstRow,\n );\n this.windowStart = calc.start;\n this.topPad = calc.topPad;\n this.bottomPad = calc.bottomPad;\n this.intendedScrollHeight = calc.scrollHeight;\n this.usedScrollTop = calc.scrollTop;\n this.windowRows = this.store.getWindow(calc.start, calc.end - calc.start);\n this.host.requestRender();\n }\n\n /**\n * Detect the browser's real maximum element height. After the spacers lay\n * out, if the viewport's `scrollHeight` came back shorter than we asked for,\n * the browser clamped it — and that clamp *is* the true maximum, so adopt it\n * and re-window against it. Runs a couple of frames after attach so the\n * (async) spacer render has committed; idempotent and only ever shrinks.\n */\n private detectScrollCap(): void {\n if (this.detectRaf) cancelAnimationFrame(this.detectRaf);\n this.detectRaf = requestAnimationFrame(() => {\n this.detectRaf = requestAnimationFrame(() => {\n this.detectRaf = 0;\n const vp = this.viewportEl;\n if (!vp) return;\n const measured = vp.scrollHeight;\n if (\n measured > 0 &&\n measured + 2 < this.intendedScrollHeight &&\n measured < this.browserMaxScroll\n ) {\n // A small reading is NOT a browser clamp — the spacers simply have\n // not been laid out yet (e.g. the menu opened during a dataset pack\n // and still showed the uncapped busy bar when we measured). Locking\n // it in would permanently collapse the scroll geometry (the cap\n // never grows back), so retry instead.\n if (measured < MIN_PLAUSIBLE_SCROLL_CAP) {\n if (this.detectRetries-- > 0) this.detectScrollCap();\n return;\n }\n this.browserMaxScroll = measured;\n this.recompute(vp.scrollTop);\n }\n });\n });\n }\n\n // ── VirtualMenuProvider (md-menu drives nav through this) ────\n\n readonly provider: VirtualMenuProvider = {\n count: () => this.filteredLength,\n labelAt: (i) => this.store.labelAt(i),\n isDisabledAt: (i) => this.store.disabledAt(i),\n ensureVisible: (i) => this.ensureVisible(i),\n domItemForIndex: (i) => this.host.queryItem(i),\n findPrefix: (buffer, from) => this.store.findLabelPrefix(buffer, from),\n };\n\n private async ensureVisible(filteredIndex: number): Promise<void> {\n const vp = this.viewportEl;\n if (!vp) return;\n const clientH = vp.clientHeight || DEFAULT_VIEWPORT_HEIGHT;\n const realHeight = this.filteredLength * this.rowHeight;\n\n if (realHeight <= this.effectiveMaxScroll()) {\n // Exact regime: pixel offset is the row index times the row height.\n this.navAnchorFirstRow = -1;\n const top = filteredIndex * this.rowHeight;\n const bottom = top + this.rowHeight;\n // Reveal with EDGE_SCRIM_PAD of slack so the row clears the edge fade.\n // Clamped to [0, maxScroll]: rows at the very top/bottom — where no scrim\n // shows — still seat flush.\n const maxScroll = Math.max(0, vp.scrollHeight - clientH);\n if (top - EDGE_SCRIM_PAD < vp.scrollTop) {\n vp.scrollTop = Math.max(0, top - EDGE_SCRIM_PAD);\n } else if (bottom + EDGE_SCRIM_PAD > vp.scrollTop + clientH) {\n vp.scrollTop = Math.min(maxScroll, bottom + EDGE_SCRIM_PAD - clientH);\n }\n this.recompute(vp.scrollTop);\n } else {\n // Scaled regime: integer scrollTop can't address single rows (millions of\n // rows compressed into a capped height — one pixel can be dozens of rows).\n // When the target row isn't already on screen, pin the window to an anchor\n // and let `computeWindow` choose the matching scroll offset, then apply it.\n const visibleRows = Math.max(1, Math.floor(clientH / this.rowHeight));\n const visibleCount = Math.ceil(clientH / this.rowHeight);\n const maxFirstRow = Math.max(0, this.filteredLength - visibleCount);\n // First visible row: take it exactly from the anchor when the window is\n // anchor-driven (deriving it from a fractional scrollTop drifts by a row);\n // fall back to the live geometry only when scroll-driven.\n const firstVisible =\n this.navAnchorFirstRow >= 0\n ? this.navAnchorFirstRow\n : this.windowStart +\n Math.max(0, Math.round((vp.scrollTop - this.topPad) / this.rowHeight));\n const lastVisible = firstVisible + visibleRows - 1;\n\n // Re-anchor when the focused row is outside the visible range OR within\n // `padRows` of either edge. The edge check matters even when the row is\n // already visible: navigating up one row at a time makes the focused row\n // the *first* visible row (flush against the top), which is never \"outside\"\n // the range — so without it the top scroll-shadow scrim would still cover\n // the focused row. Mirrors the exact-regime branch above.\n const padRows = Math.ceil(EDGE_SCRIM_PAD / this.rowHeight);\n if (\n filteredIndex < firstVisible + padRows ||\n filteredIndex > lastVisible - padRows\n ) {\n // Reveal `padRows` clear of the top (scrolling up) or bottom (scrolling\n // down) edge, clamped to [0, maxFirstRow] so the list ends — where no\n // scrim shows — still seat the row flush.\n this.navAnchorFirstRow = Math.min(\n maxFirstRow,\n Math.max(\n 0,\n filteredIndex < firstVisible + padRows\n ? filteredIndex - padRows\n : filteredIndex - visibleRows + 1 + padRows,\n ),\n );\n }\n this.recompute(vp.scrollTop);\n // Sync the browser scroll to the offset the (anchored) window was laid out\n // for. Clamp to the viewport's real max — the capped element can render a\n // hair shorter than we asked (scroll-shadow sentinels), and overshooting by\n // even a pixel near the end gets clamped by the browser — then adopt\n // whatever it actually applied, so the scroll guard and the next \"first\n // visible\" never drift out of sync and clear the anchor.\n if (this.navAnchorFirstRow >= 0) {\n const maxScroll = Math.max(0, vp.scrollHeight - clientH);\n const target = Math.min(Math.round(this.usedScrollTop), maxScroll);\n if (target !== Math.round(vp.scrollTop)) {\n vp.scrollTop = target;\n }\n this.usedScrollTop = vp.scrollTop;\n }\n }\n // Wait for the host to render the target row into the window so the menu\n // can move real focus onto it.\n for (let tries = 0; tries < 8; tries++) {\n await new Promise<void>((resolve) => requestAnimationFrame(() => resolve()));\n if (this.host.queryItem(filteredIndex)) return;\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as s,H as i,a}from"./p-DTaX19_O.js";import{L as r}from"./p-RLxbNqRv.js";import{r as n,d as o,a as h,b as c,p as d}from"./p-DvOKnoqK.js";import{n as l,b as m,a as p}from"./p-C_ogF68H.js";import"./p-DzPKu-Ma.js";const u=()=>`:host{--_block-size:var(--md-area-chart-block-size, auto);--_min-block-size:var(--md-area-chart-min-block-size, max(120px, calc(160px + var(--md-sys-density-scale, 0) * 8px)));--_aspect-ratio:var(--md-area-chart-aspect-ratio, 16 / 9);--_background:var(--md-area-chart-background, var(--md-sys-color-surface-container-low, #F7F2FA));--_padding:var(--md-area-chart-padding, max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px)));--_zoom-size:var(--md-area-chart-zoom-size, 28px);--_zoom-track-color:var(--md-area-chart-zoom-track-color, var(--md-sys-color-surface-container-highest, #E6E0E9));--_zoom-window-color:var(--md-area-chart-zoom-window-color, var(--md-sys-color-secondary-container, #E8DEF8));--_zoom-handle-color:var(--md-area-chart-zoom-handle-color, var(--md-sys-color-primary, #6750A4));--_zoom-band-color:var(--md-area-chart-zoom-band-color, color-mix(in srgb, var(--md-sys-color-primary, #6750A4) 16%, transparent));--_zoom-pan-inset:10px;--_shape:var(--md-area-chart-shape, max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px)));--_empty-color:var(--md-area-chart-empty-color, var(--md-sys-color-on-surface-variant, #49454F));--_empty-background:var(--md-area-chart-empty-background, var(--_background));--_empty-font:var(--md-area-chart-empty-font, var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif));--_empty-font-size:var(--md-area-chart-empty-font-size, var(--md-sys-typescale-body-medium-font-size, 14px));--_empty-icon-size:var(--md-area-chart-empty-icon-size, 40px);display:block;position:relative;inline-size:100%;block-size:var(--_block-size);min-block-size:var(--_min-block-size);background:var(--_background);padding:var(--_padding);border-radius:var(--_shape);box-sizing:border-box;aspect-ratio:var(--_aspect-ratio)}.md-area-chart__header,.md-area-chart__footer{display:contents}.md-area-chart__header>slot[name='header']::slotted(*),.md-area-chart__footer>slot[name='footer']::slotted(*){display:block;margin-block:8px}.md-area-chart__canvas{position:absolute;inset:var(--_padding);min-block-size:0;min-inline-size:0}.md-area-chart__empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;box-sizing:border-box;padding:24px;background:var(--_empty-background);border-radius:var(--_shape);color:var(--_empty-color);font-family:var(--_empty-font);font-size:var(--_empty-font-size);line-height:var(--md-sys-typescale-body-medium-line-height, 20px);pointer-events:none;text-align:center}.md-area-chart__empty ::slotted(.material-symbols-outlined),.md-area-chart__empty ::slotted(.material-symbols-rounded),.md-area-chart__empty ::slotted(.material-symbols-sharp),.md-area-chart__empty ::slotted(.material-icons){font-size:var(--_empty-icon-size) !important;line-height:1;opacity:0.55}.md-area-chart__a11y-table{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media (forced-colors: active){:host{forced-color-adjust:auto}}.md-area-chart__live{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}[part='legend'] button:focus-visible{outline:3px solid var(--md-sys-color-secondary, #625B71);outline-offset:2px;border-radius:6px}.md-area-chart__canvas:focus-visible{outline:3px solid var(--md-sys-color-secondary, #625B71);outline-offset:-3px;border-radius:4px}.md-area-chart__loading{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;box-sizing:border-box;padding:24px;background:var(--_empty-background);border-radius:var(--_shape);color:var(--_empty-color);font-family:var(--_empty-font);font-size:var(--_empty-font-size);text-align:center}.md-area-chart__spinner{inline-size:var(--_empty-icon-size);block-size:var(--_empty-icon-size)}:host(.md-area-chart--zoom-slider) .md-area-chart__canvas{bottom:calc(var(--_padding) + var(--_zoom-size))}:host(.md-area-chart--zoom-drag) .md-area-chart__canvas{cursor:ew-resize}.md-area-chart__zoom{position:absolute;inset-inline:var(--_padding);bottom:var(--_padding);block-size:var(--_zoom-size);display:flex;align-items:center}.md-area-chart__zoom-slider{--md-slider-active-color:var(--_zoom-window-color);--md-slider-inactive-color:var(--_zoom-track-color);--md-slider-thumb-color:var(--_zoom-handle-color);--md-slider-thumb-height:var(--_zoom-size);--md-slider-track-height:12px}.md-area-chart__zoom-pan{position:absolute;inset-block:0;z-index:1;cursor:grab;touch-action:none}.md-area-chart__zoom-pan:active{cursor:grabbing}.md-area-chart__zoom-band{position:absolute;background:var(--_zoom-band-color);border-inline:1px solid var(--_zoom-handle-color);pointer-events:none}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}`;const y=class{constructor(s){t(this,s);this.mdMarkerClick=e(this,"mdMarkerClick",7);this.mdLineClick=e(this,"mdLineClick",7);this.mdAreaClick=e(this,"mdAreaClick",7);this.mdAxisClick=e(this,"mdAxisClick",7);this.mdLegendClick=e(this,"mdLegendClick",7);this.mdHover=e(this,"mdHover",7);this.mdReady=e(this,"mdReady",7);this.mdZoom=e(this,"mdZoom",7);this.label="";this.titleAlign="start";this.series=[];this.curve="smooth";this.stack="normal";this.connectNulls=false;this.showMarks=false;this.legend="top-end";this.tooltip="axis";this.zoom="none";this.locale="";this.noAnimation=false;this.animation="expressive";this.fillOpacity=.55;this.showLine=true;this.grid="horizontal";this.inverted=false;this.seriesLabels=false;this.summary="";this.labelEmpty="No data to display";this.loading=false;this.loadingLabel="Loading chart…";this.labelZoomStart="Zoom range start";this.labelZoomEnd="Zoom range end";this.axisTicks=false;this.showLabels=false;this.labelPlot="Chart data. Use the arrow keys to move between points, Home and End for the first and last, Escape to leave.";this.labelPoint="%x%: %values%";this.density=0;this.mounted=false;this.kbIndex=-1;this.announcement="";this.zoomWin=null;this.dragBand=null;this.grab=null;this.engine=null;this.ro=null;this.legendHidden=new Map;this.bindChartHost=t=>{this.chartHost=t};this.bindA11yTableHost=t=>{this.a11yTableHost=t};this.onPlotPointerDown=t=>{if(!this.zoomInside||t.button!==0||this.grab)return;if(!this.insidePlot(t))return;const e=this.hostX(t);this.grab={id:t.pointerId,kind:"band",x:e,win:this.win()};this.dragBand={x1:e,x2:e};const s=t.composedPath?.()[0]??t.target;s.setPointerCapture?.(t.pointerId)};this.onPointerMove=t=>{const e=this.grab;if(!e||e.id!==t.pointerId)return;if(e.kind==="band"){const s=this.plotRect();if(!s)return;this.dragBand={x1:e.x,x2:Math.min(Math.max(this.hostX(t),s.x),s.x+s.width)};return}const s=this.trackFrac(t.clientX);const i=this.trackFrac(e.x);if(s==null||i==null)return;const a=Math.max(1,this.dataLength()-1);const r=e.win.end-e.win.start;const n=Math.round((s-i)*a);const o=Math.min(Math.max(0,e.win.start+n),a-r);this.applyZoom(o,o+r)};this.onPointerUp=t=>{const e=this.grab;if(!e||e.id!==t.pointerId)return;this.grab=null;const s=this.dragBand;this.dragBand=null;if(e.kind!=="band"||!s)return;if(Math.abs(s.x2-s.x1)<8)return;const[i,a]=[this.indexAtX(s.x1),this.indexAtX(s.x2)].sort(((t,e)=>t-e));if(a-i>=1)this.applyZoom(i,a)};this.onPlotDblClick=t=>{if(this.zoomInside&&this.zoomWin&&this.insidePlot(t))this.resetZoom()};this.onZoomPanDown=t=>{if(t.button!==0)return;t.stopPropagation();t.preventDefault();this.grab={id:t.pointerId,kind:"pan",x:t.clientX,win:this.win()};t.target.setPointerCapture?.(t.pointerId)};this.onZoomSliderInput=t=>{t.stopPropagation();const{valueStart:e,valueEnd:s}=t.detail??{};if(e==null||s==null)return;this.applyZoom(e,s)};this.onZoomSliderEvent=t=>t.stopPropagation();this.onPlotKeyDown=t=>{const e=this.engine?.getScene();const s=Math.max(0,(e?.xPositions.length??0)-1);if(!e||s<0)return;const i=typeof getComputedStyle==="function"&&getComputedStyle(this.el).direction==="rtl";const a=i?"ArrowLeft":"ArrowRight";const r=i?"ArrowRight":"ArrowLeft";let n=this.kbIndex;switch(t.key){case a:n=this.kbIndex<0?0:Math.min(s,this.kbIndex+1);break;case r:n=this.kbIndex<0?s:Math.max(0,this.kbIndex-1);break;case"Home":n=0;break;case"End":n=s;break;case"Escape":if(this.kbIndex<0)return;n=-1;break;default:return}t.preventDefault();this.moveKeyboardCursor(n)};this.onPlotBlur=()=>{if(this.kbIndex>=0)this.moveKeyboardCursor(-1)}}seriesKeys(){const t=new Map;return this.series.map(((e,s)=>{const i=e.id!=null?`id:${e.id}`:e.label!=null?`label:${e.label}`:`pos:${s}`;const a=t.get(i)??0;t.set(i,a+1);return a===0?i:`${i}#${a}`}))}rememberLegendToggle(t,e){const s=this.seriesKeys()[t];if(s==null)return;this.legendHidden.set(s,e);if(this.legendHidden.size>256){const t=this.legendHidden.keys().next().value;this.legendHidden.delete(t)}}componentDidLoad(){this.initChart();if(typeof window!=="undefined"&&window.matchMedia){this.themeMql=window.matchMedia("(prefers-color-scheme: dark)");this.themeListener=()=>this.applyEngine();this.themeMql.addEventListener?.("change",this.themeListener)}}disconnectedCallback(){this.ro?.disconnect();this.ro=null;this.engine?.dispose();this.engine=null;if(this.themeMql&&this.themeListener){this.themeMql.removeEventListener?.("change",this.themeListener);this.themeListener=undefined;this.themeMql=undefined}}onAnyPropChange(){this.applyEngine();this.rebuildA11yTable()}async resize(){this.engine?.resize()}async replay(){this.engine?.replay()}async toDataURL(){return this.engine?.toDataURL("image/png")??""}async getInstance(){return this.engine}initChart(){this.makeEngine();this.applyEngine();this.rebuildA11yTable();this.mounted=true;this.mdReady.emit()}makeEngine(){if(!this.chartHost)return;this.ro?.disconnect();this.ro=null;this.engine?.dispose();try{this.engine=new r(this.chartHost)}catch{this.engine=null}if(this.engine&&typeof ResizeObserver!=="undefined"){this.ro=new ResizeObserver((()=>this.engine?.resize()));this.ro.observe(this.chartHost)}}buildEngineTheme(t){return{background:t.background,textColor:t.textColor,textColorMuted:t.textColorMuted,axisLineColor:t.axisLineColor,gridLineColor:t.gridColor,surface:t.surface,fontFamily:t.fontFamily,labelSize:t.labelSize,titleSize:t.titleSize}}get zoomInside(){return this.zoom==="inside"||this.zoom==="both"}get zoomSliderOn(){return this.zoom==="slider"||this.zoom==="both"}dataLength(){const t=this.series.reduce(((t,e)=>Math.max(t,e.range?.length??e.data?.length??0)),0);return Math.max(t,this.xAxis?.data?.length??0)}win(){const t=Math.max(0,this.dataLength()-1);const e=this.zoomWin;if(!e)return{start:0,end:t};const s=Math.min(Math.max(0,e.start),Math.max(0,t-1));return{start:s,end:Math.min(Math.max(s+1,e.end),t)}}applyZoom(t,e,s=false){const i=Math.max(0,this.dataLength()-1);const a=Math.min(Math.max(0,Math.round(t)),Math.max(0,i-1));const r=Math.min(Math.max(a+1,Math.round(e)),i);this.zoomWin=s?null:{start:a,end:r};this.applyEngine();this.rebuildA11yTable();this.mdZoom.emit({startIndex:s?0:a,endIndex:s?i:r,reset:s})}async setZoom(t,e){this.applyZoom(t,e)}async resetZoom(){this.applyZoom(0,0,true)}plotRect(){const t=this.engine?.getScene()?.plot;return t?{x:t.x,y:t.y,width:t.width,height:t.height}:null}zoomBandStyle(){const t=this.plotRect();if(!this.dragBand||!t)return undefined;const e=this.canvasOffset();const{x1:s,x2:i}=this.dragBand;return{left:`${e.x+Math.min(s,i)}px`,width:`${Math.abs(i-s)}px`,top:`${e.y+t.y}px`,height:`${t.height}px`}}canvasOffset(){const t=this.chartHost;if(!t)return{x:0,y:0};const e=this.el.getBoundingClientRect();const s=t.getBoundingClientRect();return{x:s.left-e.left,y:s.top-e.top}}indexAtX(t){const e=this.engine?.getScene();const s=this.win();if(!e?.xPositions?.length)return s.start;let i=0;let a=Infinity;e.xPositions.forEach(((e,s)=>{const r=Math.abs(e-t);if(r<a){a=r;i=s}}));return s.start+i}hostX(t){return t.clientX-(this.chartHost??this.el).getBoundingClientRect().left}insidePlot(t){const e=this.plotRect();if(!e)return false;const s=(this.chartHost??this.el).getBoundingClientRect();const i=t.clientX-s.left;const a=t.clientY-s.top;return i>=e.x&&i<=e.x+e.width&&a>=e.y&&a<=e.y+e.height}sliderTrackRect(){const t=this.el.shadowRoot?.querySelector(".md-area-chart__zoom-slider");if(!t)return null;const e=t.getBoundingClientRect();if(!e.width)return null;return{left:e.left,width:e.width,rtl:getComputedStyle(this.el).direction==="rtl"}}trackFrac(t){const e=this.sliderTrackRect();if(!e)return null;const s=(t-e.left)/e.width;return e.rtl?1-s:s}renderZoomSlider(){const t=Math.max(1,this.dataLength()-1);const e=this.win();const i=e=>e/t*100;const a=t=>String(this.xAxis?.data?.[t]??t);return s("div",{class:"md-area-chart__zoom",part:"zoom"},s("md-slider",{class:"md-area-chart__zoom-slider",part:"zoom-slider",exportparts:"track: zoom-track, track-active: zoom-window, thumb-knob: zoom-handle",range:true,controlled:true,min:0,max:t,step:1,valueStart:e.start,valueEnd:e.end,ariaLabelStart:this.labelZoomStart,ariaLabelEnd:this.labelZoomEnd,valueStartText:a(e.start),valueEndText:a(e.end),onMdInput:this.onZoomSliderInput,onMdChange:this.onZoomSliderEvent,onMdDragStart:this.onZoomSliderEvent,onMdDragEnd:this.onZoomSliderEvent,onMdFocus:this.onZoomSliderEvent,onMdBlur:this.onZoomSliderEvent}),s("div",{class:"md-area-chart__zoom-pan",part:"zoom-pan",style:{insetInlineStart:`calc(${i(e.start)}% + var(--_zoom-pan-inset))`,inlineSize:`max(0px, calc(${i(e.end)-i(e.start)}% - 2 * var(--_zoom-pan-inset)))`},onPointerDown:this.onZoomPanDown}))}buildSpec(t){const e=this.stack==="percentage";const s=t=>this.valueFormatter?this.valueFormatter(t):t.toLocaleString(this.locale||undefined);const i=this.zoomWin?this.win():null;const a=t=>t&&i?t.slice(i.start,i.end+1):t;const r=t=>{if(!t||!i)return t;const e={};for(const[s,a]of Object.entries(t)){const t=Number(s)-i.start;if(t>=0&&t<=i.end-i.start)e[t]=a}return e};const c=this.seriesKeys();return{series:this.series.map(((e,s)=>({label:e.label??`Series ${s+1}`,color:h(this.el,e.color,d(t.palette,s)),data:a(e.range?e.range.map((()=>null)):e.data)??[],range:a(e.range?.map(l)),fill:e.fill,stroke:e.stroke??(!this.showLine||this.stack==="wiggle"||this.stack==="silhouette"?false:undefined),curve:e.curve??this.curve,connectNulls:e.connectNulls??this.connectNulls,showMarks:e.showMarks??this.showMarks,hidden:e.hidden??this.legendHidden.get(c[s])??false,dash:e.dash,symbol:e.symbol,pointSymbols:r(e.pointSymbols),lineWidth:e.lineWidth??this.lineWidth,markSize:e.markSize??this.markSize}))),title:this.label||undefined,subtitle:this.subtitle||undefined,titleAlign:this.titleAlign,animation:this.noAnimation?"none":this.animation,animationDuration:this.animationDuration,xValues:a(this.xAxis?.data)??[],xScale:this.xAxis?.scale??"category",xFormatter:this.xAxis?.valueFormatter??(t=>o(t,this.locale)),xLabel:this.xAxis?.label,xHidden:this.xAxis?.hidden,xHideTicks:this.xAxis?.hideTicks,xDash:this.xAxis?.dash,xGridDash:this.xAxis?.gridDash,xBands:n(this.el,this.xAxis?.bands),yBands:n(this.el,this.yAxis?.bands),xBreaks:this.xAxis?.breaks,yBreaks:this.yAxis?.breaks,yScale:this.yAxis?.scale??"value",yMin:e?0:this.yAxis?.min,yMax:e?100:this.yAxis?.max,yFormatter:e?t=>`${Math.round(t)}%`:s,yTickFormatter:!e&&this.yAxis?.valueFormatter?t=>this.yAxis.valueFormatter(t):undefined,yLabel:this.yAxis?.label,yHidden:this.yAxis?.hidden,yHideTicks:this.yAxis?.hideTicks,yDash:this.yAxis?.dash,yGridDash:this.yAxis?.gridDash,stack:this.stack,inverted:this.inverted,area:true,fillOpacity:this.fillOpacity,legend:this.legend,gridY:this.grid==="horizontal"||this.grid==="both",gridX:this.grid==="vertical"||this.grid==="both",axisTicks:this.axisTicks,showLabels:this.showLabels,seriesLabels:this.seriesLabels}}applyEngine(){if(!this.engine)return;const t=c(this.el);this.engine.setSpec(this.buildSpec(t),this.buildEngineTheme(t),{onHover:t=>{if(t<0)return;const e=t+(this.zoomWin?this.win().start:0);this.mdHover.emit({dataIndex:e,axisValue:this.xAxis?.data?.[e],seriesIndices:this.visibleSeriesIndices()})},onLegendClick:t=>{this.rememberLegendToggle(t.seriesIndex,!!t.hidden);this.mdLegendClick.emit({seriesIndex:t.seriesIndex,seriesId:this.series[t.seriesIndex]?.id,selected:!t.hidden})},onPointClick:(t,e,s)=>{const i=this.clickDetail(t,e,s);if(i)this.mdMarkerClick.emit(i)},onLineClick:(t,e,s)=>{const i=this.clickDetail(t,e,s);if(i)this.mdLineClick.emit(i)},onAreaClick:(t,e,s)=>{const i=this.clickDetail(t,e,s);if(i)this.mdAreaClick.emit(i)},onAxisClick:(t,e,s)=>{const i=t+(this.zoomWin?this.win().start:0);this.mdAxisClick.emit({dataIndex:i,axisValue:this.xAxis?.data?.[i],seriesValues:e.map((t=>({seriesIndex:t.seriesIndex,seriesId:this.series[t.seriesIndex]?.id,label:t.label,dataIndex:t.value==null?-1:i,value:t.value}))),nativeEvent:s})}});this.engine.setHoverEnabled(this.tooltip!=="none");this.engine.setTooltip({render:this.tooltipRenderer,missingFormatter:this.valueFormatter,trigger:this.tooltip==="item"?"item":"axis"})}clickDetail(t,e,s){const i=this.series[t];if(!i)return null;const a=e+(this.zoomWin?this.win().start:0);return{seriesIndex:t,seriesId:i.id,dataIndex:a,value:i.data[a]??null,axisValue:this.xAxis?.data?.[a],nativeEvent:s,series:i}}visibleSeriesIndices(){const t=this.engine?.getScene()?.hoverPoints;if(t)return t.map((t=>t.seriesIndex));return this.series.map(((t,e)=>e)).filter((t=>!this.series[t].hidden))}rebuildA11yTable(){if(!this.a11yTableHost)return;this.a11yTableHost.innerHTML=m({title:this.label,xAxisLabel:this.xAxis?.label,xAxisData:this.xAxis?.data,xValueFormatter:this.xAxis?.valueFormatter??(t=>o(t,this.locale)),locale:this.locale,series:this.series,valueFormatter:this.valueFormatter,labels:this.tableLabels})}moveKeyboardCursor(t){this.kbIndex=t;this.engine?.focusIndex(t);if(t<0){this.announcement="";return}const e=this.engine?.getScene();const s=e?.xLabels?.[t]??String(t+1);const i=t=>this.valueFormatter?this.valueFormatter(t):t.toLocaleString(this.locale||undefined);const a=(e?.hoverPoints??[]).map((e=>{const s=e.byIndex[t];return s?`${e.label} ${i(s.value)}`:null})).filter(Boolean).join(", ");this.announcement=this.labelPoint.replace("%x%",s).replace("%values%",a)}render(){const t=this.xAxis?.data??[];const e=this.summary||p({title:this.label,chartType:"area",seriesCount:this.series.length,locale:this.locale,xMin:t[0],xMax:t[t.length-1]});const a=this.series.length===0&&!this.loading;return s(i,{key:"0496c0aa00bf1655d18ece61bb6aff208b3fabcb",class:{"md-area-chart":true,"md-area-chart--empty":a,"md-area-chart--mounted":this.mounted,"md-area-chart--zoom-slider":this.zoomSliderOn,"md-area-chart--zoom-drag":this.zoomInside},role:"figure","aria-label":e,"aria-busy":this.loading?"true":null,style:this.heightProp?{blockSize:this.heightProp}:undefined,onPointerDown:this.onPlotPointerDown,onPointerMove:this.onPointerMove,onPointerUp:this.onPointerUp,onPointerCancel:this.onPointerUp,onDblClick:this.onPlotDblClick},s("header",{key:"f0052cede200134219b212236ed8d3c4ae480528",class:"md-area-chart__header",part:"header"},s("slot",{key:"40a404dd9b38e79fb08508196fdf395125d98e62",name:"header"})),s("div",{key:"83c877928ab37405a3682dcb0279963d79328b4a",class:"md-area-chart__canvas",part:"canvas",ref:t=>this.bindChartHost(t),tabindex:a?undefined:"0",role:a?undefined:"application","aria-label":a?undefined:this.labelPlot,onKeyDown:this.onPlotKeyDown,onBlur:this.onPlotBlur}),a&&s("div",{key:"0adc7d94c1d03e92a7c9075770182300894f9198",class:"md-area-chart__empty",part:"empty"},s("slot",{key:"c09b857d1a67c8c414e364dd36cc098854d43858",name:"empty"},this.labelEmpty)),this.loading&&s("div",{key:"b586efd6ffb6c357abc5d41ca57b6f6bad0ecb8a",class:"md-area-chart__loading",part:"loading",role:"status"},s("slot",{key:"1d45a922f9a86a93899ee0cb805e944660ea44a4",name:"loader"},s("slot",{key:"c8dec7602f7580185f7157724e4ec689511a2c3c",name:"loading"},s("md-progress-indicator",{key:"b2228ab15341274424f53a2f5959290f27bd24e0",class:"md-area-chart__spinner",variant:"circular",indeterminate:true,label:this.loadingLabel}),s("span",{key:"c5befeda9e8a296191e33f2c56ba1e7ccb47eafb",class:"md-area-chart__loading-text"},this.loadingLabel)))),this.dragBand&&this.plotRect()&&s("div",{key:"9d3d6a7c26458e5d2d368ad32aea1fae95883d1a",class:"md-area-chart__zoom-band",part:"zoom-band",style:this.zoomBandStyle()}),this.zoomSliderOn&&this.renderZoomSlider(),s("footer",{key:"a28e742fd635979a879993ace7d00c2973a23b87",class:"md-area-chart__footer",part:"footer"},s("slot",{key:"1f4b8cb324d8acd16facd6f53fadde294c28f808",name:"footer"})),s("div",{key:"59c7c19842feecc2d38901c0533ceb9a560de713",class:"md-area-chart__a11y-table",ref:t=>this.bindA11yTableHost(t)}),s("div",{key:"604caca8b90bae8742a18aa6f6be5f82dcaee93f",class:"md-area-chart__live",role:"status","aria-live":"polite","aria-atomic":"true"},this.announcement))}get el(){return a(this)}static get watchers(){return{series:[{onAnyPropChange:0}],xAxis:[{onAnyPropChange:0}],yAxis:[{onAnyPropChange:0}],curve:[{onAnyPropChange:0}],stack:[{onAnyPropChange:0}],legend:[{onAnyPropChange:0}],tooltip:[{onAnyPropChange:0}],zoom:[{onAnyPropChange:0}],connectNulls:[{onAnyPropChange:0}],showMarks:[{onAnyPropChange:0}],lineWidth:[{onAnyPropChange:0}],markSize:[{onAnyPropChange:0}],label:[{onAnyPropChange:0}],subtitle:[{onAnyPropChange:0}],titleAlign:[{onAnyPropChange:0}],fillOpacity:[{onAnyPropChange:0}],showLine:[{onAnyPropChange:0}],grid:[{onAnyPropChange:0}],axisTicks:[{onAnyPropChange:0}],showLabels:[{onAnyPropChange:0}],inverted:[{onAnyPropChange:0}],loading:[{onAnyPropChange:0}],animation:[{onAnyPropChange:0}],animationDuration:[{onAnyPropChange:0}],tooltipRenderer:[{onAnyPropChange:0}],valueFormatter:[{onAnyPropChange:0}]}}};y.style=u();export{y as md_area_chart};
2
- //# sourceMappingURL=p-04e97f5d.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as s,H as e,a}from"./p-DTaX19_O.js";const n=()=>`:host{--_container-color:var(--md-tabs-container-color, var(--md-sys-color-surface, #FFFBFE));display:flex;flex-direction:column;inline-size:100%;position:relative;background-color:var(--_container-color);box-sizing:border-box}.md-tabs__container{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}.md-tabs__container::-webkit-scrollbar{display:none}::slotted(md-tab){flex:1;min-inline-size:90px}:host(.md-tabs--tw-auto) ::slotted(md-tab){flex:0 0 auto}:host(.md-tabs--tw-fixed) ::slotted(md-tab){flex:0 0 var(--_tab-width);inline-size:var(--_tab-width);min-inline-size:var(--_tab-width);max-inline-size:var(--_tab-width)}:host(.md-tabs--clip-left) .md-tabs__container{-webkit-mask-image:linear-gradient(to right, transparent 0, #000 40px);mask-image:linear-gradient(to right, transparent 0, #000 40px)}:host(.md-tabs--clip-right) .md-tabs__container{-webkit-mask-image:linear-gradient(to left, transparent 0, #000 40px);mask-image:linear-gradient(to left, transparent 0, #000 40px)}:host(.md-tabs--clip-left.md-tabs--clip-right) .md-tabs__container{-webkit-mask-image:linear-gradient(to right, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%)}@media (prefers-reduced-motion: reduce){.md-tabs__container{scroll-behavior:auto}}`;const r=class{constructor(s){t(this,s);this.mdTabChange=i(this,"mdTabChange",7);this.activeTabIndex=0;this.variant="primary";this.ariaLabelProp="";this.tabWidth="equal";this.width="";this.tabCount=0;this.tabs=[];this.listenersBound=false;this.hasLoaded=false;this.activeTabEl=null;this.syncingIndex=false;this.pendingRequestedIndex=null;this.prevTabs=[];this.glideToken=0;this.uniquePrefix=`md-tabs-${Math.random().toString(36).slice(2,7)}`;this.tabClickHandlers=new Map;this.handleWheel=t=>{const i=this.containerEl;if(!i||i.scrollWidth<=i.clientWidth)return;if(Math.abs(t.deltaX)>=Math.abs(t.deltaY)||t.deltaY===0)return;t.preventDefault();const s=t.deltaMode===1?16:t.deltaMode===2?i.clientWidth:1;i.scrollBy({left:t.deltaY*s,behavior:"instant"})};this.updateOverflow=()=>{const t=this.containerEl;if(!t||this.tabs.length===0){this.el.classList.remove("md-tabs--clip-left","md-tabs--clip-right");return}const i=t.getBoundingClientRect();const s=this.tabs[0].getBoundingClientRect();const e=this.tabs[this.tabs.length-1].getBoundingClientRect();const a=Math.min(s.left,e.left);const n=Math.max(s.right,e.right);this.el.classList.toggle("md-tabs--clip-left",a<i.left-1);this.el.classList.toggle("md-tabs--clip-right",n>i.right+1)}}onTabWidthChange(){this.updateOverflow()}get tabWidthMode(){if(this.tabWidth==="auto")return"auto";if(!this.tabWidth||this.tabWidth==="equal")return"equal";return"fixed"}componentDidLoad(){const t=this.el.shadowRoot;if(!t)return;const i=t.querySelector("slot");i?.addEventListener("slotchange",(()=>this.syncTabs()));if(typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver((()=>this.updateOverflow()))}if(typeof MutationObserver!=="undefined"){this.dirObserver=new MutationObserver((()=>this.updateOverflow()))}this.hasLoaded=true;this.attachObservers();this.syncTabs()}connectedCallback(){if(this.hasLoaded){queueMicrotask((()=>{this.attachObservers();this.syncTabs()}))}}disconnectedCallback(){this.removeTabListeners();this.resizeObserver?.disconnect();this.dirObserver?.disconnect()}attachObservers(){if(this.containerEl)this.resizeObserver?.observe(this.containerEl);if(this.dirObserver){this.dirObserver.observe(this.el,{attributes:true,attributeFilter:["dir"]});this.dirObserver.observe(document.documentElement,{attributes:true,attributeFilter:["dir"]})}}onActiveChange(t){if(this.syncingIndex)return;const i=this.sanitizeIndex(t);this.pendingRequestedIndex=i>this.tabs.length-1?i:null;const s=this.clampIndex(i);if(s!==t){this.setIndexInternal(s)}this.applyIndex(s)}onVariantChange(){this.tabs.forEach((t=>t.setAttribute("variant",this.variant)))}async selectTab(t){if(t<0||t>=this.tabs.length)return;this.activateTab(t)}handleKeyDown(t){if(this.tabs.length===0)return;const i=t.composedPath?.()[0]??this.deepActiveElement();const s=i?.closest?.("md-tab")??i;const e=this.tabs.indexOf(s);if(e===-1)return;const a=this.isRtl()?-1:1;let n=null;switch(t.key){case"ArrowRight":t.preventDefault();n=this.findNextEnabledWrapping(e,a);break;case"ArrowLeft":t.preventDefault();n=this.findNextEnabledWrapping(e,a*-1);break;case"Home":t.preventDefault();n=this.findFirstEnabled();break;case"End":t.preventDefault();n=this.findLastEnabled();break}if(n!==null&&n!==e){this.tabs[n].focus();this.activateTab(n)}}handleTabDisabledChange(){this.updateRovingTabindex()}deepActiveElement(){let t=document.activeElement;while(t?.shadowRoot?.activeElement){t=t.shadowRoot.activeElement}return t}isRtl(){return typeof getComputedStyle!=="undefined"&&getComputedStyle(this.el).direction==="rtl"}prefersReducedMotion(){return typeof matchMedia!=="undefined"&&matchMedia("(prefers-reduced-motion: reduce)").matches}findNextEnabledWrapping(t,i){const s=this.tabs.length;if(s===0)return null;let e=t;for(let t=0;t<s;t++){e=(e+i+s)%s;if(!this.isDisabledTab(this.tabs[e]))return e}return null}findFirstEnabled(){for(let t=0;t<this.tabs.length;t++){if(!this.isDisabledTab(this.tabs[t]))return t}return null}findLastEnabled(){for(let t=this.tabs.length-1;t>=0;t--){if(!this.isDisabledTab(this.tabs[t]))return t}return null}syncTabs(){this.removeTabListeners();const t=this.el.shadowRoot?.querySelector("slot");if(!t)return;this.tabs=t.assignedElements({flatten:true}).filter((t=>t.tagName==="MD-TAB"));this.tabCount=this.tabs.length;this.tabs.forEach(((t,i)=>{t.setAttribute("variant",this.variant);t.addEventListener("mdTabClick",this.createTabClickHandler(i));if(!t.id){t.id=`${this.uniquePrefix}-tab-${i}`}}));this.listenersBound=true;if(this.resizeObserver){this.resizeObserver.disconnect();if(this.containerEl)this.resizeObserver.observe(this.containerEl);this.tabs.forEach((t=>this.resizeObserver.observe(t)))}this.reconcileActiveTab();this.updateOverflow()}reconcileActiveTab(){this.prevTabs.forEach((t=>{if(!this.tabs.includes(t)){t.removeAttribute("active");t.removeAttribute("tabindex")}}));this.prevTabs=this.tabs;if(this.tabs.length===0){this.activeTabEl=null;return}if(this.pendingRequestedIndex!==null){const t=this.pendingRequestedIndex;this.pendingRequestedIndex=null;if(t<=this.tabs.length-1){const i=this.clampIndex(t);this.setIndexInternal(i);this.applyIndex(i);return}}if(this.findFirstEnabled()===null){const t=this.activeTabEl!==null;const i=this.activeTabIndex;this.tabs.forEach((t=>t.removeAttribute("active")));this.activeTabEl=null;this.updateRovingTabindex();if(t)this.mdTabChange.emit({index:-1,previousIndex:i});return}const t=this.activeTabEl;let i;if(t&&this.tabs.includes(t)){i=this.tabs.indexOf(t)}else{i=this.clampIndex(this.activeTabIndex)}const s=this.activeTabIndex;this.setIndexInternal(i);this.applyIndex(i,{scroll:false});if(t!==null&&this.activeTabEl!==t){this.mdTabChange.emit({index:i,previousIndex:s})}}sanitizeIndex(t){const i=Math.round(Number(t));return Number.isFinite(i)?i:0}isDisabledTab(t){return t.disabled===true||t.hasAttribute("disabled")}clampIndex(t){const i=this.tabs.length;if(i===0)return 0;let s=Math.max(0,Math.min(this.sanitizeIndex(t),i-1));if(this.tabs[s]&&this.isDisabledTab(this.tabs[s])){const t=this.findNextEnabledWrapping(s,1)??this.findFirstEnabled();if(t!==null)s=t}return s}setIndexInternal(t){if(this.activeTabIndex===t)return;this.syncingIndex=true;this.activeTabIndex=t;this.syncingIndex=false}removeTabListeners(){if(!this.listenersBound)return;this.tabs.forEach(((t,i)=>{t.removeEventListener("mdTabClick",this.createTabClickHandler(i))}));this.listenersBound=false}createTabClickHandler(t){if(!this.tabClickHandlers.has(t)){this.tabClickHandlers.set(t,(()=>this.activateTab(t)))}return this.tabClickHandlers.get(t)}activateTab(t){this.pendingRequestedIndex=null;if(t===this.activeTabIndex&&this.tabs[t]?.hasAttribute("active"))return;const i=this.activeTabIndex;this.setIndexInternal(t);this.applyIndex(t);this.mdTabChange.emit({index:t,previousIndex:i})}applyIndex(t,i={}){const s=this.activeTabEl;const e=this.tabs[t]??null;this.applyActiveState(t);this.updateRovingTabindex();this.activeTabEl=e;if(i.scroll!==false)this.scrollTabIntoView(t);if(s&&e&&s!==e)this.glideIndicator(s,e)}applyActiveState(t){this.tabs.forEach(((i,s)=>{if(s===t){i.setAttribute("active","")}else{i.removeAttribute("active")}}))}updateRovingTabindex(){let t=this.activeTabIndex;if(this.tabs[t]&&this.isDisabledTab(this.tabs[t])){t=this.findFirstEnabled()??t}this.tabs.forEach(((i,s)=>{if(this.isDisabledTab(i)){i.setAttribute("tabindex","-1")}else{i.setAttribute("tabindex",s===t?"0":"-1")}}))}glideIndicator(t,i){if(this.prefersReducedMotion())return;const s=t=>(t.shadowRoot?.querySelector(".md-tab__indicator")??t).getBoundingClientRect();const e=s(t);const a=s(i);if(!e.width||!a.width)return;const n=e.left+e.width/2-(a.left+a.width/2);const r=e.width/a.width;if(typeof requestAnimationFrame==="undefined")return;const h=++this.glideToken;t.style.removeProperty("--md-tab-glide-x");t.style.removeProperty("--md-tab-glide-scale");t.style.removeProperty("--md-tab-glide-duration");i.style.setProperty("--md-tab-glide-duration","0s");i.style.setProperty("--md-tab-glide-x",`${n}px`);i.style.setProperty("--md-tab-glide-scale",`${r}`);requestAnimationFrame((()=>requestAnimationFrame((()=>{if(h!==this.glideToken)return;i.style.removeProperty("--md-tab-glide-duration");i.style.setProperty("--md-tab-glide-x","0px");i.style.setProperty("--md-tab-glide-scale","1");setTimeout((()=>{if(h!==this.glideToken)return;i.style.removeProperty("--md-tab-glide-x");i.style.removeProperty("--md-tab-glide-scale")}),500)}))))}scrollTabIntoView(t){const i=this.tabs[t];if(!i||!this.containerEl)return;i.scrollIntoView?.({behavior:this.prefersReducedMotion()?"auto":"smooth",block:"nearest",inline:"nearest"})}render(){return s(e,{key:"c103ec49e743ca885a22f303c46f13fc4ee650f5",class:{"md-tabs":true,[`md-tabs--${this.variant}`]:true,"md-tabs--tw-auto":this.tabWidthMode==="auto","md-tabs--tw-fixed":this.tabWidthMode==="fixed"},style:{...this.tabWidthMode==="fixed"?{"--_tab-width":this.tabWidth}:{},...this.width?{"inline-size":this.width}:{}},role:"tablist","aria-label":this.ariaLabelProp||"tabs","aria-orientation":"horizontal"},s("div",{key:"21bec4d569d80650d16c8c4a8ee55db98880ac98",class:"md-tabs__container",part:"container",ref:t=>this.containerEl=t,onWheel:this.handleWheel,onScroll:this.updateOverflow},s("slot",{key:"83031858998cab19d0fe544808aced96a07f5bab"})))}get el(){return a(this)}static get watchers(){return{tabWidth:[{onTabWidthChange:0}],activeTabIndex:[{onActiveChange:0}],variant:[{onVariantChange:0}]}}};r.style=n();export{r as md_tabs};
2
- //# sourceMappingURL=p-19ee9c33.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as e,c as i,h as t,H as s,a}from"./p-DTaX19_O.js";const r=()=>`:host{--_container-color:var( --md-search-container-color, var(--md-sys-color-surface-container-high, #ECE6F0) );--_container-shape:var( --md-search-container-shape, var(--md-sys-shape-corner-full, 9999px) );--_container-height:var(--md-search-container-height, max(40px, calc(56px + var(--md-sys-density-scale, 0) * 4px)));--_resting-corner-shape:min( var(--_container-shape), calc(var(--_container-height) / 2) );--_docked-panel-shape:var(--md-search-docked-panel-shape, var(--md-sys-shape-corner-large, 16px));--_divided-fullscreen-bar-height:var(--md-search-divided-fullscreen-bar-height, max(48px, calc(72px + var(--md-sys-density-scale, 0) * 4px)));--_leading-icon-label-gap:var(--md-search-leading-icon-label-gap, 4px);--_trailing-icon-label-gap:var(--md-search-trailing-icon-label-gap, 4px);--_icon-button-size:var(--md-search-icon-button-size, max(32px, calc(48px + var(--md-sys-density-scale, 0) * 4px)));--_container-min-inline-size:var(--md-search-container-min-inline-size, 360px);--_container-max-inline-size:var(--md-search-container-max-inline-size, 720px);--_container-padding-inline:var(--md-search-container-padding-inline, 0px);--_container-padding-inline-focused:var( --md-search-container-padding-inline-focused, var(--_container-padding-inline) );--_leading-padding-inline:var(--md-search-leading-padding-inline, 4px);--_trailing-padding-inline:var(--md-search-trailing-padding-inline, 8px);--_expand-inset:var(--md-search-expand-inset, 24px);--_expand-inset-focused:var(--md-search-expand-focused-inset, 12px);--_expand-duration:var( --md-search-expand-duration, var(--md-sys-motion-duration-medium4, 400ms) );--_expand-easing:var( --md-search-expand-easing, cubic-bezier(0.34, 1.56, 0.64, 1) );--_input-color:var( --md-search-input-color, var(--md-sys-color-on-surface, #1D1B20) );--_input-font-family:var( --md-search-input-font-family, var(--md-sys-typescale-body-large-font-family, Roboto, sans-serif) );--_input-font-size:var( --md-search-input-font-size, max(13px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px)) );--_input-line-height:var( --md-search-input-line-height, var(--md-sys-typescale-body-large-line-height, 24px) );--_input-font-weight:var( --md-search-input-font-weight, var(--md-sys-typescale-body-large-font-weight, 400) );--_input-letter-spacing:var( --md-search-input-letter-spacing, var(--md-sys-typescale-body-large-letter-spacing, 0.5px) );--_placeholder-color:var( --md-search-placeholder-color, var(--md-sys-color-on-surface-variant, #49454F) );--_leading-icon-color:var( --md-search-leading-icon-color, var(--md-sys-color-on-surface, #1D1B20) );--_trailing-icon-color:var( --md-search-trailing-icon-color, var( --md-search-icon-color, var(--md-sys-color-on-surface-variant, #49454F) ) );--_icon-size:var(--md-search-icon-size, max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px)));--_loading-color:var( --md-search-loading-color, var(--md-sys-color-primary, #6750A4) );--_open-glyph-mirror:1;--_contained-background-color:var( --md-search-contained-background-color, var(--md-sys-color-surface-container-low, #F7F2FA) );--_container-elevation-level:0px 0px 0px 0px transparent;--_container-elevation:var( --md-search-container-elevation, var(--_container-elevation-level) );--_state-layer-color:var( --md-search-state-layer-color, var(--md-sys-color-on-surface, #1D1B20) );--_hover-state-layer-opacity:var( --md-search-hover-state-layer-opacity, var(--md-sys-state-hover-state-layer-opacity, 0.08) );--_pressed-state-layer-opacity:var( --md-search-pressed-state-layer-opacity, 0.1 );--_focus-indicator-color:var( --md-search-focus-indicator-color, var(--md-sys-color-secondary, #625B71) );--_focus-indicator-thickness:var(--md-search-focus-indicator-thickness, 3px);--_focus-indicator-offset:var(--md-search-focus-indicator-offset, 2px);--_avatar-size:var(--md-search-avatar-size, 40px);--_panel-min-block-size:var(--md-search-panel-min-block-size, 0px);--_panel-max-block-size:var(--md-search-panel-max-block-size, min(400px, 60vh));--_max-block-size:var(--md-search-max-block-size);--_panel-offset:var( --md-search-panel-offset, calc(var(--_focus-indicator-offset) + var(--_focus-indicator-thickness) + 3px) );--_bar-fullscreen-color:var( --md-search-bar-fullscreen-color, var(--md-sys-color-surface-container-low, #F7F2FA) );--_fullscreen-results-color:var( --md-search-fullscreen-results-color, var(--md-sys-color-surface-container-low, #F7F2FA) );--_divider-color:var( --md-search-divider-color, var(--md-sys-color-outline, #79747E) );--_divider-thickness:var(--md-search-divider-thickness, 1px);--_fullscreen-bar-offset-block-start:var( --md-search-fullscreen-bar-offset-block-start, max(16px, env(safe-area-inset-block-start, 0px)) );--_fullscreen-bar-offset-inline:var( --md-search-fullscreen-bar-offset-inline, max(0px, env(safe-area-inset-inline-start, 0px)) );--_fullscreen-bar-panel-gap:var(--md-search-fullscreen-bar-panel-gap, 0px);--_panel-padding-block-start:var(--md-search-panel-padding-block-start, 0px);--_motion-duration:var( --md-search-panel-motion-duration, var(--md-sys-motion-duration-medium2, 250ms) );--_motion-easing:var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));--_fs-expand-duration:var( --md-search-fullscreen-expand-duration, var(--md-sys-motion-duration-medium2, 300ms) );--_fs-expand-easing:var( --md-search-fullscreen-expand-easing, var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)) );--_fs-collapse-duration:var( --md-search-fullscreen-collapse-duration, var(--md-sys-motion-duration-medium2, 300ms) );--_fs-collapse-easing:var( --md-search-fullscreen-collapse-easing, var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)) );display:block;position:relative;inline-size:100%;min-inline-size:var(--_container-min-inline-size);max-inline-size:var(--_container-max-inline-size);margin-inline:auto;min-block-size:var(--_container-height);font-family:var(--_input-font-family);color:var(--_input-color);box-sizing:border-box}:host([hidden]){display:none}:host(.md-search--trigger-icon.md-search--closed){display:inline-flex;flex-direction:column;align-items:center;justify-content:center;inline-size:fit-content;block-size:fit-content;min-inline-size:0;max-inline-size:none;min-block-size:0;margin-inline:0;overflow:visible}:host(.md-search--trigger-icon.md-search--closed) .md-search__panel,:host(.md-search--trigger-icon.md-search--closed) .md-search__inset-probe{display:none}:host(.md-search--trigger-icon.md-search--open) .md-search__trigger{display:none}.md-search__trigger{display:contents}:host(.md-search--trigger-icon) .md-search__trigger-button{--md-icon-button-container-width:max(32px, calc(48px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-container-height:max(32px, calc(48px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));--md-icon-button-icon-color:var( --md-search-leading-icon-color, var(--md-sys-color-on-surface, #1d1b20) )}:host(.md-search--contained.md-search--docked){--_panel-offset:var( --md-search-contained-docked-panel-offset, calc(var(--_focus-indicator-offset) + var(--_focus-indicator-thickness) + 3px) )}:host(.md-search--full-screen){--_expand-inset:0px;--_expand-inset-focused:0px}:host(.md-search--full-width){--_expand-inset:0px;--_expand-inset-focused:0px}:host(.md-search--contained.md-search--full-screen){--_fullscreen-bar-offset-inline:var( --md-search-fullscreen-bar-offset-inline, max(8px, env(safe-area-inset-inline-start, 0px)) );--_fullscreen-bar-panel-gap:var( --md-search-fullscreen-bar-panel-gap, calc(var(--_focus-indicator-offset) + var(--_focus-indicator-thickness) + 3px) )}:host(.md-search--divided.md-search--full-screen.md-search--open){--_container-height:var(--_divided-fullscreen-bar-height);--_fullscreen-bar-offset-block-start:max(0px, env(safe-area-inset-block-start, 0px));--_fullscreen-bar-offset-inline:max(0px, env(safe-area-inset-inline-start, 0px))}:host(.md-search--full-screen.md-search--open){position:fixed;inset:0;display:block;inline-size:100%;block-size:100dvh;max-inline-size:none;min-inline-size:0;margin:0;min-block-size:0;z-index:var(--md-sys-z-index-modal, 1300);box-sizing:border-box}:host(.md-search--trigger-icon.md-search--full-screen.md-search--open){display:block;inline-size:100%;block-size:100dvh;max-inline-size:none;min-inline-size:0;min-block-size:0;align-items:stretch;justify-content:flex-start}:host(.md-search--full-screen.md-search--open) .md-search__bar{position:fixed;inset-block-start:var(--_fullscreen-bar-offset-block-start);inset-inline:var(--_fullscreen-bar-offset-inline);inline-size:auto;margin-inline:0;z-index:2}:host(.md-search--full-screen.md-search--open) .md-search__bar--focus-ring{z-index:2}:host(.md-search--full-screen.md-search--open) .md-search__panel--full-screen{position:fixed;inset:0;margin:0;padding-block-start:calc( var(--_fullscreen-bar-offset-block-start) + var(--_container-height) + var(--_fullscreen-bar-panel-gap) + var(--_panel-padding-block-start) );padding-inline:0;max-block-size:var(--_max-block-size, 100dvh);z-index:1;background-color:var(--_fullscreen-results-color)}:host(.md-search--contained.md-search--open) .md-search__leading-button{margin-inline-start:0}.md-search__bar{position:relative;display:flex;align-items:center;box-sizing:border-box;gap:0;inline-size:calc(100% - calc(var(--_expand-inset) * 2));min-inline-size:0;max-inline-size:100%;margin-inline:auto;block-size:var(--_container-height);padding-inline:var(--_container-padding-inline);background-color:var(--_container-color);border-radius:var(--_container-shape);box-shadow:var(--_container-elevation);cursor:text;overflow:hidden;transition:inline-size var(--_expand-duration) var(--_expand-easing), background-color var(--_motion-duration) var(--_motion-easing), box-shadow var(--_motion-duration) var(--_motion-easing), border-radius var(--_motion-duration) var(--_motion-easing)}:host(.md-search--elevation-0){--_container-elevation-level:0px 0px 0px 0px transparent}:host(.md-search--elevation-1){--_container-elevation-level:var(--md-sys-elevation-1)}:host(.md-search--elevation-2){--_container-elevation-level:var(--md-sys-elevation-2)}:host(.md-search--elevation-3){--_container-elevation-level:var(--md-sys-elevation-3)}:host(.md-search--elevation-4){--_container-elevation-level:var(--md-sys-elevation-4)}:host(.md-search--elevation-5){--_container-elevation-level:var(--md-sys-elevation-5)}.md-search__bar--focused,:host(.md-search--open) .md-search__bar{inline-size:calc(100% - calc(var(--_expand-inset-focused) * 2));padding-inline:var(--_container-padding-inline-focused)}:host(.md-search--disabled) .md-search__bar{cursor:not-allowed;opacity:0.38}:host(.md-search--full-screen) .md-search__bar{transition:opacity var(--_fs-collapse-duration) var(--_fs-collapse-easing), transform var(--_fs-collapse-duration) var(--_fs-collapse-easing), background-color var(--_motion-duration) var(--_motion-easing), border-radius var(--_motion-duration) var(--_motion-easing)}:host(.md-search--full-screen.md-search--open) .md-search__bar{opacity:0;transform:translateY(30px);pointer-events:none}:host(.md-search--full-screen.md-search--open.md-search--panel-content) .md-search__bar{opacity:1;transform:translateY(0);pointer-events:auto;transition:opacity var(--_fs-expand-duration) var(--_fs-expand-easing), transform var(--_fs-expand-duration) var(--_fs-expand-easing), background-color var(--_motion-duration) var(--_motion-easing), border-radius var(--_motion-duration) var(--_motion-easing)}:host(.md-search--divided.md-search--full-screen.md-search--open) .md-search__bar{border-radius:0;background-color:var(--_bar-fullscreen-color);padding-inline:var(--_container-padding-inline-focused)}:host(.md-search--contained.md-search--full-screen.md-search--open) .md-search__bar{border-radius:var(--_container-shape);background-color:var(--_container-color);padding-inline:var(--_container-padding-inline-focused)}.md-search__bar>md-ripple{position:absolute;inset:0;border-radius:inherit;pointer-events:none;--md-ripple-grow-duration:var(--_expand-duration);--md-ripple-grow-easing:var(--_expand-easing)}.md-search__inset-probe{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:max(0px, calc(var(--_expand-inset) - var(--_expand-inset-focused)));block-size:0;visibility:hidden;pointer-events:none;opacity:0}.md-search__a11y-status{position:absolute;inline-size:1px;block-size:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.md-search__state-layer{position:absolute;inset:0;border-radius:inherit;background-color:var(--_state-layer-color);opacity:0;pointer-events:none;transition:opacity var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}.md-search__bar:hover .md-search__state-layer{opacity:var(--_hover-state-layer-opacity)}.md-search__bar--focus-ring .md-search__state-layer{opacity:0}.md-search__bar--focus-ring{box-shadow:var(--_container-elevation), 0 0 0 var(--_focus-indicator-offset) var(--_container-color), 0 0 0 calc(var(--_focus-indicator-offset) + var(--_focus-indicator-thickness)) var(--_focus-indicator-color)}.md-search__bar:active .md-search__state-layer{opacity:var(--_pressed-state-layer-opacity)}.md-search__bar:hover .md-search__input::placeholder,.md-search__bar:active .md-search__input::placeholder{color:var(--_placeholder-color)}:host(.md-search--disabled) .md-search__state-layer{display:none}.md-search__leading,.md-search__trailing{display:inline-flex;align-items:center;gap:var(--md-sys-spacing-gap-xs, 4px);flex:0 0 auto;position:relative;z-index:1;box-sizing:border-box}.md-search__leading{padding-inline-start:var(--_leading-padding-inline);padding-inline-end:var(--_leading-icon-label-gap)}.md-search__trailing{margin-inline-start:auto;padding-inline-start:var(--_trailing-icon-label-gap);padding-inline-end:var(--_trailing-padding-inline)}.md-search__leading .md-search__icon,.md-search__leading-button{color:var(--_leading-icon-color)}.md-search__trailing .md-search__icon{color:var(--_trailing-icon-color)}.md-search__icon{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');font-size:var(--_icon-size);inline-size:var(--_icon-size);block-size:var(--_icon-size);line-height:1;font-weight:normal;font-style:normal;letter-spacing:normal;text-transform:none;white-space:nowrap;overflow-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;pointer-events:none;user-select:none}.md-search__icon-button{appearance:none;background:transparent;border:0;margin:0;padding:0;cursor:pointer;inline-size:var(--_icon-button-size);block-size:var(--_icon-button-size);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--_trailing-icon-color);position:relative;transition:background-color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}.md-search__icon-button:hover{background-color:color-mix( in srgb, var(--_trailing-icon-color) 8%, transparent )}.md-search__loading{--md-loading-indicator-size:var(--_icon-button-size);--md-loading-indicator-shape-size:var(--_icon-size);--md-loading-indicator-color:var(--_loading-color);flex:0 0 auto;pointer-events:none}.md-search__trailing-morph{position:relative;flex:0 0 auto;inline-size:var(--_icon-button-size);block-size:var(--_icon-button-size)}.md-search__trailing-morph>.md-search__loading,.md-search__trailing-morph>.md-search__clear{position:absolute;inset:0;margin:auto;transition:opacity var(--md-sys-motion-duration-medium1, 250ms) var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)), transform var(--md-sys-motion-duration-medium1, 250ms) var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1))}.md-search__trailing-morph>.md-search__clear{opacity:1;transform:scale(1) rotate(0deg)}.md-search__trailing-morph>.md-search__loading{opacity:0;transform:scale(0.6) rotate(-90deg)}.md-search__trailing-morph--loading>.md-search__clear{opacity:0;transform:scale(0.6) rotate(90deg);pointer-events:none}.md-search__trailing-morph--loading>.md-search__loading{opacity:1;transform:scale(1) rotate(0deg)}.md-search__voice{flex:0 0 auto;color:var(--_trailing-icon-color)}.md-search__voice .md-search__icon{position:relative;z-index:1}.md-search__voice--listening{color:var(--md-sys-color-primary, #6750A4)}.md-search__voice--listening::before{content:'';position:absolute;inset:0;border-radius:50%;background-color:color-mix( in srgb, var(--md-sys-color-primary, #6750A4) 16%, transparent );animation:md-search-voice-pulse 1.4s var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)) infinite}@keyframes md-search-voice-pulse{0%,100%{transform:scale(0.82);opacity:0.55}50%{transform:scale(1.12);opacity:0.2}}.md-search__icon-button:focus-visible{outline:var(--_focus-indicator-thickness) solid var(--_focus-indicator-color);outline-offset:calc(-1 * var(--_focus-indicator-thickness))}.md-search__leading-button{appearance:none;background:transparent;border:0;margin:0;padding:0;display:inline-flex;align-items:center;justify-content:center;position:relative;inline-size:var(--_icon-button-size);block-size:var(--_icon-button-size);border-radius:50%;cursor:text;pointer-events:none;transition:background-color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-search--open) .md-search__leading-button{cursor:pointer;pointer-events:auto}.md-search__leading-state-layer{position:absolute;inset:0;border-radius:inherit;background-color:var(--_leading-icon-color);opacity:0;pointer-events:none;transition:opacity var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-search--open) .md-search__leading-button:hover .md-search__leading-state-layer{opacity:var(--md-sys-state-hover-state-layer-opacity, 0.08)}:host(.md-search--open) .md-search__leading-button:active .md-search__leading-state-layer{opacity:var(--md-sys-state-pressed-state-layer-opacity, 0.12)}.md-search__leading-button:focus-visible{outline:var(--_focus-indicator-thickness) solid var(--_focus-indicator-color);outline-offset:calc(-1 * var(--_focus-indicator-thickness));border-radius:50%}.md-search__leading-button:disabled{cursor:not-allowed}.md-search__leading-button .md-search__icon{position:absolute;inset:0;margin:auto;display:inline-flex;align-items:center;justify-content:center;inline-size:var(--_icon-size);block-size:var(--_icon-size);transition:opacity var(--_motion-duration) var(--_motion-easing), transform var(--_motion-duration) var(--_motion-easing)}.md-search__icon--resting{opacity:1;transform:rotate(0deg) scale(1)}:host(.md-search--open) .md-search__icon--resting{opacity:0;transform:rotate(-90deg) scale(0.6)}.md-search__icon--open{opacity:0;transform:rotate(90deg) scale(0.6) scaleX(var(--_open-glyph-mirror))}:host(.md-search--open) .md-search__icon--open{opacity:1;transform:rotate(0deg) scale(1) scaleX(var(--_open-glyph-mirror))}:host([dir="rtl"]),:host-context([dir="rtl"]){--_open-glyph-mirror:-1}::slotted([slot='leading']),::slotted([slot='trailing']){display:inline-flex;align-items:center}::slotted(md-avatar[slot='trailing']),::slotted([slot='trailing'][role='img']),::slotted(img[slot='trailing']){inline-size:var(--_avatar-size);block-size:var(--_avatar-size)}.md-search__input{flex:1 1 auto;min-inline-size:0;border:0;outline:0;background:transparent;color:var(--_input-color);font-family:var(--_input-font-family);font-size:var(--_input-font-size);font-weight:var(--_input-font-weight);line-height:var(--_input-line-height);letter-spacing:var(--_input-letter-spacing);padding-inline:0;position:relative;z-index:1}.md-search__input::placeholder{color:var(--_placeholder-color);opacity:1;font-family:var(--_input-font-family);font-size:var(--_input-font-size);font-weight:var(--_input-font-weight);line-height:var(--_input-line-height);letter-spacing:var(--_input-letter-spacing)}.md-search__input:disabled{cursor:not-allowed}.md-search__input::-webkit-search-cancel-button,.md-search__input::-webkit-search-decoration{display:none}.md-search__panel{visibility:hidden;opacity:0;pointer-events:none;box-sizing:border-box;background-color:transparent;color:var(--_input-color);display:flex;flex-direction:column;overflow:hidden;min-block-size:0;transition:opacity var(--_motion-duration) var(--_motion-easing), transform var(--_motion-duration) var(--_motion-easing), visibility 0s linear var(--_motion-duration)}.md-search__panel-body{flex:1 1 auto;min-block-size:0;display:flex;flex-direction:column}.md-search__results-host{display:flex;flex-direction:column;flex:1 1 auto;min-block-size:0;overflow:hidden}.md-search__results-host .md-search__results-scroll{flex:1 1 auto;min-block-size:0}.md-search__results-scroll{flex:1 1 auto;min-block-size:0;overflow-block:auto;overflow-inline:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--md-sys-color-outline-variant, #cac4d0) transparent}.md-search__results-scroll::-webkit-scrollbar{inline-size:8px}.md-search__results-scroll::-webkit-scrollbar-thumb{background-color:var(--md-sys-color-outline-variant, #cac4d0);border-radius:4px}.md-search__empty{flex:0 0 auto;margin:0;padding-block:var(--md-search-empty-padding-block, var(--md-sys-spacing-inset-xl, 24px));padding-inline:var(--md-search-empty-padding-inline, var(--md-sys-spacing-inset-lg, 16px));text-align:center;color:var( --md-search-empty-color, var(--md-sys-color-on-surface-variant, #49454f) );font-family:var( --md-sys-typescale-body-medium-font, Roboto, system-ui, sans-serif );font-size:var(--md-sys-typescale-body-medium-size, 14px);font-weight:var(--md-sys-typescale-body-medium-weight, 400);line-height:var(--md-sys-typescale-body-medium-line-height, 20px);letter-spacing:var(--md-sys-typescale-body-medium-tracking, 0.25px)}.md-search__panel-body--empty .md-search__results-host{display:none}.md-search__panel--docked{position:absolute;inset-inline:var(--_expand-inset-focused);inset-block-start:calc(var(--_container-height) + var(--_panel-offset));block-size:fit-content;min-block-size:var(--_panel-min-block-size);max-block-size:var(--_max-block-size, var(--_panel-max-block-size));transform:translateY(-4px);z-index:var(--md-sys-z-index-popup, 1100)}.md-search__panel--docked.md-search__panel--open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);transition:opacity var(--_motion-duration) var(--_motion-easing), transform var(--_motion-duration) var(--_motion-easing), visibility 0s}.md-search__panel--full-screen{opacity:0;transform:translateY(30px);will-change:opacity, transform;transition:opacity var(--_fs-collapse-duration) var(--_fs-collapse-easing), transform var(--_fs-collapse-duration) var(--_fs-collapse-easing), visibility 0s linear var(--_fs-collapse-duration)}.md-search__panel--full-screen.md-search__panel--open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);transition:opacity var(--_fs-expand-duration) var(--_fs-expand-easing), transform var(--_fs-expand-duration) var(--_fs-expand-easing), visibility 0s}.md-search__divider{display:none;block-size:var(--_divider-thickness);background-color:var(--_divider-color);flex:0 0 auto}:host(.md-search--divided.md-search--panel-content) .md-search__divider{display:block}:host(.md-search--divided.md-search--full-screen.md-search--open.md-search--panel-content) .md-search__bar{border-radius:0}:host(.md-search--divided) .md-search__panel--docked{inset-block-start:var(--_container-height)}:host(.md-search--divided.md-search--docked) .md-search__bar{transition:inline-size var(--_expand-duration) var(--_expand-easing), background-color var(--_motion-duration) var(--_motion-easing), box-shadow var(--_motion-duration) var(--_motion-easing)}:host(.md-search--divided.md-search--docked.md-search--open.md-search--panel-content) .md-search__bar{border-radius:var(--_resting-corner-shape) var(--_resting-corner-shape) 0 0;background-color:var(--_container-color);overflow:hidden}:host(.md-search--divided.md-search--docked.md-search--open.md-search--panel-content) .md-search__panel--docked{background-color:var(--_container-color);border-radius:0 0 var(--_resting-corner-shape) var(--_resting-corner-shape);overflow:hidden}:host(.md-search--contained.md-search--docked.md-search--open.md-search--panel-content) .md-search__panel--docked{border-radius:var(--_docked-panel-shape);background-color:var(--_container-color)}::slotted([slot='results']){display:block;--md-list-container-color:transparent;--md-list-item-container-color:transparent;--md-list-padding-block:0px}:host(.md-search--disabled) .md-search__input,:host(.md-search--disabled) .md-search__icon,:host(.md-search--disabled) .md-search__icon-button,:host(.md-search--disabled) .md-search__leading-button{pointer-events:none;color:color-mix( in srgb, var(--md-sys-color-on-surface, #1D1B20) 38%, transparent )}@media (prefers-reduced-motion: reduce){.md-search__bar,.md-search__panel,.md-search__state-layer,.md-search__icon-button,.md-search__leading-button,.md-search__leading-state-layer,.md-search__leading-button .md-search__icon,.md-search__trailing-morph>.md-search__loading,.md-search__trailing-morph>.md-search__clear{transition-duration:0.01ms !important}.md-search__voice--listening::before{animation:none}}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}`;const n=class{constructor(t){e(this,t);this.mdInput=i(this,"mdInput",7);this.mdSearch=i(this,"mdSearch",7);this.mdSubmit=i(this,"mdSubmit",7);this.mdChange=i(this,"mdChange",7);this.mdOpen=i(this,"mdOpen",7);this.mdClose=i(this,"mdClose",7);this.mdClear=i(this,"mdClear",7);this.mdVoice=i(this,"mdVoice",7);this.mdLeadingIconClick=i(this,"mdLeadingIconClick",7);this.mdTrailingIconClick=i(this,"mdTrailingIconClick",7);this.variant="contained";this.layout="full-screen";this.triggerIcon="search";this.triggerFor="";this.fullWidth=false;this.value="";this.placeholder="Search";this.open=false;this.disabled=false;this.elevation=0;this.leadingIcon="search";this.showClearButton=true;this.voiceSearch=false;this.escapeCloses=true;this.dismissOnOutsideClick=true;this.scrollShadow=true;this.maxBlockSize="";this.inputAriaLabel="";this.initialFocus="auto";this.announceResults=true;this.resultsLabel="{count} results available";this.noResultsLabel="No results available";this.loading=false;this.debounce=0;this.throttle=0;this.loadingLabel="Searching";this.density=0;this.focused=false;this.hasSlottedLeading=false;this.hasSlottedTrailing=false;this.hasSlottedTrigger=false;this.resultsStatus="";this.barExpanded=false;this.panelVisible=false;this.showFocusRing=false;this.listening=false;this.loadingMorphMounted=false;this.loadingMorphIn=false;this.keyboardModality=false;this.previousFocus=null;this.valueOnFocus="";this.pendingFullScreenReveal=false;this.pendingSearchValue=null;this.lastEmittedSearch=null;this.wiredTrigger=null;this.handleExternalTriggerClick=e=>{if(this.disabled)return;e.stopPropagation();this.open=!this.open};this.handleTriggerActivate=()=>{if(this.disabled)return;if(!this.open)this.open=true};this.handleTriggerClick=e=>{e.stopPropagation();this.handleTriggerActivate()};this.handleTriggerKeyDown=e=>{if(e.key!=="Enter"&&e.key!==" ")return;e.preventDefault();this.handleTriggerActivate()};this.handleBarClick=e=>{if(this.disabled)return;const i=e.target;if(i.closest('[part="trailing"]'))return;if(!this.open)this.open=true;this.input?.focus()};this.handleLeadingClick=e=>{if(this.disabled)return;const i=this.hasSlottedLeading;const t=!i&&this.open;if(!i&&!t)return;this.mdLeadingIconClick.emit({value:this.value,open:this.open});if(t){e.stopPropagation();this.open=false}};this.handleTrailingClick=e=>{if(this.disabled)return;const i=typeof e.composedPath==="function"?e.composedPath():[];const t=i.length?i:[e.target];const s=t.some((e=>{const i=e?.classList;return!!i?.contains?.("md-search__clear")||!!i?.contains?.("md-search__voice")}));if(s)return;const a=this.trailingSlotEl?.assignedElements?.()??[];if(a.length===0)return;const r=t[0];const n=a.some((e=>e===r||(r?e.contains(r):false)));if(!n)return;e.stopPropagation();this.mdTrailingIconClick.emit({value:this.value,open:this.open})};this.handleClearClick=e=>{e.stopPropagation();if(this.disabled)return;this.value="";this.input?.focus();this.mdInput.emit({value:""});this.pendingSearchValue="";this.flushSearch();this.mdClear.emit()};this.handleVoiceClick=e=>{e.stopPropagation();if(this.disabled)return;if(this.listening){this.stopVoice()}else{this.startVoice()}};this.handleVoiceResult=e=>{let i="";let t=false;const s=e.results;for(let e=0;e<s.length;e++){i+=s[e][0].transcript;if(s[e].isFinal)t=true}i=i.replace(/^\s+/,"");this.value=i;if(!this.open)this.open=true;this.mdInput.emit({value:i});this.scheduleSearch(i);this.mdVoice.emit({value:i,final:t});if(t){this.pendingSearchValue=i;this.flushSearch();this.stopVoice()}};this.handleVoiceEnd=()=>{this.listening=false;this.recognition=undefined};this.handleInput=e=>{const i=e.target.value;this.value=i;if(!this.open&&!this.disabled)this.open=true;this.mdInput.emit({value:i});this.scheduleSearch(i)};this.trackKeyboardModality=()=>{this.keyboardModality=true};this.trackPointerModality=()=>{this.keyboardModality=false};this.handleInputFocus=()=>{this.focused=true;this.showFocusRing=this.keyboardModality;this.valueOnFocus=this.value};this.handleInputBlur=()=>{this.focused=false;this.showFocusRing=false;if(this.value!==this.valueOnFocus){this.mdChange.emit({value:this.value})}};this.handleInputKeyDown=e=>{if(this.disabled)return;if(!this.open){if(e.key==="Enter"||e.key===" "){e.preventDefault();this.open=true}return}if(e.key==="Enter"){this.pendingSearchValue=this.value;this.flushSearch();this.mdSubmit.emit({value:this.value})}}}async show(){this.open=true}async close(){this.open=false}async toggle(){this.open=!this.open}async focusInput(){this.input?.focus()}connectedCallback(){if(typeof document!=="undefined"){document.addEventListener("keydown",this.trackKeyboardModality,true);document.addEventListener("pointerdown",this.trackPointerModality,true)}}componentWillLoad(){this.barExpanded=this.open;this.panelVisible=this.open;this.loadingMorphMounted=this.loading;this.loadingMorphIn=this.loading;this.lastEmittedSearch=this.value.trim();this.updateResultsStatus()}componentDidLoad(){this.wireExternalTrigger();const e=this.el.shadowRoot;if(!e)return;const i=e.querySelector('slot[name="leading"]');const t=e.querySelector('slot[name="trailing"]');this.trailingSlotEl=t??undefined;i?.addEventListener("slotchange",(()=>{this.hasSlottedLeading=i.assignedElements().length>0}));t?.addEventListener("slotchange",(()=>{this.hasSlottedTrailing=t.assignedElements().length>0}));const s=e.querySelector('slot[name="results"]');s?.addEventListener("slotchange",(()=>this.updateResultsStatus()));const a=e.querySelector('slot[name="trigger"]');a?.addEventListener("slotchange",(()=>{this.hasSlottedTrigger=a.assignedElements().length>0}));this.hasSlottedTrigger=(a?.assignedElements().length??0)>0;this.measureRippleExtend();this.observeHostResize();if(this.open)this.applyOpenSideEffects()}onExternalTriggerChange(){this.wireExternalTrigger()}disconnectedCallback(){this.unwireExternalTrigger();this.clearCloseTimer();this.cancelReveal();this.clearSearchTimers();this.stopVoice();this.clearLoadingMorphTimers();this.removeOutsideClickHandler();this.resizeObserver?.disconnect();this.resizeObserver=undefined;if(typeof document!=="undefined"){document.removeEventListener("keydown",this.trackKeyboardModality,true);document.removeEventListener("pointerdown",this.trackPointerModality,true)}if(this.layout==="full-screen"&&typeof document!=="undefined"){document.body.style.removeProperty("overflow")}}get effectiveTrigger(){if(this.hasExternalTrigger)return"icon";if(this.trigger!=null)return this.trigger;return this.layout==="full-screen"?"icon":"bar"}get hasExternalTrigger(){return Boolean(this.triggerFor||this.triggerElement)}get usesIconTrigger(){return this.effectiveTrigger==="icon"}resolveExternalTrigger(){if(this.triggerElement)return this.triggerElement;if(!this.triggerFor||typeof document==="undefined")return null;const e=this.triggerFor.trim();if(!e)return null;try{return document.querySelector(e)}catch{if(typeof console!=="undefined"){console.warn("[md-search] `trigger-for` is not a valid selector:",this.triggerFor)}return null}}wireExternalTrigger(){const e=this.resolveExternalTrigger();if(e===this.wiredTrigger){this.syncExternalTriggerAria();return}this.unwireExternalTrigger();if(!e)return;e.addEventListener("click",this.handleExternalTriggerClick);this.wiredTrigger=e;this.syncExternalTriggerAria()}unwireExternalTrigger(){this.wiredTrigger?.removeEventListener("click",this.handleExternalTriggerClick);this.wiredTrigger?.removeAttribute("aria-expanded");this.wiredTrigger=null}syncExternalTriggerAria(){const e=this.wiredTrigger;if(!e)return;e.setAttribute("aria-haspopup","dialog");e.setAttribute("aria-expanded",String(this.open))}get showBar(){return!this.usesIconTrigger||this.barExpanded}measureRippleExtend(){if(!this.showBar)return;const e=this.rippleEl;if(!e)return;if(this.layout==="full-screen"&&typeof window!=="undefined"){const i=this.el.shadowRoot?.querySelector(".md-search__bar");const t=i?.getBoundingClientRect().width??0;const s=window.innerWidth-t;if(s>1){e.style.setProperty("--md-ripple-extend-inline",`${s}px`);return}}const i=this.insetProbeEl;if(!i)return;const t=i.getBoundingClientRect().width;if(!Number.isFinite(t)||t<=0){e.style.removeProperty("--md-ripple-extend-inline");return}e.style.setProperty("--md-ripple-extend-inline",`${t}px`)}observeHostResize(){if(typeof ResizeObserver==="undefined")return;this.resizeObserver=new ResizeObserver((()=>{if(this.barExpanded)return;this.measureRippleExtend()}));this.resizeObserver.observe(this.el)}onOpenChange(e,i){if(e===i)return;this.clearCloseTimer();this.cancelReveal();if(e){this.barExpanded=true;if(this.layout==="full-screen"){this.pendingFullScreenReveal=true}else{this.panelVisible=true}this.applyOpenSideEffects();this.updateResultsStatus();this.syncExternalTriggerAria();this.mdOpen.emit()}else{this.pendingFullScreenReveal=false;this.panelVisible=false;this.stopVoice();this.removeOutsideClickHandler();this.updateResultsStatus();this.mdClose.emit();this.syncExternalTriggerAria();this.closeTimer=setTimeout((()=>{this.barExpanded=false;this.finishCloseSideEffects();if(this.wiredTrigger&&typeof document!=="undefined"){const e=document.activeElement;const i=e===this.el||this.el.contains(e);if(e===document.body||i)this.wiredTrigger.focus?.()}this.closeTimer=undefined}),n.PANEL_CLOSE_MS)}}onLoadingChange(e){this.updateResultsStatus();this.updateLoadingMorph(e)}updateLoadingMorph(e){this.clearLoadingMorphTimers();if(e){this.loadingMorphMounted=true;if(typeof requestAnimationFrame==="undefined"){this.loadingMorphIn=true;return}this.loadingMorphInRaf=requestAnimationFrame((()=>{this.loadingMorphInRaf=undefined;if(this.loading)this.loadingMorphIn=true}))}else{this.loadingMorphIn=false;this.loadingMorphTimer=setTimeout((()=>{this.loadingMorphTimer=undefined;if(!this.loading)this.loadingMorphMounted=false}),n.MORPH_MS)}}clearLoadingMorphTimers(){if(this.loadingMorphTimer){clearTimeout(this.loadingMorphTimer);this.loadingMorphTimer=undefined}if(this.loadingMorphInRaf!==undefined&&typeof cancelAnimationFrame!=="undefined"){cancelAnimationFrame(this.loadingMorphInRaf);this.loadingMorphInRaf=undefined}}componentDidRender(){if(!this.pendingFullScreenReveal)return;this.pendingFullScreenReveal=false;if(typeof requestAnimationFrame==="undefined"){this.panelVisible=true;return}this.revealRaf=requestAnimationFrame((()=>{this.revealRaf=undefined;if(this.open)this.panelVisible=true}))}cancelReveal(){if(this.revealRaf!==undefined&&typeof cancelAnimationFrame!=="undefined"){cancelAnimationFrame(this.revealRaf)}this.revealRaf=undefined}clearCloseTimer(){if(this.closeTimer===undefined)return;clearTimeout(this.closeTimer);this.closeTimer=undefined}applyOpenSideEffects(){if(typeof document==="undefined")return;this.previousFocus=document.activeElement??null;if(this.layout==="full-screen"){const e=window.innerWidth-document.documentElement.clientWidth;if(e>0){document.body.style.paddingInlineEnd=`${e}px`}document.body.style.overflow="hidden"}this.attachOutsideClickHandler();if(typeof requestAnimationFrame!=="undefined"){requestAnimationFrame((()=>this.focusInitialTarget()))}else{this.focusInitialTarget()}}focusInitialTarget(){const e=this.resolveInitialFocusTarget();e?.focus?.({preventScroll:true})}resolveInitialFocusTarget(){if(this.initialFocus==="leading"){return this.leadingFocusTarget()??this.input}return this.input}leadingFocusTarget(){const e='button, a[href], input, select, textarea, md-icon-button, md-button, [tabindex]:not([tabindex="-1"])';const i=this.el.querySelector('[slot="leading"]');if(i){if(typeof i.focus==="function"&&i.getAttribute("tabindex")!=="-1"){if(i.matches(e))return i}const t=i.querySelector(e);if(t)return t;return i}const t=this.el.shadowRoot?.querySelector(".md-search__leading-button");if(t&&t.getAttribute("tabindex")!=="-1")return t;return undefined}finishCloseSideEffects(){if(typeof document!=="undefined"&&this.layout==="full-screen"){document.body.style.removeProperty("overflow");document.body.style.removeProperty("padding-inline-end")}this.previousFocus?.focus?.();this.previousFocus=null}attachOutsideClickHandler(){if(!this.dismissOnOutsideClick||typeof document==="undefined")return;this.outsideClickHandler=e=>{const i=e.target;if(!i)return;const t=e.composedPath?e.composedPath():[];if(t.includes(this.el))return;if(this.el.contains(i))return;const s=this.wiredTrigger;if(s&&(t.includes(s)||s.contains(i)))return;this.open=false};document.addEventListener("mousedown",this.outsideClickHandler,true)}removeOutsideClickHandler(){if(this.outsideClickHandler&&typeof document!=="undefined"){document.removeEventListener("mousedown",this.outsideClickHandler,true)}this.outsideClickHandler=undefined}getSpeechRecognitionCtor(){if(typeof window==="undefined")return undefined;const e=window;return e.SpeechRecognition||e.webkitSpeechRecognition}isVoiceSupported(){return!!this.getSpeechRecognitionCtor()}resolveVoiceLang(){if(typeof document!=="undefined"){const e=this.el.getAttribute("lang")||document.documentElement.lang;if(e)return e}return"en-US"}async startVoice(){this.startVoiceInternal()}async stopVoice(){this.listening=false;if(this.recognition){try{this.recognition.stop()}catch{}}}startVoiceInternal(){const e=this.getSpeechRecognitionCtor();if(!e||this.disabled||this.listening)return;if(this.recognition){try{this.recognition.abort()}catch{}this.recognition=undefined}const i=new e;i.lang=this.resolveVoiceLang();i.interimResults=true;i.continuous=false;i.maxAlternatives=1;i.onresult=this.handleVoiceResult;i.onerror=this.handleVoiceEnd;i.onend=this.handleVoiceEnd;this.recognition=i;if(!this.open)this.open=true;this.input?.focus();this.listening=true;try{i.start()}catch{this.listening=false;this.recognition=undefined}}scheduleSearch(e){this.pendingSearchValue=e;const i=Math.max(0,Number(this.debounce)||0);const t=Math.max(0,Number(this.throttle)||0);if(i===0&&t===0){this.flushSearch();return}if(this.searchDebounceTimer)clearTimeout(this.searchDebounceTimer);this.searchDebounceTimer=setTimeout((()=>this.flushSearch()),i);if(t>0&&this.searchMaxWaitTimer===undefined){this.searchMaxWaitTimer=setTimeout((()=>this.flushSearch()),t)}}flushSearch(){this.clearSearchTimers();if(this.pendingSearchValue===null)return;const e=this.pendingSearchValue;this.pendingSearchValue=null;const i=e.trim();if(i===this.lastEmittedSearch)return;this.lastEmittedSearch=i;this.mdSearch.emit({value:i})}clearSearchTimers(){if(this.searchDebounceTimer){clearTimeout(this.searchDebounceTimer);this.searchDebounceTimer=undefined}if(this.searchMaxWaitTimer){clearTimeout(this.searchMaxWaitTimer);this.searchMaxWaitTimer=undefined}}handleWindowKeyDown(e){if(!this.open)return;if(e.key==="Escape"&&this.escapeCloses){e.preventDefault();this.open=false;return}if(e.key==="ArrowDown"||e.key==="ArrowUp"){if(this.moveResultFocus(e.key==="ArrowDown"?1:-1)){e.preventDefault()}return}if(this.layout!=="full-screen"||e.key!=="Tab")return;const i=this.collectFocusables();if(i.length===0)return;const t=i[0];const s=i[i.length-1];const a=this.el.shadowRoot?.activeElement??document.activeElement;if(e.shiftKey&&a===t){e.preventDefault();s.focus()}else if(!e.shiftKey&&a===s){e.preventDefault();t.focus()}}collectFocusables(){const e=this.el.shadowRoot;if(!e)return[];const i='a[href], button, input, select, textarea, [tabindex]:not([tabindex="-1"]), md-icon-button, md-button';const t=Array.from(e.querySelectorAll(i));const s=Array.from(this.el.querySelectorAll(i));return[...t,...s].filter((e=>{if(e.hasAttribute("disabled"))return false;const i=e.getAttribute("tabindex");return i!=="-1"}))}countResults(){const e=Array.from(this.el.querySelectorAll('[slot="results"]'));const i='md-list-item, [role="option"], li, [data-search-result]';const t=new Set;for(const s of e){if(s.matches(i))t.add(s);s.querySelectorAll(i).forEach((e=>t.add(e)))}return t.size>0?t.size:e.length}resultItems(){const e='md-list-item, [role="option"], [role="menuitem"], [data-search-result], li';const i=Array.from(this.el.querySelectorAll('[slot="results"]'));const t=new Set;for(const s of i){if(s.matches(e))t.add(s);s.querySelectorAll(e).forEach((e=>t.add(e)))}return Array.from(t)}moveResultFocus(e){const i=this.resultItems();if(i.length===0)return false;const t=this.el.shadowRoot?.activeElement??(typeof document!=="undefined"?document.activeElement:null);const s=t?i.findIndex((e=>e===t||e.contains(t))):-1;if(e>0){const e=s<0?0:Math.min(s+1,i.length-1);this.focusResultItem(i[e]);return true}if(s<=0){this.input?.focus();return true}this.focusResultItem(i[s-1]);return true}focusResultItem(e){if(e.getAttribute("tabindex")===null){e.setAttribute("tabindex","-1")}e.focus?.()}updateResultsStatus(){if(!this.announceResults||!this.open){this.resultsStatus="";return}if(this.loading){this.resultsStatus=this.loadingLabel;return}const e=this.countResults();if(e>0){this.resultsStatus=this.resultsLabel.replace("{count}",String(e))}else if(this.shouldShowVisibleEmptyState()){this.resultsStatus=""}else{this.resultsStatus=this.value.trim()?this.noResultsLabel:""}}shouldShowVisibleEmptyState(){return this.panelVisible&&!this.loading&&this.countResults()===0&&this.value.trim().length>0}shouldShowResultsChrome(){if(!this.panelVisible||this.loading)return false;if(this.countResults()>0)return true;return this.shouldShowVisibleEmptyState()}isPanelRevealed(){if(this.layout==="full-screen"){return this.panelVisible&&this.barExpanded}return this.shouldShowResultsChrome()}effectiveLabel(){return this.inputAriaLabel||this.placeholder||"Search"}resolveOpenLeadingIcon(){if(this.openLeadingIcon)return this.openLeadingIcon;return this.variant==="contained"?"chevron_left":"arrow_back"}renderTrigger(){if(!this.usesIconTrigger||this.barExpanded)return null;if(this.hasExternalTrigger)return null;return t("div",{class:"md-search__trigger",part:"trigger"},t("slot",{name:"trigger"},t("md-icon-button",{class:"md-search__trigger-button",part:"trigger-button",icon:this.triggerIcon,variant:"standard",size:"md",disabled:this.disabled,"aria-label":this.effectiveLabel(),onClick:this.handleTriggerClick,onKeyDown:this.handleTriggerKeyDown})))}renderLeading(){const e=this.barExpanded;const i=e?"Close search":"Search";const s=this.resolveOpenLeadingIcon();return t("span",{class:{"md-search__leading":true,"md-search__leading--button":e},part:"leading",onClick:this.handleLeadingClick},t("slot",{name:"leading"},t("button",{type:"button",class:"md-search__leading-button","aria-label":i,tabIndex:e?0:-1,disabled:this.disabled},t("span",{class:"md-search__leading-state-layer",part:"leading-state-layer","aria-hidden":"true"}),t("span",{class:"md-search__icon md-search__icon--resting material-symbols-outlined","aria-hidden":"true"},this.leadingIcon),t("span",{class:"md-search__icon md-search__icon--open material-symbols-outlined","aria-hidden":"true"},s))))}renderClearButton(){if(!this.showClearButton||!this.value)return null;return t("button",{type:"button",class:"md-search__icon-button md-search__clear",part:"clear-button","aria-label":"Clear search",onClick:this.handleClearClick},t("span",{class:"md-search__icon material-symbols-outlined","aria-hidden":"true"},"close"))}renderVoiceButton(){return t("button",{type:"button",class:{"md-search__icon-button":true,"md-search__voice":true,"md-search__voice--listening":this.listening},part:"voice-button","aria-label":this.listening?"Stop voice search":"Search by voice","aria-pressed":this.listening?"true":"false",disabled:this.disabled,onClick:this.handleVoiceClick},t("span",{class:"md-search__icon material-symbols-outlined","aria-hidden":"true"},"mic"))}renderTrailing(){const e=this.showClearButton&&this.value.length>0;const i=e||this.loadingMorphMounted;const s=this.voiceSearch&&this.isVoiceSupported();return t("span",{class:"md-search__trailing",part:"trailing",onClick:this.handleTrailingClick},i&&t("span",{class:{"md-search__trailing-morph":true,"md-search__trailing-morph--loading":this.loadingMorphIn}},this.loadingMorphMounted&&t("slot",{name:"loader"},t("md-loading-indicator",{class:"md-search__loading",part:"loading",exportparts:"shape:loading-shape",label:this.loadingLabel})),e&&this.renderClearButton()),s&&this.renderVoiceButton(),t("slot",{name:"trailing"}))}render(){const e=this.layout==="full-screen";const i={};if(this.maxBlockSize){i["--_max-block-size"]=this.maxBlockSize}return t(s,{key:"a1917af311741dbe519c61dbccc2444d2f7d1471",class:{"md-search":true,[`md-search--${this.variant}`]:true,[`md-search--${this.layout}`]:true,[`md-search--trigger-${this.effectiveTrigger}`]:true,"md-search--open":this.barExpanded,"md-search--panel-content":this.layout==="full-screen"?this.isPanelRevealed():this.shouldShowResultsChrome(),"md-search--closed":!this.barExpanded,"md-search--has-slotted-trigger":this.hasSlottedTrigger,"md-search--disabled":this.disabled,"md-search--focused":this.focused,"md-search--has-value":this.value.length>0,"md-search--has-slotted-leading":this.hasSlottedLeading,"md-search--has-slotted-trailing":this.hasSlottedTrailing,"md-search--full-width":this.fullWidth,[`md-search--elevation-${this.elevation}`]:true},style:Object.keys(i).length>0?i:undefined},t("span",{key:"fbe5d4a8afd52543bb6605dd7949ffcf007d40eb",class:"md-search__inset-probe",ref:e=>this.insetProbeEl=e,"aria-hidden":"true"}),t("div",{key:"2dbe27e3953c8ee2ca91e05027ca4036d76e4a4b",class:"md-search__a11y-status",part:"status",role:"status","aria-live":"polite","aria-atomic":"true"},this.resultsStatus),this.renderTrigger(),this.showBar&&t("div",{key:"e888147bb5f685e91b4e6be63811d183a84f8105",class:{"md-search__bar":true,"md-search__bar--focused":this.focused,"md-search__bar--focus-ring":this.showFocusRing},part:"bar",onClick:this.handleBarClick},!this.disabled&&t("md-ripple",{key:"9c34671fb64625f5d72ce562328f0c22ffefd9f9",ref:e=>this.rippleEl=e}),t("span",{key:"4a2e71d470ec5a5597f8c302b7ffb2ed0a664618",class:"md-search__state-layer",part:"state-layer","aria-hidden":"true"}),this.renderLeading(),t("input",{key:"ed5b32d0d9d6500cd005902f6286d3091e21c943",ref:e=>this.input=e,class:"md-search__input",part:"input",type:"search",role:"combobox",value:this.value,placeholder:this.placeholder,disabled:this.disabled,"aria-label":this.effectiveLabel(),"aria-expanded":this.open?"true":"false","aria-controls":"md-search-panel","aria-autocomplete":"list",autocomplete:"off",spellcheck:false,onInput:this.handleInput,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,onKeyDown:this.handleInputKeyDown}),this.renderTrailing()),t("div",{key:"b263a0d7de44094b5202238f64fa333f82c17b34",id:"md-search-panel",class:{"md-search__panel":true,[`md-search__panel--${this.layout}`]:true,"md-search__panel--open":this.isPanelRevealed()},part:"panel",role:"dialog","aria-modal":e&&this.isPanelRevealed()?"true":"false","aria-hidden":this.isPanelRevealed()?"false":"true","aria-label":this.effectiveLabel()},this.variant==="divided"&&this.isPanelRevealed()&&t("div",{key:"7267d71b9e43dee8d24652d1f5896282bb471be8",class:"md-search__divider",part:"divider","aria-hidden":"true"}),t("div",{key:"91137bdaeb1e35d9dde52c1ffd92298b8a78b9ff",class:{"md-search__panel-body":true,"md-search__panel-body--empty":this.shouldShowVisibleEmptyState()},part:"panel-body"},this.shouldShowVisibleEmptyState()&&t("p",{key:"3df90324a512cb06038c1488ef72f71a82796e7d",class:"md-search__empty",part:"empty",role:"status","aria-live":"polite"},this.noResultsLabel),t("div",{key:"76e88f72feeb9c6fba5ff3870cd1492a8679e9cd",class:"md-search__results-host",part:"results-host",hidden:this.shouldShowVisibleEmptyState()?true:undefined,"aria-hidden":this.shouldShowVisibleEmptyState()?"true":undefined},t("div",{key:"9a6d7f652aefe09ed382805822e8e0247294ff2c",class:"md-search__results-scroll",part:"results-viewport"},t("slot",{key:"fdfd7c5b6b18dcb0bd1f6404d42e9da7ee3b417b",name:"results"}))))))}get el(){return a(this)}static get watchers(){return{triggerFor:[{onExternalTriggerChange:0}],triggerElement:[{onExternalTriggerChange:0}],open:[{onOpenChange:0}],loading:[{onLoadingChange:0}]}}};n.PANEL_CLOSE_MS=300;n.MORPH_MS=300;n.style=r();export{n as md_search};
2
- //# sourceMappingURL=p-21772851.entry.js.map