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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (698) 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/loader.cjs.js +3 -2
  9. package/dist/cjs/loader.cjs.js.map +1 -1
  10. package/dist/cjs/md-accordion-item.cjs.entry.js +1 -1
  11. package/dist/cjs/md-accordion.cjs.entry.js +1 -1
  12. package/dist/cjs/md-app-bar.cjs.entry.js +1 -1
  13. package/dist/cjs/md-area-chart.cjs.entry.js +1 -1
  14. package/dist/cjs/md-autocomplete.cjs.entry.js +2 -2
  15. package/dist/cjs/md-avatar_2.cjs.entry.js +1 -1
  16. package/dist/cjs/md-badge.cjs.entry.js +1 -1
  17. package/dist/cjs/md-bar-chart.cjs.entry.js +1 -1
  18. package/dist/cjs/md-bottom-sheet.cjs.entry.js +1 -1
  19. package/dist/cjs/md-breadcrumb-item.cjs.entry.js +1 -1
  20. package/dist/cjs/md-breadcrumbs.cjs.entry.js +1 -1
  21. package/dist/cjs/md-button-group.cjs.entry.js +1 -1
  22. package/dist/cjs/md-button_7.cjs.entry.js +1 -1
  23. package/dist/cjs/md-checkbox.cjs.entry.js +1 -1
  24. package/dist/cjs/md-chip.cjs.entry.js +1 -1
  25. package/dist/cjs/md-color-picker.cjs.entry.js +1 -1
  26. package/dist/cjs/md-date-picker.cjs.entry.js +1 -1
  27. package/dist/cjs/md-dialog.cjs.entry.js +1 -1
  28. package/dist/cjs/md-divider.cjs.entry.js +1 -1
  29. package/dist/cjs/md-fab-menu-item.cjs.entry.js +1 -1
  30. package/dist/cjs/md-fab-menu.cjs.entry.js +1 -1
  31. package/dist/cjs/md-fab.cjs.entry.js +1 -1
  32. package/dist/cjs/md-line-chart.cjs.entry.js +1 -1
  33. package/dist/cjs/md-list-item.cjs.entry.js +1 -1
  34. package/dist/cjs/md-list.cjs.entry.js +1 -1
  35. package/dist/cjs/md-menu-item-group.cjs.entry.js +1 -1
  36. package/dist/cjs/md-menu_2.cjs.entry.js +1 -1
  37. package/dist/cjs/md-meter.cjs.entry.js +1 -1
  38. package/dist/cjs/md-multi-select.cjs.entry.js +2 -2
  39. package/dist/cjs/md-navigation-bar.cjs.entry.js +1 -1
  40. package/dist/cjs/md-navigation-rail-tab.cjs.entry.js +1 -1
  41. package/dist/cjs/md-navigation-rail.cjs.entry.js +1 -1
  42. package/dist/cjs/md-navigation-tab.cjs.entry.js +1 -1
  43. package/dist/cjs/md-number-field.cjs.entry.js +1 -1
  44. package/dist/cjs/md-organization-chart.cjs.entry.js +1 -1
  45. package/dist/cjs/md-otp-field.cjs.entry.js +1 -1
  46. package/dist/cjs/md-pie-chart.cjs.entry.js +1 -1
  47. package/dist/cjs/md-progress-indicator.cjs.entry.js +1 -1
  48. package/dist/cjs/md-rating.cjs.entry.js +1 -1
  49. package/dist/cjs/md-search.cjs.entry.js +1 -1
  50. package/dist/cjs/md-segmented-button-set.cjs.entry.js +1 -1
  51. package/dist/cjs/md-segmented-button.cjs.entry.js +1 -1
  52. package/dist/cjs/md-select-option.cjs.entry.js +1 -1
  53. package/dist/cjs/md-select.cjs.entry.js +2 -2
  54. package/dist/cjs/md-side-sheet.cjs.entry.js +1 -1
  55. package/dist/cjs/md-skeleton.cjs.entry.js +1 -1
  56. package/dist/cjs/md-slider.cjs.entry.js +1 -1
  57. package/dist/cjs/md-sparkline.cjs.entry.js +1 -1
  58. package/dist/cjs/md-split-button.cjs.entry.js +1 -1
  59. package/dist/cjs/md-status-dot.cjs.entry.js +1 -1
  60. package/dist/cjs/md-step.cjs.entry.js +1 -1
  61. package/dist/cjs/md-stepper.cjs.entry.js +1 -1
  62. package/dist/cjs/md-sub-menu-item.cjs.entry.js +1 -1
  63. package/dist/cjs/md-switch.cjs.entry.js +1 -1
  64. package/dist/cjs/md-tab-panel.cjs.entry.js +1 -1
  65. package/dist/cjs/md-tab-panels.cjs.entry.js +1 -1
  66. package/dist/cjs/md-tab.cjs.entry.js +1 -1
  67. package/dist/cjs/md-table-body.cjs.entry.js +1 -1
  68. package/dist/cjs/md-table-cell.cjs.entry.js +1 -1
  69. package/dist/cjs/md-table-container.cjs.entry.js +1 -1
  70. package/dist/cjs/md-table-expand-toggle.cjs.entry.js +1 -1
  71. package/dist/cjs/md-table-foot.cjs.entry.js +1 -1
  72. package/dist/cjs/md-table-head.cjs.entry.js +1 -1
  73. package/dist/cjs/md-table-pagination.cjs.entry.js +1 -1
  74. package/dist/cjs/md-table-row.cjs.entry.js +1 -1
  75. package/dist/cjs/md-table-sort-label.cjs.entry.js +1 -1
  76. package/dist/cjs/md-table-toolbar.cjs.entry.js +1 -1
  77. package/dist/cjs/md-table.cjs.entry.js +1 -1
  78. package/dist/cjs/md-tabs.cjs.entry.js +1 -1
  79. package/dist/cjs/md-text-field.cjs.entry.js +1 -1
  80. package/dist/cjs/md-time-picker.cjs.entry.js +1 -1
  81. package/dist/cjs/md-toolbar.cjs.entry.js +1 -1
  82. package/dist/cjs/md-transfer-list.cjs.entry.js +1 -1
  83. package/dist/cjs/md3.cjs.js +3 -2
  84. package/dist/cjs/md3.cjs.js.map +1 -1
  85. package/dist/cjs/{virtual-select-controller-CqriaZgm.js → virtual-select-controller-C5cSoKfB.js} +10 -9
  86. package/dist/cjs/virtual-select-controller-C5cSoKfB.js.map +1 -0
  87. package/dist/collection/wasm/engine-abi.js +8 -2
  88. package/dist/collection/wasm/engine-abi.js.map +1 -1
  89. package/dist/components/index.js +1 -1
  90. package/dist/components/md-accordion-item.js +1 -1
  91. package/dist/components/md-accordion.js +1 -1
  92. package/dist/components/md-app-bar.js +1 -1
  93. package/dist/components/md-area-chart.js +1 -1
  94. package/dist/components/md-area-chart.js.map +1 -1
  95. package/dist/components/md-autocomplete.js +1 -1
  96. package/dist/components/md-avatar.js +1 -1
  97. package/dist/components/md-badge.js +1 -1
  98. package/dist/components/md-bar-chart.js +1 -1
  99. package/dist/components/md-bottom-sheet.js +1 -1
  100. package/dist/components/md-breadcrumb-item.js +1 -1
  101. package/dist/components/md-breadcrumbs.js +1 -1
  102. package/dist/components/md-button-group.js +1 -1
  103. package/dist/components/md-button.js +1 -1
  104. package/dist/components/md-card.js +1 -1
  105. package/dist/components/md-checkbox.js +1 -1
  106. package/dist/components/md-chip.js +1 -1
  107. package/dist/components/md-color-picker.js +1 -1
  108. package/dist/components/md-date-picker.js +1 -1
  109. package/dist/components/md-dialog.js +1 -1
  110. package/dist/components/md-divider.js +1 -1
  111. package/dist/components/md-fab-menu-item.js +1 -1
  112. package/dist/components/md-fab-menu.js +1 -1
  113. package/dist/components/md-fab.js +1 -1
  114. package/dist/components/md-icon-button.js +1 -1
  115. package/dist/components/md-line-chart.js +1 -1
  116. package/dist/components/md-list-item.js +1 -1
  117. package/dist/components/md-list.js +1 -1
  118. package/dist/components/md-loading-indicator.js +1 -1
  119. package/dist/components/md-menu-item-group.js +1 -1
  120. package/dist/components/md-menu-item.js +1 -1
  121. package/dist/components/md-menu.js +1 -1
  122. package/dist/components/md-meter.js +1 -1
  123. package/dist/components/md-multi-select.js +1 -1
  124. package/dist/components/md-navigation-bar.js +1 -1
  125. package/dist/components/md-navigation-rail-tab.js +1 -1
  126. package/dist/components/md-navigation-rail.js +1 -1
  127. package/dist/components/md-navigation-tab.js +1 -1
  128. package/dist/components/md-number-field.js +1 -1
  129. package/dist/components/md-organization-chart.js +1 -1
  130. package/dist/components/md-otp-field.js +1 -1
  131. package/dist/components/md-pie-chart.js +1 -1
  132. package/dist/components/md-progress-indicator.js +1 -1
  133. package/dist/components/md-radio.js +1 -1
  134. package/dist/components/md-rating.js +1 -1
  135. package/dist/components/md-ripple.js +1 -1
  136. package/dist/components/md-search.js +1 -1
  137. package/dist/components/md-segmented-button-set.js +1 -1
  138. package/dist/components/md-segmented-button.js +1 -1
  139. package/dist/components/md-select-option.js +1 -1
  140. package/dist/components/md-select.js +1 -1
  141. package/dist/components/md-side-sheet.js +1 -1
  142. package/dist/components/md-skeleton.js +1 -1
  143. package/dist/components/md-slider.js +1 -1
  144. package/dist/components/md-snackbar.js +1 -1
  145. package/dist/components/md-sparkline.js +1 -1
  146. package/dist/components/md-split-button.js +1 -1
  147. package/dist/components/md-status-dot.js +1 -1
  148. package/dist/components/md-step.js +1 -1
  149. package/dist/components/md-stepper.js +1 -1
  150. package/dist/components/md-sub-menu-item.js +1 -1
  151. package/dist/components/md-switch.js +1 -1
  152. package/dist/components/md-tab-panel.js +1 -1
  153. package/dist/components/md-tab-panels.js +1 -1
  154. package/dist/components/md-tab.js +1 -1
  155. package/dist/components/md-table-body.js +1 -1
  156. package/dist/components/md-table-cell.js +1 -1
  157. package/dist/components/md-table-container.js +1 -1
  158. package/dist/components/md-table-expand-toggle.js +1 -1
  159. package/dist/components/md-table-foot.js +1 -1
  160. package/dist/components/md-table-head.js +1 -1
  161. package/dist/components/md-table-pagination.js +1 -1
  162. package/dist/components/md-table-row.js +1 -1
  163. package/dist/components/md-table-sort-label.js +1 -1
  164. package/dist/components/md-table-toolbar.js +1 -1
  165. package/dist/components/md-table.js +1 -1
  166. package/dist/components/md-tabs.js +1 -1
  167. package/dist/components/md-text-field.js +1 -1
  168. package/dist/components/md-time-picker.js +1 -1
  169. package/dist/components/md-toolbar.js +1 -1
  170. package/dist/components/md-tooltip.js +1 -1
  171. package/dist/components/md-transfer-list.js +1 -1
  172. package/dist/components/p-B-JfuA2g.js +2 -0
  173. package/dist/components/p-B-JfuA2g.js.map +1 -0
  174. package/dist/components/p-B-iHDK5h.js +2 -0
  175. package/dist/components/p-B-iHDK5h.js.map +1 -0
  176. package/dist/components/p-BA2v4IuG.js +2 -0
  177. package/dist/components/p-BA2v4IuG.js.map +1 -0
  178. package/dist/components/p-BADA63mI.js +2 -0
  179. package/dist/components/p-BADA63mI.js.map +1 -0
  180. package/dist/components/p-BR6gfOQH.js +2 -0
  181. package/dist/components/p-BR6gfOQH.js.map +1 -0
  182. package/dist/components/p-Bz-JaJcA.js +2 -0
  183. package/dist/components/p-Bz-JaJcA.js.map +1 -0
  184. package/dist/components/p-CCMritCA.js +2 -0
  185. package/dist/components/p-CCMritCA.js.map +1 -0
  186. package/dist/components/p-CTC8XAB6.js +2 -0
  187. package/dist/components/p-CTC8XAB6.js.map +1 -0
  188. package/dist/components/p-CfBPnYW7.js +2 -0
  189. package/dist/components/p-CfBPnYW7.js.map +1 -0
  190. package/dist/components/p-CtVItLby.js +2 -0
  191. package/dist/components/p-CtVItLby.js.map +1 -0
  192. package/dist/components/p-D8oM1Kr3.js +2 -0
  193. package/dist/components/p-D8oM1Kr3.js.map +1 -0
  194. package/dist/components/{p-Ddiw2Kjw.js → p-DEzb9xsY.js} +2 -2
  195. package/dist/components/p-DEzb9xsY.js.map +1 -0
  196. package/dist/components/p-DYL-8C5C.js +2 -0
  197. package/dist/components/p-DYL-8C5C.js.map +1 -0
  198. package/dist/components/p-DfU4xY2F.js +2 -0
  199. package/dist/components/p-DfU4xY2F.js.map +1 -0
  200. package/dist/components/p-Eb44PPZa.js +2 -0
  201. package/dist/components/p-Eb44PPZa.js.map +1 -0
  202. package/dist/components/{p-UdGDg2oJ.js → p-Lsoo1B-2.js} +2 -2
  203. package/dist/components/p-Lsoo1B-2.js.map +1 -0
  204. package/dist/components/p-tSoecrcz.js +2 -0
  205. package/dist/components/p-tSoecrcz.js.map +1 -0
  206. package/dist/components-csr/index.js +2 -0
  207. package/dist/components-csr/index.js.map +1 -0
  208. package/dist/components-csr/md-accordion-item.js +2 -0
  209. package/dist/components-csr/md-accordion-item.js.map +1 -0
  210. package/dist/components-csr/md-accordion.js +2 -0
  211. package/dist/components-csr/md-accordion.js.map +1 -0
  212. package/dist/components-csr/md-app-bar.js +2 -0
  213. package/dist/components-csr/md-app-bar.js.map +1 -0
  214. package/dist/components-csr/md-area-chart.js +2 -0
  215. package/dist/components-csr/md-area-chart.js.map +1 -0
  216. package/dist/components-csr/md-autocomplete.js +2 -0
  217. package/dist/components-csr/md-autocomplete.js.map +1 -0
  218. package/dist/components-csr/md-avatar.js +2 -0
  219. package/dist/components-csr/md-avatar.js.map +1 -0
  220. package/dist/components-csr/md-badge.js +2 -0
  221. package/dist/components-csr/md-badge.js.map +1 -0
  222. package/dist/components-csr/md-bar-chart.js +2 -0
  223. package/dist/components-csr/md-bar-chart.js.map +1 -0
  224. package/dist/components-csr/md-bottom-sheet.js +2 -0
  225. package/dist/components-csr/md-bottom-sheet.js.map +1 -0
  226. package/dist/components-csr/md-breadcrumb-item.js +2 -0
  227. package/dist/components-csr/md-breadcrumb-item.js.map +1 -0
  228. package/dist/components-csr/md-breadcrumbs.js +2 -0
  229. package/dist/components-csr/md-breadcrumbs.js.map +1 -0
  230. package/dist/components-csr/md-button-group.js +2 -0
  231. package/dist/components-csr/md-button-group.js.map +1 -0
  232. package/dist/components-csr/md-button.js +2 -0
  233. package/dist/components-csr/md-button.js.map +1 -0
  234. package/dist/components-csr/md-card.js +2 -0
  235. package/dist/components-csr/md-card.js.map +1 -0
  236. package/dist/components-csr/md-checkbox.js +2 -0
  237. package/dist/components-csr/md-checkbox.js.map +1 -0
  238. package/dist/components-csr/md-chip.js +2 -0
  239. package/dist/components-csr/md-chip.js.map +1 -0
  240. package/dist/components-csr/md-color-picker.js +2 -0
  241. package/dist/components-csr/md-color-picker.js.map +1 -0
  242. package/dist/components-csr/md-date-picker.js +2 -0
  243. package/dist/components-csr/md-date-picker.js.map +1 -0
  244. package/dist/components-csr/md-dialog.js +2 -0
  245. package/dist/components-csr/md-dialog.js.map +1 -0
  246. package/dist/components-csr/md-divider.js +2 -0
  247. package/dist/components-csr/md-divider.js.map +1 -0
  248. package/dist/components-csr/md-fab-menu-item.js +2 -0
  249. package/dist/components-csr/md-fab-menu-item.js.map +1 -0
  250. package/dist/components-csr/md-fab-menu.js +2 -0
  251. package/dist/components-csr/md-fab-menu.js.map +1 -0
  252. package/dist/components-csr/md-fab.js +2 -0
  253. package/dist/components-csr/md-fab.js.map +1 -0
  254. package/dist/components-csr/md-icon-button.js +2 -0
  255. package/dist/components-csr/md-icon-button.js.map +1 -0
  256. package/dist/components-csr/md-line-chart.js +2 -0
  257. package/dist/components-csr/md-line-chart.js.map +1 -0
  258. package/dist/components-csr/md-list-item.js +2 -0
  259. package/dist/components-csr/md-list-item.js.map +1 -0
  260. package/dist/components-csr/md-list.js +2 -0
  261. package/dist/components-csr/md-list.js.map +1 -0
  262. package/dist/components-csr/md-loading-indicator.js +2 -0
  263. package/dist/components-csr/md-loading-indicator.js.map +1 -0
  264. package/dist/components-csr/md-menu-item-group.js +2 -0
  265. package/dist/components-csr/md-menu-item-group.js.map +1 -0
  266. package/dist/components-csr/md-menu-item.js +2 -0
  267. package/dist/components-csr/md-menu-item.js.map +1 -0
  268. package/dist/components-csr/md-menu.js +2 -0
  269. package/dist/components-csr/md-menu.js.map +1 -0
  270. package/dist/components-csr/md-meter.js +2 -0
  271. package/dist/components-csr/md-meter.js.map +1 -0
  272. package/dist/components-csr/md-multi-select.js +2 -0
  273. package/dist/components-csr/md-multi-select.js.map +1 -0
  274. package/dist/components-csr/md-navigation-bar.js +2 -0
  275. package/dist/components-csr/md-navigation-bar.js.map +1 -0
  276. package/dist/components-csr/md-navigation-rail-tab.js +2 -0
  277. package/dist/components-csr/md-navigation-rail-tab.js.map +1 -0
  278. package/dist/components-csr/md-navigation-rail.js +2 -0
  279. package/dist/components-csr/md-navigation-rail.js.map +1 -0
  280. package/dist/components-csr/md-navigation-tab.js +2 -0
  281. package/dist/components-csr/md-navigation-tab.js.map +1 -0
  282. package/dist/components-csr/md-number-field.js +2 -0
  283. package/dist/components-csr/md-number-field.js.map +1 -0
  284. package/dist/components-csr/md-organization-chart.js +2 -0
  285. package/dist/components-csr/md-organization-chart.js.map +1 -0
  286. package/dist/components-csr/md-otp-field.js +2 -0
  287. package/dist/components-csr/md-otp-field.js.map +1 -0
  288. package/dist/components-csr/md-pie-chart.js +2 -0
  289. package/dist/components-csr/md-pie-chart.js.map +1 -0
  290. package/dist/components-csr/md-progress-indicator.js +2 -0
  291. package/dist/components-csr/md-progress-indicator.js.map +1 -0
  292. package/dist/components-csr/md-radio.js +2 -0
  293. package/dist/components-csr/md-radio.js.map +1 -0
  294. package/dist/components-csr/md-rating.js +2 -0
  295. package/dist/components-csr/md-rating.js.map +1 -0
  296. package/dist/components-csr/md-ripple.js +2 -0
  297. package/dist/components-csr/md-ripple.js.map +1 -0
  298. package/dist/components-csr/md-search.js +2 -0
  299. package/dist/components-csr/md-search.js.map +1 -0
  300. package/dist/components-csr/md-segmented-button-set.js +2 -0
  301. package/dist/components-csr/md-segmented-button-set.js.map +1 -0
  302. package/dist/components-csr/md-segmented-button.js +2 -0
  303. package/dist/components-csr/md-segmented-button.js.map +1 -0
  304. package/dist/components-csr/md-select-option.js +2 -0
  305. package/dist/components-csr/md-select-option.js.map +1 -0
  306. package/dist/components-csr/md-select.js +2 -0
  307. package/dist/components-csr/md-select.js.map +1 -0
  308. package/dist/components-csr/md-side-sheet.js +2 -0
  309. package/dist/components-csr/md-side-sheet.js.map +1 -0
  310. package/dist/components-csr/md-skeleton.js +2 -0
  311. package/dist/components-csr/md-skeleton.js.map +1 -0
  312. package/dist/components-csr/md-slider.js +2 -0
  313. package/dist/components-csr/md-slider.js.map +1 -0
  314. package/dist/components-csr/md-snackbar.js +2 -0
  315. package/dist/components-csr/md-snackbar.js.map +1 -0
  316. package/dist/components-csr/md-sparkline.js +2 -0
  317. package/dist/components-csr/md-sparkline.js.map +1 -0
  318. package/dist/components-csr/md-split-button.js +2 -0
  319. package/dist/components-csr/md-split-button.js.map +1 -0
  320. package/dist/components-csr/md-status-dot.js +2 -0
  321. package/dist/components-csr/md-status-dot.js.map +1 -0
  322. package/dist/components-csr/md-step.js +2 -0
  323. package/dist/components-csr/md-step.js.map +1 -0
  324. package/dist/components-csr/md-stepper.js +2 -0
  325. package/dist/components-csr/md-stepper.js.map +1 -0
  326. package/dist/components-csr/md-sub-menu-item.js +2 -0
  327. package/dist/components-csr/md-sub-menu-item.js.map +1 -0
  328. package/dist/components-csr/md-switch.js +2 -0
  329. package/dist/components-csr/md-switch.js.map +1 -0
  330. package/dist/components-csr/md-tab-panel.js +2 -0
  331. package/dist/components-csr/md-tab-panel.js.map +1 -0
  332. package/dist/components-csr/md-tab-panels.js +2 -0
  333. package/dist/components-csr/md-tab-panels.js.map +1 -0
  334. package/dist/components-csr/md-tab.js +2 -0
  335. package/dist/components-csr/md-tab.js.map +1 -0
  336. package/dist/components-csr/md-table-body.js +2 -0
  337. package/dist/components-csr/md-table-body.js.map +1 -0
  338. package/dist/components-csr/md-table-cell.js +2 -0
  339. package/dist/components-csr/md-table-cell.js.map +1 -0
  340. package/dist/components-csr/md-table-container.js +2 -0
  341. package/dist/components-csr/md-table-container.js.map +1 -0
  342. package/dist/components-csr/md-table-expand-toggle.js +2 -0
  343. package/dist/components-csr/md-table-expand-toggle.js.map +1 -0
  344. package/dist/components-csr/md-table-foot.js +2 -0
  345. package/dist/components-csr/md-table-foot.js.map +1 -0
  346. package/dist/components-csr/md-table-head.js +2 -0
  347. package/dist/components-csr/md-table-head.js.map +1 -0
  348. package/dist/components-csr/md-table-pagination.js +2 -0
  349. package/dist/components-csr/md-table-pagination.js.map +1 -0
  350. package/dist/components-csr/md-table-row.js +2 -0
  351. package/dist/components-csr/md-table-row.js.map +1 -0
  352. package/dist/components-csr/md-table-sort-label.js +2 -0
  353. package/dist/components-csr/md-table-sort-label.js.map +1 -0
  354. package/dist/components-csr/md-table-toolbar.js +2 -0
  355. package/dist/components-csr/md-table-toolbar.js.map +1 -0
  356. package/dist/components-csr/md-table.js +2 -0
  357. package/dist/components-csr/md-table.js.map +1 -0
  358. package/dist/components-csr/md-tabs.js +2 -0
  359. package/dist/components-csr/md-tabs.js.map +1 -0
  360. package/dist/components-csr/md-text-field.js +2 -0
  361. package/dist/components-csr/md-text-field.js.map +1 -0
  362. package/dist/components-csr/md-time-picker.js +2 -0
  363. package/dist/components-csr/md-time-picker.js.map +1 -0
  364. package/dist/components-csr/md-toolbar.js +2 -0
  365. package/dist/components-csr/md-toolbar.js.map +1 -0
  366. package/dist/components-csr/md-tooltip.js +2 -0
  367. package/dist/components-csr/md-tooltip.js.map +1 -0
  368. package/dist/components-csr/md-transfer-list.js +2 -0
  369. package/dist/components-csr/md-transfer-list.js.map +1 -0
  370. package/dist/{components/p-DXXUoRSH.js → components-csr/p--OUYjgKN.js} +2 -2
  371. package/dist/{components/p-Dp-w93ot.js → components-csr/p--TCJgZnE.js} +2 -2
  372. package/dist/components-csr/p-BdEoSBtL.js +2 -0
  373. package/dist/components-csr/p-BdEoSBtL.js.map +1 -0
  374. package/dist/components-csr/p-Bmu7RqHM.js +2 -0
  375. package/dist/components-csr/p-Bx6--dQF.js +2 -0
  376. package/dist/components-csr/p-Bx6--dQF.js.map +1 -0
  377. package/dist/components-csr/p-Bz-JaJcA.js +2 -0
  378. package/dist/components-csr/p-Bz-JaJcA.js.map +1 -0
  379. package/dist/{components/p-uTEkf0sE.js → components-csr/p-C0DlKmRg.js} +2 -2
  380. package/dist/{components/p-Ch2-tttM.js → components-csr/p-C4_7YnHT.js} +2 -2
  381. package/dist/{components/p-BwXpiUsu.js → components-csr/p-CG6FaRlt.js} +2 -2
  382. package/dist/{components/p-B0Opn6dK.js → components-csr/p-CSrxeWwL.js} +2 -2
  383. package/dist/components-csr/p-C_ogF68H.js +2 -0
  384. package/dist/components-csr/p-C_ogF68H.js.map +1 -0
  385. package/dist/components-csr/p-Cch_V1vi.js +2 -0
  386. package/dist/components-csr/p-Cch_V1vi.js.map +1 -0
  387. package/dist/components-csr/p-CfBPnYW7.js +2 -0
  388. package/dist/components-csr/p-CfBPnYW7.js.map +1 -0
  389. package/dist/{components/p-B3MWYEEJ.js → components-csr/p-CrbzXk64.js} +2 -2
  390. package/dist/components-csr/p-CxhZdOPw.js +2 -0
  391. package/dist/components-csr/p-CxhZdOPw.js.map +1 -0
  392. package/dist/{components/p-7fN_yCXW.js → components-csr/p-DF19mmLl.js} +2 -2
  393. package/dist/components-csr/p-DWxN44zD.js +2 -0
  394. package/dist/components-csr/p-DWxN44zD.js.map +1 -0
  395. package/dist/components-csr/p-DYBUr7K_.js +2 -0
  396. package/dist/components-csr/p-DYBUr7K_.js.map +1 -0
  397. package/dist/{components/p-e2HRV63Y.js → components-csr/p-DfcpeJAu.js} +2 -2
  398. package/dist/components-csr/p-DvOKnoqK.js +2 -0
  399. package/dist/components-csr/p-DvOKnoqK.js.map +1 -0
  400. package/dist/{components/p-C8EP4S21.js → components-csr/p-DvXQXhgu.js} +2 -2
  401. package/dist/components-csr/p-DzPKu-Ma.js +2 -0
  402. package/dist/components-csr/p-DzPKu-Ma.js.map +1 -0
  403. package/dist/{components/p-stybaFzj.js → components-csr/p-Hm3X1iai.js} +2 -2
  404. package/dist/{components/p-6wZSqm_2.js → components-csr/p-IWA0yIjJ.js} +2 -2
  405. package/dist/components-csr/p-RLxbNqRv.js +2 -0
  406. package/dist/components-csr/p-RLxbNqRv.js.map +1 -0
  407. package/dist/components-csr/p-bSpXNc5J.js +2 -0
  408. package/dist/components-csr/p-bSpXNc5J.js.map +1 -0
  409. package/dist/components-csr/p-uZbtHo-A.js +2 -0
  410. package/dist/components-csr/package.json +3 -0
  411. package/dist/esm/app-globals-DQuL1Twl.js +6 -0
  412. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
  413. package/dist/esm/engine.wasm-CfBPnYW7.js +10 -0
  414. package/dist/esm/engine.wasm-CfBPnYW7.js.map +1 -0
  415. package/dist/esm/{index-DTaX19_O.js → index-WmvQpZnM.js} +5 -15
  416. package/dist/esm/index-WmvQpZnM.js.map +1 -0
  417. package/dist/esm/loader.js +3 -2
  418. package/dist/esm/loader.js.map +1 -1
  419. package/dist/esm/md-accordion-item.entry.js +1 -1
  420. package/dist/esm/md-accordion.entry.js +1 -1
  421. package/dist/esm/md-app-bar.entry.js +1 -1
  422. package/dist/esm/md-area-chart.entry.js +1 -1
  423. package/dist/esm/md-autocomplete.entry.js +2 -2
  424. package/dist/esm/md-avatar_2.entry.js +1 -1
  425. package/dist/esm/md-badge.entry.js +1 -1
  426. package/dist/esm/md-bar-chart.entry.js +1 -1
  427. package/dist/esm/md-bottom-sheet.entry.js +1 -1
  428. package/dist/esm/md-breadcrumb-item.entry.js +1 -1
  429. package/dist/esm/md-breadcrumbs.entry.js +1 -1
  430. package/dist/esm/md-button-group.entry.js +1 -1
  431. package/dist/esm/md-button_7.entry.js +1 -1
  432. package/dist/esm/md-checkbox.entry.js +1 -1
  433. package/dist/esm/md-chip.entry.js +1 -1
  434. package/dist/esm/md-color-picker.entry.js +1 -1
  435. package/dist/esm/md-date-picker.entry.js +1 -1
  436. package/dist/esm/md-dialog.entry.js +1 -1
  437. package/dist/esm/md-divider.entry.js +1 -1
  438. package/dist/esm/md-fab-menu-item.entry.js +1 -1
  439. package/dist/esm/md-fab-menu.entry.js +1 -1
  440. package/dist/esm/md-fab.entry.js +1 -1
  441. package/dist/esm/md-line-chart.entry.js +1 -1
  442. package/dist/esm/md-list-item.entry.js +1 -1
  443. package/dist/esm/md-list.entry.js +1 -1
  444. package/dist/esm/md-menu-item-group.entry.js +1 -1
  445. package/dist/esm/md-menu_2.entry.js +1 -1
  446. package/dist/esm/md-meter.entry.js +1 -1
  447. package/dist/esm/md-multi-select.entry.js +2 -2
  448. package/dist/esm/md-navigation-bar.entry.js +1 -1
  449. package/dist/esm/md-navigation-rail-tab.entry.js +1 -1
  450. package/dist/esm/md-navigation-rail.entry.js +1 -1
  451. package/dist/esm/md-navigation-tab.entry.js +1 -1
  452. package/dist/esm/md-number-field.entry.js +1 -1
  453. package/dist/esm/md-organization-chart.entry.js +1 -1
  454. package/dist/esm/md-otp-field.entry.js +1 -1
  455. package/dist/esm/md-pie-chart.entry.js +1 -1
  456. package/dist/esm/md-progress-indicator.entry.js +1 -1
  457. package/dist/esm/md-rating.entry.js +1 -1
  458. package/dist/esm/md-search.entry.js +1 -1
  459. package/dist/esm/md-segmented-button-set.entry.js +1 -1
  460. package/dist/esm/md-segmented-button.entry.js +1 -1
  461. package/dist/esm/md-select-option.entry.js +1 -1
  462. package/dist/esm/md-select.entry.js +2 -2
  463. package/dist/esm/md-side-sheet.entry.js +1 -1
  464. package/dist/esm/md-skeleton.entry.js +1 -1
  465. package/dist/esm/md-slider.entry.js +1 -1
  466. package/dist/esm/md-sparkline.entry.js +1 -1
  467. package/dist/esm/md-split-button.entry.js +1 -1
  468. package/dist/esm/md-status-dot.entry.js +1 -1
  469. package/dist/esm/md-step.entry.js +1 -1
  470. package/dist/esm/md-stepper.entry.js +1 -1
  471. package/dist/esm/md-sub-menu-item.entry.js +1 -1
  472. package/dist/esm/md-switch.entry.js +1 -1
  473. package/dist/esm/md-tab-panel.entry.js +1 -1
  474. package/dist/esm/md-tab-panels.entry.js +1 -1
  475. package/dist/esm/md-tab.entry.js +1 -1
  476. package/dist/esm/md-table-body.entry.js +1 -1
  477. package/dist/esm/md-table-cell.entry.js +1 -1
  478. package/dist/esm/md-table-container.entry.js +1 -1
  479. package/dist/esm/md-table-expand-toggle.entry.js +1 -1
  480. package/dist/esm/md-table-foot.entry.js +1 -1
  481. package/dist/esm/md-table-head.entry.js +1 -1
  482. package/dist/esm/md-table-pagination.entry.js +1 -1
  483. package/dist/esm/md-table-row.entry.js +1 -1
  484. package/dist/esm/md-table-sort-label.entry.js +1 -1
  485. package/dist/esm/md-table-toolbar.entry.js +1 -1
  486. package/dist/esm/md-table.entry.js +1 -1
  487. package/dist/esm/md-tabs.entry.js +1 -1
  488. package/dist/esm/md-text-field.entry.js +1 -1
  489. package/dist/esm/md-time-picker.entry.js +1 -1
  490. package/dist/esm/md-toolbar.entry.js +1 -1
  491. package/dist/esm/md-transfer-list.entry.js +1 -1
  492. package/dist/esm/md3.js +3 -2
  493. package/dist/esm/md3.js.map +1 -1
  494. package/dist/esm/{virtual-select-controller-BEWIC0pC.js → virtual-select-controller-CR60w6DO.js} +10 -9
  495. package/dist/esm/virtual-select-controller-CR60w6DO.js.map +1 -0
  496. package/dist/md3/md3.css +1 -1
  497. package/dist/md3/md3.esm.js +1 -1
  498. package/dist/md3/md3.esm.js.map +1 -1
  499. package/dist/md3/{p-2e9503d7.entry.js → p-0a599351.entry.js} +2 -2
  500. package/dist/md3/p-1d7e0203.entry.js +2 -0
  501. package/dist/md3/{p-fb61868c.entry.js.map → p-1d7e0203.entry.js.map} +1 -1
  502. package/dist/md3/p-1e85b8a8.entry.js +2 -0
  503. package/dist/md3/{p-aaec2698.entry.js.map → p-1e85b8a8.entry.js.map} +1 -1
  504. package/dist/md3/{p-396089fd.entry.js → p-1edb5a0d.entry.js} +2 -2
  505. package/dist/md3/{p-c00f7514.entry.js → p-21c89d1d.entry.js} +2 -2
  506. package/dist/md3/p-22633b2d.entry.js +2 -0
  507. package/dist/md3/{p-6b2871a0.entry.js.map → p-22633b2d.entry.js.map} +1 -1
  508. package/dist/md3/{p-2e09a7b7.entry.js → p-27135a6b.entry.js} +2 -2
  509. package/dist/md3/{p-c063c823.entry.js → p-2befc42c.entry.js} +2 -2
  510. package/dist/md3/p-2dda08b2.entry.js +2 -0
  511. package/dist/md3/{p-21772851.entry.js.map → p-2dda08b2.entry.js.map} +1 -1
  512. package/dist/md3/p-3508d0e0.entry.js +2 -0
  513. package/dist/md3/{p-f31ab454.entry.js.map → p-3508d0e0.entry.js.map} +1 -1
  514. package/dist/md3/{p-b34d385b.entry.js → p-35b05b45.entry.js} +2 -2
  515. package/dist/md3/{p-c2dd8c8c.entry.js → p-38e9a583.entry.js} +2 -2
  516. package/dist/md3/{p-3cce1de3.entry.js → p-38f82d34.entry.js} +2 -2
  517. package/dist/md3/p-3a4bd4eb.entry.js +2 -0
  518. package/dist/md3/{p-72457a85.entry.js.map → p-3a4bd4eb.entry.js.map} +1 -1
  519. package/dist/md3/{p-be02624e.entry.js → p-3c0469aa.entry.js} +2 -2
  520. package/dist/md3/{p-63b8c8d1.entry.js → p-408ee4be.entry.js} +2 -2
  521. package/dist/md3/{p-3015c7e3.entry.js → p-4770b534.entry.js} +2 -2
  522. package/dist/md3/p-4aed552f.entry.js +2 -0
  523. package/dist/md3/{p-6c44cf13.entry.js.map → p-4aed552f.entry.js.map} +1 -1
  524. package/dist/md3/{p-c5af701b.entry.js → p-4ba3623e.entry.js} +2 -2
  525. package/dist/md3/{p-7b463fbe.entry.js → p-4f2e82cb.entry.js} +2 -2
  526. package/dist/md3/{p-be412e3f.entry.js → p-501bf161.entry.js} +2 -2
  527. package/dist/md3/{p-81843ff7.entry.js → p-5929e59c.entry.js} +2 -2
  528. package/dist/md3/{p-32bdd439.entry.js → p-5c35f916.entry.js} +2 -2
  529. package/dist/md3/{p-ac35ac5f.entry.js → p-5db87a9d.entry.js} +2 -2
  530. package/dist/md3/{p-6038b907.entry.js → p-5f39b49d.entry.js} +2 -2
  531. package/dist/md3/p-637baee1.entry.js +2 -0
  532. package/dist/md3/{p-47af9819.entry.js.map → p-637baee1.entry.js.map} +1 -1
  533. package/dist/md3/{p-05ae91b6.entry.js → p-6bf632c7.entry.js} +2 -2
  534. package/dist/md3/{p-4e3d6e40.entry.js → p-6ea7117d.entry.js} +2 -2
  535. package/dist/md3/{p-9ddbf247.entry.js → p-7112374d.entry.js} +2 -2
  536. package/dist/md3/{p-1a8ec5bc.entry.js → p-7858833e.entry.js} +2 -2
  537. package/dist/md3/p-7c8842bf.entry.js +2 -0
  538. package/dist/md3/{p-ba2ebde1.entry.js.map → p-7c8842bf.entry.js.map} +1 -1
  539. package/dist/md3/{p-4d82132d.entry.js → p-7f53a423.entry.js} +2 -2
  540. package/dist/md3/{p-b0431a5c.entry.js → p-8135c606.entry.js} +2 -2
  541. package/dist/md3/{p-4dda4cb0.entry.js → p-845ca9cc.entry.js} +2 -2
  542. package/dist/md3/{p-5b74694e.entry.js → p-89d47130.entry.js} +2 -2
  543. package/dist/md3/p-8a6fed13.entry.js +2 -0
  544. package/dist/md3/{p-a803da99.entry.js.map → p-8a6fed13.entry.js.map} +1 -1
  545. package/dist/md3/{p-e3124e1e.entry.js → p-8b1ea5dc.entry.js} +2 -2
  546. package/dist/md3/{p-c10a33c2.entry.js → p-8e7df348.entry.js} +2 -2
  547. package/dist/md3/{p-65195996.entry.js → p-925768ac.entry.js} +2 -2
  548. package/dist/md3/p-944e69e0.entry.js +2 -0
  549. package/dist/md3/{p-a3308c40.entry.js.map → p-944e69e0.entry.js.map} +1 -1
  550. package/dist/md3/{p-ac8762e5.entry.js → p-96c06b24.entry.js} +2 -2
  551. package/dist/md3/p-9b9677cc.entry.js +2 -0
  552. package/dist/md3/{p-e7dc5a32.entry.js.map → p-9b9677cc.entry.js.map} +1 -1
  553. package/dist/md3/p-Bz-JaJcA.js +2 -0
  554. package/dist/md3/p-Bz-JaJcA.js.map +1 -0
  555. package/dist/md3/p-CfBPnYW7.js +2 -0
  556. package/dist/md3/p-CfBPnYW7.js.map +1 -0
  557. package/dist/md3/p-DQuL1Twl.js +2 -0
  558. package/dist/md3/p-DQuL1Twl.js.map +1 -0
  559. package/dist/md3/p-WmvQpZnM.js +3 -0
  560. package/dist/md3/p-WmvQpZnM.js.map +1 -0
  561. package/dist/md3/p-a3623653.entry.js +2 -0
  562. package/dist/md3/{p-19ee9c33.entry.js.map → p-a3623653.entry.js.map} +1 -1
  563. package/dist/md3/{p-a5fee424.entry.js → p-a49df43d.entry.js} +2 -2
  564. package/dist/md3/{p-da4e27d4.entry.js → p-a4d4cfed.entry.js} +2 -2
  565. package/dist/md3/{p-5394254f.entry.js → p-a976498b.entry.js} +2 -2
  566. package/dist/md3/{p-bf7842f8.entry.js → p-adf8a415.entry.js} +2 -2
  567. package/dist/md3/{p-c861d774.entry.js → p-ae360663.entry.js} +2 -2
  568. package/dist/md3/{p-8eb0b6a4.entry.js → p-b243284b.entry.js} +2 -2
  569. package/dist/md3/{p-45280bf4.entry.js → p-b2d88292.entry.js} +2 -2
  570. package/dist/md3/{p-796f79f8.entry.js → p-b3b5247b.entry.js} +2 -2
  571. package/dist/md3/{p-5b799707.entry.js → p-b4266f6b.entry.js} +2 -2
  572. package/dist/md3/p-b5586b66.entry.js +2 -0
  573. package/dist/md3/{p-04e97f5d.entry.js.map → p-b5586b66.entry.js.map} +1 -1
  574. package/dist/md3/{p-a7ffb779.entry.js → p-b7602557.entry.js} +2 -2
  575. package/dist/md3/{p-6ba63c73.entry.js → p-bc24f0c9.entry.js} +2 -2
  576. package/dist/md3/{p-edb34a6d.entry.js → p-bed8dfec.entry.js} +2 -2
  577. package/dist/md3/{p-50555bb7.entry.js → p-c0476406.entry.js} +2 -2
  578. package/dist/md3/{p-0c2e824d.entry.js → p-c20fbb9e.entry.js} +2 -2
  579. package/dist/md3/{p-4e45b2ff.entry.js → p-c58c68d0.entry.js} +2 -2
  580. package/dist/md3/{p-fc0b325d.entry.js → p-cdcea99f.entry.js} +2 -2
  581. package/dist/md3/{p-0f764a1e.entry.js → p-d2e39c6e.entry.js} +2 -2
  582. package/dist/md3/p-d7e99f9e.entry.js +2 -0
  583. package/dist/md3/{p-cf07e761.entry.js.map → p-d7e99f9e.entry.js.map} +1 -1
  584. package/dist/md3/{p-c1ca6f6c.entry.js → p-da0c36d9.entry.js} +2 -2
  585. package/dist/md3/{p-77a01bcc.entry.js → p-e3c37222.entry.js} +2 -2
  586. package/dist/md3/{p-39cb7c24.entry.js → p-e6b09e71.entry.js} +2 -2
  587. package/dist/md3/{p-b4631a55.entry.js → p-eddae19a.entry.js} +2 -2
  588. package/dist/md3/{p-c6a12344.entry.js → p-ef7b1826.entry.js} +2 -2
  589. package/dist/md3/p-f1b69181.entry.js +2 -0
  590. package/dist/md3/{p-a986fd24.entry.js.map → p-f1b69181.entry.js.map} +1 -1
  591. package/dist/md3/{p-e6d7f0ff.entry.js → p-f403ad20.entry.js} +2 -2
  592. package/dist/md3/{p-708a9313.entry.js → p-f5fd9a0b.entry.js} +2 -2
  593. package/dist/md3/{p-aa0e7d4d.entry.js → p-f71af38f.entry.js} +2 -2
  594. package/dist/md3/{p-757e3aaf.entry.js → p-fac6da4c.entry.js} +2 -2
  595. package/dist/md3/{p-134b670a.entry.js → p-fc864f96.entry.js} +2 -2
  596. package/dist/types/wasm/engine-abi.d.ts +14 -0
  597. package/hydrate/index.js +19 -7
  598. package/hydrate/index.mjs +19 -7
  599. package/package.json +14 -3
  600. package/dist/cjs/index-DlQ_5_Mv.js.map +0 -1
  601. package/dist/cjs/virtual-select-controller-CqriaZgm.js.map +0 -1
  602. package/dist/components/p-BEWIC0pC.js +0 -2
  603. package/dist/components/p-BEWIC0pC.js.map +0 -1
  604. package/dist/components/p-MWBNn6Lj.js +0 -2
  605. package/dist/components/p-MWBNn6Lj.js.map +0 -1
  606. package/dist/esm/index-DTaX19_O.js.map +0 -1
  607. package/dist/esm/virtual-select-controller-BEWIC0pC.js.map +0 -1
  608. package/dist/md3/p-04e97f5d.entry.js +0 -2
  609. package/dist/md3/p-19ee9c33.entry.js +0 -2
  610. package/dist/md3/p-21772851.entry.js +0 -2
  611. package/dist/md3/p-47af9819.entry.js +0 -2
  612. package/dist/md3/p-6b2871a0.entry.js +0 -2
  613. package/dist/md3/p-6c44cf13.entry.js +0 -2
  614. package/dist/md3/p-72457a85.entry.js +0 -2
  615. package/dist/md3/p-BEWIC0pC.js +0 -2
  616. package/dist/md3/p-BEWIC0pC.js.map +0 -1
  617. package/dist/md3/p-DTaX19_O.js +0 -3
  618. package/dist/md3/p-DTaX19_O.js.map +0 -1
  619. package/dist/md3/p-a3308c40.entry.js +0 -2
  620. package/dist/md3/p-a803da99.entry.js +0 -2
  621. package/dist/md3/p-a986fd24.entry.js +0 -2
  622. package/dist/md3/p-aaec2698.entry.js +0 -2
  623. package/dist/md3/p-ba2ebde1.entry.js +0 -2
  624. package/dist/md3/p-cf07e761.entry.js +0 -2
  625. package/dist/md3/p-e7dc5a32.entry.js +0 -2
  626. package/dist/md3/p-f31ab454.entry.js +0 -2
  627. package/dist/md3/p-fb61868c.entry.js +0 -2
  628. /package/dist/{components/p-DXXUoRSH.js.map → components-csr/p--OUYjgKN.js.map} +0 -0
  629. /package/dist/{components/p-Dp-w93ot.js.map → components-csr/p--TCJgZnE.js.map} +0 -0
  630. /package/dist/{components/p-UdGDg2oJ.js.map → components-csr/p-Bmu7RqHM.js.map} +0 -0
  631. /package/dist/{components/p-uTEkf0sE.js.map → components-csr/p-C0DlKmRg.js.map} +0 -0
  632. /package/dist/{components/p-Ch2-tttM.js.map → components-csr/p-C4_7YnHT.js.map} +0 -0
  633. /package/dist/{components/p-BwXpiUsu.js.map → components-csr/p-CG6FaRlt.js.map} +0 -0
  634. /package/dist/{components/p-B0Opn6dK.js.map → components-csr/p-CSrxeWwL.js.map} +0 -0
  635. /package/dist/{components/p-B3MWYEEJ.js.map → components-csr/p-CrbzXk64.js.map} +0 -0
  636. /package/dist/{components/p-7fN_yCXW.js.map → components-csr/p-DF19mmLl.js.map} +0 -0
  637. /package/dist/{components/p-e2HRV63Y.js.map → components-csr/p-DfcpeJAu.js.map} +0 -0
  638. /package/dist/{components/p-C8EP4S21.js.map → components-csr/p-DvXQXhgu.js.map} +0 -0
  639. /package/dist/{components/p-stybaFzj.js.map → components-csr/p-Hm3X1iai.js.map} +0 -0
  640. /package/dist/{components/p-6wZSqm_2.js.map → components-csr/p-IWA0yIjJ.js.map} +0 -0
  641. /package/dist/{components/p-Ddiw2Kjw.js.map → components-csr/p-uZbtHo-A.js.map} +0 -0
  642. /package/dist/md3/{p-2e9503d7.entry.js.map → p-0a599351.entry.js.map} +0 -0
  643. /package/dist/md3/{p-396089fd.entry.js.map → p-1edb5a0d.entry.js.map} +0 -0
  644. /package/dist/md3/{p-c00f7514.entry.js.map → p-21c89d1d.entry.js.map} +0 -0
  645. /package/dist/md3/{p-2e09a7b7.entry.js.map → p-27135a6b.entry.js.map} +0 -0
  646. /package/dist/md3/{p-c063c823.entry.js.map → p-2befc42c.entry.js.map} +0 -0
  647. /package/dist/md3/{p-b34d385b.entry.js.map → p-35b05b45.entry.js.map} +0 -0
  648. /package/dist/md3/{p-c2dd8c8c.entry.js.map → p-38e9a583.entry.js.map} +0 -0
  649. /package/dist/md3/{p-3cce1de3.entry.js.map → p-38f82d34.entry.js.map} +0 -0
  650. /package/dist/md3/{p-be02624e.entry.js.map → p-3c0469aa.entry.js.map} +0 -0
  651. /package/dist/md3/{p-63b8c8d1.entry.js.map → p-408ee4be.entry.js.map} +0 -0
  652. /package/dist/md3/{p-3015c7e3.entry.js.map → p-4770b534.entry.js.map} +0 -0
  653. /package/dist/md3/{p-c5af701b.entry.js.map → p-4ba3623e.entry.js.map} +0 -0
  654. /package/dist/md3/{p-7b463fbe.entry.js.map → p-4f2e82cb.entry.js.map} +0 -0
  655. /package/dist/md3/{p-be412e3f.entry.js.map → p-501bf161.entry.js.map} +0 -0
  656. /package/dist/md3/{p-81843ff7.entry.js.map → p-5929e59c.entry.js.map} +0 -0
  657. /package/dist/md3/{p-32bdd439.entry.js.map → p-5c35f916.entry.js.map} +0 -0
  658. /package/dist/md3/{p-ac35ac5f.entry.js.map → p-5db87a9d.entry.js.map} +0 -0
  659. /package/dist/md3/{p-6038b907.entry.js.map → p-5f39b49d.entry.js.map} +0 -0
  660. /package/dist/md3/{p-05ae91b6.entry.js.map → p-6bf632c7.entry.js.map} +0 -0
  661. /package/dist/md3/{p-4e3d6e40.entry.js.map → p-6ea7117d.entry.js.map} +0 -0
  662. /package/dist/md3/{p-9ddbf247.entry.js.map → p-7112374d.entry.js.map} +0 -0
  663. /package/dist/md3/{p-1a8ec5bc.entry.js.map → p-7858833e.entry.js.map} +0 -0
  664. /package/dist/md3/{p-4d82132d.entry.js.map → p-7f53a423.entry.js.map} +0 -0
  665. /package/dist/md3/{p-b0431a5c.entry.js.map → p-8135c606.entry.js.map} +0 -0
  666. /package/dist/md3/{p-4dda4cb0.entry.js.map → p-845ca9cc.entry.js.map} +0 -0
  667. /package/dist/md3/{p-5b74694e.entry.js.map → p-89d47130.entry.js.map} +0 -0
  668. /package/dist/md3/{p-e3124e1e.entry.js.map → p-8b1ea5dc.entry.js.map} +0 -0
  669. /package/dist/md3/{p-c10a33c2.entry.js.map → p-8e7df348.entry.js.map} +0 -0
  670. /package/dist/md3/{p-65195996.entry.js.map → p-925768ac.entry.js.map} +0 -0
  671. /package/dist/md3/{p-ac8762e5.entry.js.map → p-96c06b24.entry.js.map} +0 -0
  672. /package/dist/md3/{p-a5fee424.entry.js.map → p-a49df43d.entry.js.map} +0 -0
  673. /package/dist/md3/{p-da4e27d4.entry.js.map → p-a4d4cfed.entry.js.map} +0 -0
  674. /package/dist/md3/{p-5394254f.entry.js.map → p-a976498b.entry.js.map} +0 -0
  675. /package/dist/md3/{p-bf7842f8.entry.js.map → p-adf8a415.entry.js.map} +0 -0
  676. /package/dist/md3/{p-c861d774.entry.js.map → p-ae360663.entry.js.map} +0 -0
  677. /package/dist/md3/{p-8eb0b6a4.entry.js.map → p-b243284b.entry.js.map} +0 -0
  678. /package/dist/md3/{p-45280bf4.entry.js.map → p-b2d88292.entry.js.map} +0 -0
  679. /package/dist/md3/{p-796f79f8.entry.js.map → p-b3b5247b.entry.js.map} +0 -0
  680. /package/dist/md3/{p-5b799707.entry.js.map → p-b4266f6b.entry.js.map} +0 -0
  681. /package/dist/md3/{p-a7ffb779.entry.js.map → p-b7602557.entry.js.map} +0 -0
  682. /package/dist/md3/{p-6ba63c73.entry.js.map → p-bc24f0c9.entry.js.map} +0 -0
  683. /package/dist/md3/{p-edb34a6d.entry.js.map → p-bed8dfec.entry.js.map} +0 -0
  684. /package/dist/md3/{p-50555bb7.entry.js.map → p-c0476406.entry.js.map} +0 -0
  685. /package/dist/md3/{p-0c2e824d.entry.js.map → p-c20fbb9e.entry.js.map} +0 -0
  686. /package/dist/md3/{p-4e45b2ff.entry.js.map → p-c58c68d0.entry.js.map} +0 -0
  687. /package/dist/md3/{p-fc0b325d.entry.js.map → p-cdcea99f.entry.js.map} +0 -0
  688. /package/dist/md3/{p-0f764a1e.entry.js.map → p-d2e39c6e.entry.js.map} +0 -0
  689. /package/dist/md3/{p-c1ca6f6c.entry.js.map → p-da0c36d9.entry.js.map} +0 -0
  690. /package/dist/md3/{p-77a01bcc.entry.js.map → p-e3c37222.entry.js.map} +0 -0
  691. /package/dist/md3/{p-39cb7c24.entry.js.map → p-e6b09e71.entry.js.map} +0 -0
  692. /package/dist/md3/{p-b4631a55.entry.js.map → p-eddae19a.entry.js.map} +0 -0
  693. /package/dist/md3/{p-c6a12344.entry.js.map → p-ef7b1826.entry.js.map} +0 -0
  694. /package/dist/md3/{p-e6d7f0ff.entry.js.map → p-f403ad20.entry.js.map} +0 -0
  695. /package/dist/md3/{p-708a9313.entry.js.map → p-f5fd9a0b.entry.js.map} +0 -0
  696. /package/dist/md3/{p-aa0e7d4d.entry.js.map → p-f71af38f.entry.js.map} +0 -0
  697. /package/dist/md3/{p-757e3aaf.entry.js.map → p-fac6da4c.entry.js.map} +0 -0
  698. /package/dist/md3/{p-134b670a.entry.js.map → p-fc864f96.entry.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{r as t,c as i,h as s,H as e,a as n}from"./p-DTaX19_O.js";import{c as a,r as o,d as r,b as h,a as l}from"./p-C_ogF68H.js";import{L as c}from"./p-RLxbNqRv.js";import{d,a as m,r as u,b as p,p as f}from"./p-DvOKnoqK.js";import"./p-DzPKu-Ma.js";const y=()=>`:host{--_block-size:var(--md-line-chart-block-size, auto);--_min-block-size:var(--md-line-chart-min-block-size, max(120px, calc(160px + var(--md-sys-density-scale, 0) * 8px)));--_aspect-ratio:var(--md-line-chart-aspect-ratio, 16 / 9);--_background:var(--md-line-chart-background, var(--md-sys-color-surface-container-low, #F7F2FA));--_padding:var(--md-line-chart-padding, max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px)));--_shape:var(--md-line-chart-shape, max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px)));--_empty-color:var(--md-line-chart-empty-color, var(--md-sys-color-on-surface-variant, #49454F));--_empty-background:var(--md-line-chart-empty-background, var(--_background));--_empty-font:var(--md-line-chart-empty-font, var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif));--_empty-font-size:var(--md-line-chart-empty-font-size, var(--md-sys-typescale-body-medium-font-size, 14px));--_empty-icon-size:var(--md-line-chart-empty-icon-size, 40px);--_zoom-size:var(--md-line-chart-zoom-size, 28px);--_zoom-track-color:var(--md-line-chart-zoom-track-color, var(--md-sys-color-surface-container-highest, #E6E0E9));--_zoom-window-color:var(--md-line-chart-zoom-window-color, var(--md-sys-color-secondary-container, #E8DEF8));--_zoom-handle-color:var(--md-line-chart-zoom-handle-color, var(--md-sys-color-primary, #6750A4));--_zoom-band-color:var(--md-line-chart-zoom-band-color, color-mix(in srgb, var(--md-sys-color-primary, #6750A4) 16%, transparent));--_zoom-pan-inset:10px;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-line-chart__header,.md-line-chart__footer{display:contents}.md-line-chart__header>slot[name='header']::slotted(*),.md-line-chart__footer>slot[name='footer']::slotted(*){display:block;margin-block:8px}.md-line-chart__canvas{position:absolute;inset:var(--_padding);min-block-size:0;min-inline-size:0}.md-line-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-line-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-line-chart__spinner{inline-size:var(--_empty-icon-size);block-size:var(--_empty-icon-size)}.md-line-chart__empty ::slotted(.material-symbols-outlined),.md-line-chart__empty ::slotted(.material-symbols-rounded),.md-line-chart__empty ::slotted(.material-symbols-sharp),.md-line-chart__empty ::slotted(.material-icons){font-size:var(--_empty-icon-size) !important;line-height:1;opacity:0.55}:host(.md-line-chart--zoom-slider) .md-line-chart__canvas{bottom:calc(var(--_padding) + var(--_zoom-size))}:host(.md-line-chart--zoom-drag) .md-line-chart__canvas{cursor:ew-resize}.md-line-chart__zoom{position:absolute;inset-inline:var(--_padding);bottom:var(--_padding);block-size:var(--_zoom-size);display:flex;align-items:center}.md-line-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-line-chart__zoom-pan{position:absolute;inset-block:0;z-index:1;cursor:grab;touch-action:none}.md-line-chart__zoom-pan:active{cursor:grabbing}.md-line-chart__zoom-band{position:absolute;background:var(--_zoom-band-color);border-inline:1px solid var(--_zoom-handle-color);pointer-events:none}.md-line-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-line-chart__canvas:focus-visible{outline:3px solid var(--md-sys-color-secondary, #625B71);outline-offset:-3px;border-radius:4px}.md-line-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}}: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 b=class{constructor(s){t(this,s);this.mdMarkerClick=i(this,"mdMarkerClick",7);this.mdLineClick=i(this,"mdLineClick",7);this.mdAreaClick=i(this,"mdAreaClick",7);this.mdAxisClick=i(this,"mdAxisClick",7);this.mdLegendClick=i(this,"mdLegendClick",7);this.mdHover=i(this,"mdHover",7);this.mdReady=i(this,"mdReady",7);this.mdZoom=i(this,"mdZoom",7);this.label="";this.titleAlign="start";this.series=[];this.curve="smooth";this.stack="none";this.connectNulls=false;this.showMarks=false;this.area=false;this.showLine=true;this.legend="top-end";this.tooltip="axis";this.grid="horizontal";this.axisTicks=false;this.inverted=false;this.showLabels=false;this.seriesLabels=false;this.zoom="none";this.locale="";this.labelEmpty="No data to display";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.labelZoomStart="Zoom range start";this.labelZoomEnd="Zoom range end";this.summary="";this.noAnimation=false;this.animation="expressive";this.loading=false;this.loadingLabel="Loading chart…";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.mergeCache=null;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 i=this.hostX(t);this.grab={id:t.pointerId,kind:"band",x:i,win:this.win()};this.dragBand={x1:i,x2:i};const s=t.composedPath?.()[0]??t.target;s.setPointerCapture?.(t.pointerId)};this.onPointerMove=t=>{const i=this.grab;if(!i||i.id!==t.pointerId)return;if(i.kind==="band"){const s=this.plotRect();if(!s)return;this.dragBand={x1:i.x,x2:Math.min(Math.max(this.hostX(t),s.x),s.x+s.width)};return}const s=this.trackFrac(t.clientX);const e=this.trackFrac(i.x);if(s==null||e==null)return;const n=Math.max(1,this.dataLength()-1);const a=i.win.end-i.win.start;const o=Math.round((s-e)*n);const r=Math.min(Math.max(0,i.win.start+o),n-a);this.applyZoom(r,r+a)};this.onPointerUp=t=>{const i=this.grab;if(!i||i.id!==t.pointerId)return;this.grab=null;const s=this.dragBand;this.dragBand=null;if(i.kind!=="band"||!s)return;if(Math.abs(s.x2-s.x1)<8)return;const[e,n]=[this.indexAtX(s.x1),this.indexAtX(s.x2)].sort(((t,i)=>t-i));if(n-e>=1)this.applyZoom(e,n)};this.onPlotKeyDown=t=>{const i=Math.max(0,this.dataLength()-1);if(i<0)return;const s=typeof getComputedStyle==="function"&&getComputedStyle(this.el).direction==="rtl";const e=s?"ArrowLeft":"ArrowRight";const n=s?"ArrowRight":"ArrowLeft";let a=this.kbIndex;switch(t.key){case e:a=this.kbIndex<0?0:Math.min(i,this.kbIndex+1);break;case n:a=this.kbIndex<0?i:Math.max(0,this.kbIndex-1);break;case"Home":a=0;break;case"End":a=i;break;case"Escape":if(this.kbIndex<0)return;a=-1;break;case"Enter":case" ":if(this.kbIndex<0)return;this.mdAxisClick.emit(this.axisDetail(this.kbIndex,this.seriesValuesAt(this.kbIndex),t));t.preventDefault();return;default:return}t.preventDefault();this.moveKeyboardCursor(a)};this.onPlotBlur=()=>{if(this.kbIndex>=0)this.moveKeyboardCursor(-1)};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:i,valueEnd:s}=t.detail??{};if(i==null||s==null)return;this.applyZoom(i,s)};this.onZoomSliderEvent=t=>t.stopPropagation()}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()}onLoadingChange(t,i){if(i&&!t)this.engine?.replay()}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 c(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}}seriesKeys(){const t=new Map;return this.series.map(((i,s)=>{const e=i.id!=null?`id:${i.id}`:i.label!=null?`label:${i.label}`:`pos:${s}`;const n=t.get(e)??0;t.set(e,n+1);return n===0?e:`${e}#${n}`}))}rememberLegendToggle(t,i){const s=this.seriesKeys()[t];if(s==null)return;this.legendHidden.set(s,i);if(this.legendHidden.size>256){const t=this.legendHidden.keys().next().value;this.legendHidden.delete(t)}}get zoomInside(){return this.zoom==="inside"||this.zoom==="both"}get zoomSliderOn(){return this.zoom==="slider"||this.zoom==="both"}get merged(){const t=this.xAxis?.scale??"category";const i=this.xAxis?.data;const s=this.mergeCache;if(s&&s.series===this.series&&s.axis===i&&s.scale===t)return s.out;const e=a(this.series??[],i,t);this.mergeCache={series:this.series,axis:i,scale:t,out:e};return e}dataLength(){const t=this.merged;const i=t.data.reduce(((t,i)=>Math.max(t,i?.length??0)),0);return Math.max(i,t.xValues.length)}win(){const t=Math.max(0,this.dataLength()-1);const i=this.zoomWin;if(!i)return{start:0,end:t};const s=Math.min(Math.max(0,i.start),Math.max(0,t-1));return{start:s,end:Math.min(Math.max(s+1,i.end),t)}}applyZoom(t,i,s=false){const e=Math.max(0,this.dataLength()-1);const n=Math.min(Math.max(0,Math.round(t)),Math.max(0,e-1));const a=Math.min(Math.max(n+1,Math.round(i)),e);this.zoomWin=s?null:{start:n,end:a};this.applyEngine();this.rebuildA11yTable();this.mdZoom.emit({startIndex:s?0:n,endIndex:s?e:a,reset:s})}async setZoom(t,i){this.applyZoom(t,i)}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}canvasOffset(){const t=this.chartHost;if(!t)return{x:0,y:0};const i=this.el.getBoundingClientRect();const s=t.getBoundingClientRect();return{x:s.left-i.left,y:s.top-i.top}}zoomBandStyle(){const t=this.plotRect();if(!this.dragBand||!t)return undefined;const i=this.canvasOffset();const{x1:s,x2:e}=this.dragBand;return{left:`${i.x+Math.min(s,e)}px`,width:`${Math.abs(e-s)}px`,top:`${i.y+t.y}px`,height:`${t.height}px`}}indexAtX(t){const i=this.engine?.getScene();const s=this.win();if(!i?.xPositions?.length)return s.start;let e=0;let n=Infinity;i.xPositions.forEach(((i,s)=>{const a=Math.abs(i-t);if(a<n){n=a;e=s}}));return s.start+e}hostX(t){return t.clientX-(this.chartHost??this.el).getBoundingClientRect().left}insidePlot(t){const i=this.plotRect();if(!i)return false;const s=(this.chartHost??this.el).getBoundingClientRect();const e=t.clientX-s.left;const n=t.clientY-s.top;return e>=i.x&&e<=i.x+i.width&&n>=i.y&&n<=i.y+i.height}moveKeyboardCursor(t){this.kbIndex=t;this.engine?.focusIndex(t);if(t<0){this.announcement="";return}const i=this.merged;const s=i.xValues[t];const e=this.xAxis?.valueFormatter?this.xAxis.valueFormatter(s):d(s??t+1,this.locale);const n=t=>this.valueFormatter?this.valueFormatter(t):t.toLocaleString(this.locale||undefined);const a=this.seriesValuesAt(t).filter((t=>t.value!=null)).map((t=>`${t.label} ${n(t.value)}`)).join(", ");this.announcement=this.labelPoint.replace("%x%",e).replace("%values%",a);this.mdHover.emit({dataIndex:t,axisValue:s,seriesIndices:this.visibleSeriesIndices()})}sliderTrackRect(){const t=this.el.shadowRoot?.querySelector(".md-line-chart__zoom-slider");if(!t)return null;const i=t.getBoundingClientRect();if(!i.width)return null;return{left:i.left,width:i.width,rtl:getComputedStyle(this.el).direction==="rtl"}}trackFrac(t){const i=this.sliderTrackRect();if(!i)return null;const s=(t-i.left)/i.width;return Math.min(Math.max(i.rtl?1-s:s,0),1)}buildSpec(t){const i=this.stack==="percentage";const s=t=>this.valueFormatter?this.valueFormatter(t):t.toLocaleString(this.locale||undefined);const e=this.seriesKeys();const n=this.zoomWin?this.win():null;const a=t=>t&&n?t.slice(n.start,n.end+1):t;const r=t=>{if(!t||!n)return t;const i={};for(const[s,e]of Object.entries(t)){const t=Number(s)-n.start;if(t>=0&&t<=n.end-n.start)i[t]=e}return i};const h=this.merged;const l=this.series.map(((i,s)=>{const l=e[s];const c=this.legendHidden.get(l);const d=h.toMerged[s];const u=i.dashAfter!=null&&d?d[i.dashAfter]:i.dashAfter;if(i.hidden!==undefined)this.legendHidden.delete(l);return{label:i.label??`Series ${s+1}`,color:m(this.el,i.color,f(t.palette,s)),data:a(h.data[s])??h.data[s]??[],curve:i.curve??this.curve,connectNulls:i.connectNulls??this.connectNulls,showMarks:i.showMarks??this.showMarks,hidden:i.hidden??c??false,dash:i.dash,symbol:i.symbol,pointSymbols:r(o(i.pointSymbols,d)),yAxisIndex:i.yAxisIndex,dashAfter:u!=null&&u>=0&&n?u-n.start:u,hollow:i.hollow,stroke:i.stroke??(this.showLine?undefined:false),lineWidth:i.lineWidth??this.lineWidth,markSize:i.markSize??this.markSize}}));return{series:l,title:this.label||undefined,subtitle:this.subtitle||undefined,markLines:this.markLines?.map((t=>{const i=n!=null&&(this.xAxis?.scale??"category")==="category"&&typeof t.value==="number";const s=i?t.value-n.start:t.value;return{value:s,label:t.label,color:t.color!=null?m(this.el,t.color,t.color):undefined,dash:t.dash,offscreen:i&&(Number(s)<0||Number(s)>n.end-n.start)}})).filter((t=>!t.offscreen)).map((({offscreen:t,...i})=>i)),titleAlign:this.titleAlign,xValues:a(h.xValues)??[],xScale:this.xAxis?.scale??"category",xFormatter:this.xAxis?.valueFormatter??(t=>d(t,this.locale)),xLabel:this.xAxis?.label,xHidden:this.xAxis?.hidden,xHideTicks:this.xAxis?.hideTicks,xDash:this.xAxis?.dash,xGridDash:this.xAxis?.gridDash,xBands:u(this.el,this.xAxis?.bands),yBands:u(this.el,this.yAxis?.bands),xBreaks:this.xAxis?.breaks,yBreaks:this.yAxis?.breaks,yScale:this.yAxis?.scale??"value",yMin:i?0:this.yAxis?.min,yMax:i?100:this.yAxis?.max,yFormatter:i?t=>`${Math.round(t)}%`:s,yTickFormatter:!i&&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,yAxes:this.yAxes?.length?this.yAxes.map((t=>({scale:t.scale??"value",min:t.min,max:t.max,formatter:t.valueFormatter?i=>t.valueFormatter(i):t=>t.toLocaleString(this.locale||undefined),label:t.label,position:t.position,hidden:t.hidden,hideTicks:t.hideTicks,color:t.color!=null?m(this.el,t.color,t.color):undefined,bands:u(this.el,t.bands),dash:t.dash,gridDash:t.gridDash}))):undefined,stack:this.stack,area:this.area,legend:this.legend,gridY:this.grid==="horizontal"||this.grid==="both",gridX:this.grid==="vertical"||this.grid==="both",axisTicks:this.axisTicks,inverted:this.inverted,showLabels:this.showLabels,seriesLabels:this.seriesLabels,animation:this.noAnimation?"none":this.animation,animationDuration:this.animationDuration}}applyEngine(){if(!this.engine)return;const t=p(this.el);this.engine.setSpec(this.buildSpec(t),this.buildEngineTheme(t),{onHover:t=>{if(t<0)return;const i=t+(this.zoomWin?this.win().start:0);this.mdHover.emit({dataIndex:i,axisValue:this.merged.xValues[i],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,i,s)=>{const e=this.clickDetail(t,i,s);if(e)this.mdMarkerClick.emit(e)},onLineClick:(t,i,s)=>{const e=this.clickDetail(t,i,s);if(e)this.mdLineClick.emit(e)},onAreaClick:(t,i,s)=>{const e=this.clickDetail(t,i,s);if(e)this.mdAreaClick.emit(e)},onAxisClick:(t,i,s)=>this.mdAxisClick.emit(this.axisDetail(t,i,s))});this.engine.setHoverEnabled(this.tooltip!=="none");this.engine.setTooltip({render:this.tooltipRenderer,missingFormatter:this.valueFormatter,trigger:this.tooltip==="item"?"item":"axis"})}clickDetail(t,i,s){const e=this.series[t];if(!e)return null;const n=i+(this.zoomWin?this.win().start:0);const a=this.ownIndex(t,n);return{seriesIndex:t,seriesId:e.id,dataIndex:a>=0?a:n,value:a>=0?r(e.data[a]):null,axisValue:this.merged.xValues[n],nativeEvent:s,series:e}}ownIndex(t,i){const s=this.merged.toOwn[t];return s?s[i]??-1:i}seriesValuesAt(t){const i=this.engine?.getScene()?.hoverPoints??[];return i.map((i=>({seriesIndex:i.seriesIndex,label:i.label,value:i.byIndex[t]?.value??null})))}axisDetail(t,i,s){const e=t+(this.zoomWin?this.win().start:0);const n=i.map((t=>{const i=this.ownIndex(t.seriesIndex,e);return{seriesIndex:t.seriesIndex,seriesId:this.series[t.seriesIndex]?.id,label:t.label,dataIndex:t.value==null?-1:i,value:t.value}}));return{dataIndex:e,axisValue:this.merged.xValues[e],seriesValues:n,nativeEvent:s}}visibleSeriesIndices(){const t=this.engine?.getScene()?.hoverPoints;if(t)return t.map((t=>t.seriesIndex));const i=this.seriesKeys();return this.series.map(((t,i)=>i)).filter((t=>!(this.series[t].hidden??this.legendHidden.get(i[t])??false)))}rebuildA11yTable(){if(!this.a11yTableHost)return;const t=this.merged;this.a11yTableHost.innerHTML=h({title:this.label,xAxisLabel:this.xAxis?.label,xAxisData:t.xValues,xValueFormatter:this.xAxis?.valueFormatter??(t=>d(t,this.locale)),locale:this.locale,labels:this.tableLabels,series:this.series.map(((i,s)=>({label:i.label,data:t.data[s]??[]}))),valueFormatter:this.valueFormatter})}renderZoomSlider(){const t=Math.max(1,this.dataLength()-1);const i=this.win();const e=i=>i/t*100;const n=t=>String(this.xAxis?.data?.[t]??t);return s("div",{class:"md-line-chart__zoom",part:"zoom"},s("md-slider",{class:"md-line-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:i.start,valueEnd:i.end,ariaLabelStart:this.labelZoomStart,ariaLabelEnd:this.labelZoomEnd,valueStartText:n(i.start),valueEndText:n(i.end),onMdInput:this.onZoomSliderInput,onMdChange:this.onZoomSliderEvent,onMdDragStart:this.onZoomSliderEvent,onMdDragEnd:this.onZoomSliderEvent,onMdFocus:this.onZoomSliderEvent,onMdBlur:this.onZoomSliderEvent}),s("div",{class:"md-line-chart__zoom-pan",part:"zoom-pan",style:{insetInlineStart:`calc(${e(i.start)}% + var(--_zoom-pan-inset))`,inlineSize:`max(0px, calc(${e(i.end)-e(i.start)}% - 2 * var(--_zoom-pan-inset)))`},onPointerDown:this.onZoomPanDown}))}render(){const t=this.merged.xValues;const i=this.summary||l({title:this.label,chartType:this.area?"area":"line",seriesCount:this.series.length,xMin:t[0],xMax:t[t.length-1],locale:this.locale});const n=this.series.length===0&&!this.loading;return s(e,{key:"d9a1a408606f3561ab600a9e11978ed9f6fb5308",class:{"md-line-chart":true,"md-line-chart--empty":n,"md-line-chart--loading":this.loading,"md-line-chart--mounted":this.mounted,"md-line-chart--zoom-slider":this.zoomSliderOn,"md-line-chart--zoom-drag":this.zoomInside},role:"figure","aria-label":i,"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:"7d3982cb8d3a9a69f95554943898a214d221c734",class:"md-line-chart__header",part:"header"},s("slot",{key:"fc1a089066350f40fa9c30b1984294017cd5dbbb",name:"header"})),s("div",{key:"e4818930f4ba554326a7e7720075fcf211fe17b0",class:"md-line-chart__canvas",part:"canvas",ref:t=>this.bindChartHost(t),tabindex:n?undefined:"0",role:n?undefined:"application","aria-label":n?undefined:this.labelPlot,onKeyDown:this.onPlotKeyDown,onBlur:this.onPlotBlur}),n&&s("div",{key:"d056e1034d7cbf6a61a46256c7f271cb0343ce7b",class:"md-line-chart__empty",part:"empty"},s("slot",{key:"d3af8ff195e4973432ae6fcf683e96f70bd1ccab",name:"empty"},this.labelEmpty)),this.loading&&s("div",{key:"3b26dd9069ebf17abd58d1c77e14828019e0a4e2",class:"md-line-chart__loading",part:"loading",role:"status"},s("slot",{key:"d36d29dafcc655bd30d7bcbac13ae6c18a594839",name:"loader"},s("slot",{key:"47153fb58d0e11132e466e724ab587caa576c263",name:"loading"},s("md-progress-indicator",{key:"60c443fa744ac9ab1ef58afad715799059009326",class:"md-line-chart__spinner",variant:"circular",indeterminate:true,label:this.loadingLabel}),s("span",{key:"505c3a377627e288969725420ac2db4b7329b57d",class:"md-line-chart__loading-text"},this.loadingLabel)))),this.dragBand&&Math.abs(this.dragBand.x2-this.dragBand.x1)>1&&s("div",{key:"8b496a56977f724f86c43167fffa3ff7d07caf75",class:"md-line-chart__zoom-band",part:"zoom-band",style:this.zoomBandStyle()}),this.zoomSliderOn&&this.renderZoomSlider(),s("footer",{key:"83a5255e217e7d74c2707d69d39b25c014ab3d1c",class:"md-line-chart__footer",part:"footer"},s("slot",{key:"9690127eb42f33b825d016f8cd85261cc62a74e7",name:"footer"})),s("div",{key:"9d31b766915dbc6031b5e2f43b69b949d45e4f44",class:"md-line-chart__a11y-table",ref:t=>this.bindA11yTableHost(t)}),s("div",{key:"2038de7cd5eca21af587cfa14a13edf08a73c750",class:"md-line-chart__live",role:"status","aria-live":"polite","aria-atomic":"true"},this.announcement))}get el(){return n(this)}static get watchers(){return{series:[{onAnyPropChange:0}],xAxis:[{onAnyPropChange:0}],yAxis:[{onAnyPropChange:0}],yAxes:[{onAnyPropChange:0}],curve:[{onAnyPropChange:0}],stack:[{onAnyPropChange:0}],area:[{onAnyPropChange:0}],showLine:[{onAnyPropChange:0}],legend:[{onAnyPropChange:0}],tooltip:[{onAnyPropChange:0}],grid:[{onAnyPropChange:0}],axisTicks:[{onAnyPropChange:0}],inverted:[{onAnyPropChange:0}],showLabels:[{onAnyPropChange:0}],seriesLabels:[{onAnyPropChange:0}],connectNulls:[{onAnyPropChange:0}],showMarks:[{onAnyPropChange:0}],lineWidth:[{onAnyPropChange:0}],markSize:[{onAnyPropChange:0}],label:[{onAnyPropChange:0}],subtitle:[{onAnyPropChange:0}],markLines:[{onAnyPropChange:0}],titleAlign:[{onAnyPropChange:0}],animation:[{onAnyPropChange:0}],animationDuration:[{onAnyPropChange:0}],tooltipRenderer:[{onAnyPropChange:0}],valueFormatter:[{onAnyPropChange:0}],loading:[{onLoadingChange:0}]}}};b.style=y();export{b as md_line_chart};
2
- //# sourceMappingURL=p-4d82132d.entry.js.map
1
+ import{r as t,c as i,h as s,H as e,g as n}from"./p-WmvQpZnM.js";import{c as a,r as o,d as r,b as h,a as l}from"./p-C_ogF68H.js";import{L as c}from"./p-RLxbNqRv.js";import{d,a as m,r as u,b as p,p as f}from"./p-DvOKnoqK.js";import"./p-DzPKu-Ma.js";const y=()=>`:host{--_block-size:var(--md-line-chart-block-size, auto);--_min-block-size:var(--md-line-chart-min-block-size, max(120px, calc(160px + var(--md-sys-density-scale, 0) * 8px)));--_aspect-ratio:var(--md-line-chart-aspect-ratio, 16 / 9);--_background:var(--md-line-chart-background, var(--md-sys-color-surface-container-low, #F7F2FA));--_padding:var(--md-line-chart-padding, max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px)));--_shape:var(--md-line-chart-shape, max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px)));--_empty-color:var(--md-line-chart-empty-color, var(--md-sys-color-on-surface-variant, #49454F));--_empty-background:var(--md-line-chart-empty-background, var(--_background));--_empty-font:var(--md-line-chart-empty-font, var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif));--_empty-font-size:var(--md-line-chart-empty-font-size, var(--md-sys-typescale-body-medium-font-size, 14px));--_empty-icon-size:var(--md-line-chart-empty-icon-size, 40px);--_zoom-size:var(--md-line-chart-zoom-size, 28px);--_zoom-track-color:var(--md-line-chart-zoom-track-color, var(--md-sys-color-surface-container-highest, #E6E0E9));--_zoom-window-color:var(--md-line-chart-zoom-window-color, var(--md-sys-color-secondary-container, #E8DEF8));--_zoom-handle-color:var(--md-line-chart-zoom-handle-color, var(--md-sys-color-primary, #6750A4));--_zoom-band-color:var(--md-line-chart-zoom-band-color, color-mix(in srgb, var(--md-sys-color-primary, #6750A4) 16%, transparent));--_zoom-pan-inset:10px;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-line-chart__header,.md-line-chart__footer{display:contents}.md-line-chart__header>slot[name='header']::slotted(*),.md-line-chart__footer>slot[name='footer']::slotted(*){display:block;margin-block:8px}.md-line-chart__canvas{position:absolute;inset:var(--_padding);min-block-size:0;min-inline-size:0}.md-line-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-line-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-line-chart__spinner{inline-size:var(--_empty-icon-size);block-size:var(--_empty-icon-size)}.md-line-chart__empty ::slotted(.material-symbols-outlined),.md-line-chart__empty ::slotted(.material-symbols-rounded),.md-line-chart__empty ::slotted(.material-symbols-sharp),.md-line-chart__empty ::slotted(.material-icons){font-size:var(--_empty-icon-size) !important;line-height:1;opacity:0.55}:host(.md-line-chart--zoom-slider) .md-line-chart__canvas{bottom:calc(var(--_padding) + var(--_zoom-size))}:host(.md-line-chart--zoom-drag) .md-line-chart__canvas{cursor:ew-resize}.md-line-chart__zoom{position:absolute;inset-inline:var(--_padding);bottom:var(--_padding);block-size:var(--_zoom-size);display:flex;align-items:center}.md-line-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-line-chart__zoom-pan{position:absolute;inset-block:0;z-index:1;cursor:grab;touch-action:none}.md-line-chart__zoom-pan:active{cursor:grabbing}.md-line-chart__zoom-band{position:absolute;background:var(--_zoom-band-color);border-inline:1px solid var(--_zoom-handle-color);pointer-events:none}.md-line-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-line-chart__canvas:focus-visible{outline:3px solid var(--md-sys-color-secondary, #625B71);outline-offset:-3px;border-radius:4px}.md-line-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}}: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 b=class{constructor(s){t(this,s);this.mdMarkerClick=i(this,"mdMarkerClick",7);this.mdLineClick=i(this,"mdLineClick",7);this.mdAreaClick=i(this,"mdAreaClick",7);this.mdAxisClick=i(this,"mdAxisClick",7);this.mdLegendClick=i(this,"mdLegendClick",7);this.mdHover=i(this,"mdHover",7);this.mdReady=i(this,"mdReady",7);this.mdZoom=i(this,"mdZoom",7);this.label="";this.titleAlign="start";this.series=[];this.curve="smooth";this.stack="none";this.connectNulls=false;this.showMarks=false;this.area=false;this.showLine=true;this.legend="top-end";this.tooltip="axis";this.grid="horizontal";this.axisTicks=false;this.inverted=false;this.showLabels=false;this.seriesLabels=false;this.zoom="none";this.locale="";this.labelEmpty="No data to display";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.labelZoomStart="Zoom range start";this.labelZoomEnd="Zoom range end";this.summary="";this.noAnimation=false;this.animation="expressive";this.loading=false;this.loadingLabel="Loading chart…";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.mergeCache=null;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 i=this.hostX(t);this.grab={id:t.pointerId,kind:"band",x:i,win:this.win()};this.dragBand={x1:i,x2:i};const s=t.composedPath?.()[0]??t.target;s.setPointerCapture?.(t.pointerId)};this.onPointerMove=t=>{const i=this.grab;if(!i||i.id!==t.pointerId)return;if(i.kind==="band"){const s=this.plotRect();if(!s)return;this.dragBand={x1:i.x,x2:Math.min(Math.max(this.hostX(t),s.x),s.x+s.width)};return}const s=this.trackFrac(t.clientX);const e=this.trackFrac(i.x);if(s==null||e==null)return;const n=Math.max(1,this.dataLength()-1);const a=i.win.end-i.win.start;const o=Math.round((s-e)*n);const r=Math.min(Math.max(0,i.win.start+o),n-a);this.applyZoom(r,r+a)};this.onPointerUp=t=>{const i=this.grab;if(!i||i.id!==t.pointerId)return;this.grab=null;const s=this.dragBand;this.dragBand=null;if(i.kind!=="band"||!s)return;if(Math.abs(s.x2-s.x1)<8)return;const[e,n]=[this.indexAtX(s.x1),this.indexAtX(s.x2)].sort(((t,i)=>t-i));if(n-e>=1)this.applyZoom(e,n)};this.onPlotKeyDown=t=>{const i=Math.max(0,this.dataLength()-1);if(i<0)return;const s=typeof getComputedStyle==="function"&&getComputedStyle(this.el).direction==="rtl";const e=s?"ArrowLeft":"ArrowRight";const n=s?"ArrowRight":"ArrowLeft";let a=this.kbIndex;switch(t.key){case e:a=this.kbIndex<0?0:Math.min(i,this.kbIndex+1);break;case n:a=this.kbIndex<0?i:Math.max(0,this.kbIndex-1);break;case"Home":a=0;break;case"End":a=i;break;case"Escape":if(this.kbIndex<0)return;a=-1;break;case"Enter":case" ":if(this.kbIndex<0)return;this.mdAxisClick.emit(this.axisDetail(this.kbIndex,this.seriesValuesAt(this.kbIndex),t));t.preventDefault();return;default:return}t.preventDefault();this.moveKeyboardCursor(a)};this.onPlotBlur=()=>{if(this.kbIndex>=0)this.moveKeyboardCursor(-1)};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:i,valueEnd:s}=t.detail??{};if(i==null||s==null)return;this.applyZoom(i,s)};this.onZoomSliderEvent=t=>t.stopPropagation()}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()}onLoadingChange(t,i){if(i&&!t)this.engine?.replay()}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 c(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}}seriesKeys(){const t=new Map;return this.series.map(((i,s)=>{const e=i.id!=null?`id:${i.id}`:i.label!=null?`label:${i.label}`:`pos:${s}`;const n=t.get(e)??0;t.set(e,n+1);return n===0?e:`${e}#${n}`}))}rememberLegendToggle(t,i){const s=this.seriesKeys()[t];if(s==null)return;this.legendHidden.set(s,i);if(this.legendHidden.size>256){const t=this.legendHidden.keys().next().value;this.legendHidden.delete(t)}}get zoomInside(){return this.zoom==="inside"||this.zoom==="both"}get zoomSliderOn(){return this.zoom==="slider"||this.zoom==="both"}get merged(){const t=this.xAxis?.scale??"category";const i=this.xAxis?.data;const s=this.mergeCache;if(s&&s.series===this.series&&s.axis===i&&s.scale===t)return s.out;const e=a(this.series??[],i,t);this.mergeCache={series:this.series,axis:i,scale:t,out:e};return e}dataLength(){const t=this.merged;const i=t.data.reduce(((t,i)=>Math.max(t,i?.length??0)),0);return Math.max(i,t.xValues.length)}win(){const t=Math.max(0,this.dataLength()-1);const i=this.zoomWin;if(!i)return{start:0,end:t};const s=Math.min(Math.max(0,i.start),Math.max(0,t-1));return{start:s,end:Math.min(Math.max(s+1,i.end),t)}}applyZoom(t,i,s=false){const e=Math.max(0,this.dataLength()-1);const n=Math.min(Math.max(0,Math.round(t)),Math.max(0,e-1));const a=Math.min(Math.max(n+1,Math.round(i)),e);this.zoomWin=s?null:{start:n,end:a};this.applyEngine();this.rebuildA11yTable();this.mdZoom.emit({startIndex:s?0:n,endIndex:s?e:a,reset:s})}async setZoom(t,i){this.applyZoom(t,i)}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}canvasOffset(){const t=this.chartHost;if(!t)return{x:0,y:0};const i=this.el.getBoundingClientRect();const s=t.getBoundingClientRect();return{x:s.left-i.left,y:s.top-i.top}}zoomBandStyle(){const t=this.plotRect();if(!this.dragBand||!t)return undefined;const i=this.canvasOffset();const{x1:s,x2:e}=this.dragBand;return{left:`${i.x+Math.min(s,e)}px`,width:`${Math.abs(e-s)}px`,top:`${i.y+t.y}px`,height:`${t.height}px`}}indexAtX(t){const i=this.engine?.getScene();const s=this.win();if(!i?.xPositions?.length)return s.start;let e=0;let n=Infinity;i.xPositions.forEach(((i,s)=>{const a=Math.abs(i-t);if(a<n){n=a;e=s}}));return s.start+e}hostX(t){return t.clientX-(this.chartHost??this.el).getBoundingClientRect().left}insidePlot(t){const i=this.plotRect();if(!i)return false;const s=(this.chartHost??this.el).getBoundingClientRect();const e=t.clientX-s.left;const n=t.clientY-s.top;return e>=i.x&&e<=i.x+i.width&&n>=i.y&&n<=i.y+i.height}moveKeyboardCursor(t){this.kbIndex=t;this.engine?.focusIndex(t);if(t<0){this.announcement="";return}const i=this.merged;const s=i.xValues[t];const e=this.xAxis?.valueFormatter?this.xAxis.valueFormatter(s):d(s??t+1,this.locale);const n=t=>this.valueFormatter?this.valueFormatter(t):t.toLocaleString(this.locale||undefined);const a=this.seriesValuesAt(t).filter((t=>t.value!=null)).map((t=>`${t.label} ${n(t.value)}`)).join(", ");this.announcement=this.labelPoint.replace("%x%",e).replace("%values%",a);this.mdHover.emit({dataIndex:t,axisValue:s,seriesIndices:this.visibleSeriesIndices()})}sliderTrackRect(){const t=this.el.shadowRoot?.querySelector(".md-line-chart__zoom-slider");if(!t)return null;const i=t.getBoundingClientRect();if(!i.width)return null;return{left:i.left,width:i.width,rtl:getComputedStyle(this.el).direction==="rtl"}}trackFrac(t){const i=this.sliderTrackRect();if(!i)return null;const s=(t-i.left)/i.width;return Math.min(Math.max(i.rtl?1-s:s,0),1)}buildSpec(t){const i=this.stack==="percentage";const s=t=>this.valueFormatter?this.valueFormatter(t):t.toLocaleString(this.locale||undefined);const e=this.seriesKeys();const n=this.zoomWin?this.win():null;const a=t=>t&&n?t.slice(n.start,n.end+1):t;const r=t=>{if(!t||!n)return t;const i={};for(const[s,e]of Object.entries(t)){const t=Number(s)-n.start;if(t>=0&&t<=n.end-n.start)i[t]=e}return i};const h=this.merged;const l=this.series.map(((i,s)=>{const l=e[s];const c=this.legendHidden.get(l);const d=h.toMerged[s];const u=i.dashAfter!=null&&d?d[i.dashAfter]:i.dashAfter;if(i.hidden!==undefined)this.legendHidden.delete(l);return{label:i.label??`Series ${s+1}`,color:m(this.el,i.color,f(t.palette,s)),data:a(h.data[s])??h.data[s]??[],curve:i.curve??this.curve,connectNulls:i.connectNulls??this.connectNulls,showMarks:i.showMarks??this.showMarks,hidden:i.hidden??c??false,dash:i.dash,symbol:i.symbol,pointSymbols:r(o(i.pointSymbols,d)),yAxisIndex:i.yAxisIndex,dashAfter:u!=null&&u>=0&&n?u-n.start:u,hollow:i.hollow,stroke:i.stroke??(this.showLine?undefined:false),lineWidth:i.lineWidth??this.lineWidth,markSize:i.markSize??this.markSize}}));return{series:l,title:this.label||undefined,subtitle:this.subtitle||undefined,markLines:this.markLines?.map((t=>{const i=n!=null&&(this.xAxis?.scale??"category")==="category"&&typeof t.value==="number";const s=i?t.value-n.start:t.value;return{value:s,label:t.label,color:t.color!=null?m(this.el,t.color,t.color):undefined,dash:t.dash,offscreen:i&&(Number(s)<0||Number(s)>n.end-n.start)}})).filter((t=>!t.offscreen)).map((({offscreen:t,...i})=>i)),titleAlign:this.titleAlign,xValues:a(h.xValues)??[],xScale:this.xAxis?.scale??"category",xFormatter:this.xAxis?.valueFormatter??(t=>d(t,this.locale)),xLabel:this.xAxis?.label,xHidden:this.xAxis?.hidden,xHideTicks:this.xAxis?.hideTicks,xDash:this.xAxis?.dash,xGridDash:this.xAxis?.gridDash,xBands:u(this.el,this.xAxis?.bands),yBands:u(this.el,this.yAxis?.bands),xBreaks:this.xAxis?.breaks,yBreaks:this.yAxis?.breaks,yScale:this.yAxis?.scale??"value",yMin:i?0:this.yAxis?.min,yMax:i?100:this.yAxis?.max,yFormatter:i?t=>`${Math.round(t)}%`:s,yTickFormatter:!i&&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,yAxes:this.yAxes?.length?this.yAxes.map((t=>({scale:t.scale??"value",min:t.min,max:t.max,formatter:t.valueFormatter?i=>t.valueFormatter(i):t=>t.toLocaleString(this.locale||undefined),label:t.label,position:t.position,hidden:t.hidden,hideTicks:t.hideTicks,color:t.color!=null?m(this.el,t.color,t.color):undefined,bands:u(this.el,t.bands),dash:t.dash,gridDash:t.gridDash}))):undefined,stack:this.stack,area:this.area,legend:this.legend,gridY:this.grid==="horizontal"||this.grid==="both",gridX:this.grid==="vertical"||this.grid==="both",axisTicks:this.axisTicks,inverted:this.inverted,showLabels:this.showLabels,seriesLabels:this.seriesLabels,animation:this.noAnimation?"none":this.animation,animationDuration:this.animationDuration}}applyEngine(){if(!this.engine)return;const t=p(this.el);this.engine.setSpec(this.buildSpec(t),this.buildEngineTheme(t),{onHover:t=>{if(t<0)return;const i=t+(this.zoomWin?this.win().start:0);this.mdHover.emit({dataIndex:i,axisValue:this.merged.xValues[i],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,i,s)=>{const e=this.clickDetail(t,i,s);if(e)this.mdMarkerClick.emit(e)},onLineClick:(t,i,s)=>{const e=this.clickDetail(t,i,s);if(e)this.mdLineClick.emit(e)},onAreaClick:(t,i,s)=>{const e=this.clickDetail(t,i,s);if(e)this.mdAreaClick.emit(e)},onAxisClick:(t,i,s)=>this.mdAxisClick.emit(this.axisDetail(t,i,s))});this.engine.setHoverEnabled(this.tooltip!=="none");this.engine.setTooltip({render:this.tooltipRenderer,missingFormatter:this.valueFormatter,trigger:this.tooltip==="item"?"item":"axis"})}clickDetail(t,i,s){const e=this.series[t];if(!e)return null;const n=i+(this.zoomWin?this.win().start:0);const a=this.ownIndex(t,n);return{seriesIndex:t,seriesId:e.id,dataIndex:a>=0?a:n,value:a>=0?r(e.data[a]):null,axisValue:this.merged.xValues[n],nativeEvent:s,series:e}}ownIndex(t,i){const s=this.merged.toOwn[t];return s?s[i]??-1:i}seriesValuesAt(t){const i=this.engine?.getScene()?.hoverPoints??[];return i.map((i=>({seriesIndex:i.seriesIndex,label:i.label,value:i.byIndex[t]?.value??null})))}axisDetail(t,i,s){const e=t+(this.zoomWin?this.win().start:0);const n=i.map((t=>{const i=this.ownIndex(t.seriesIndex,e);return{seriesIndex:t.seriesIndex,seriesId:this.series[t.seriesIndex]?.id,label:t.label,dataIndex:t.value==null?-1:i,value:t.value}}));return{dataIndex:e,axisValue:this.merged.xValues[e],seriesValues:n,nativeEvent:s}}visibleSeriesIndices(){const t=this.engine?.getScene()?.hoverPoints;if(t)return t.map((t=>t.seriesIndex));const i=this.seriesKeys();return this.series.map(((t,i)=>i)).filter((t=>!(this.series[t].hidden??this.legendHidden.get(i[t])??false)))}rebuildA11yTable(){if(!this.a11yTableHost)return;const t=this.merged;this.a11yTableHost.innerHTML=h({title:this.label,xAxisLabel:this.xAxis?.label,xAxisData:t.xValues,xValueFormatter:this.xAxis?.valueFormatter??(t=>d(t,this.locale)),locale:this.locale,labels:this.tableLabels,series:this.series.map(((i,s)=>({label:i.label,data:t.data[s]??[]}))),valueFormatter:this.valueFormatter})}renderZoomSlider(){const t=Math.max(1,this.dataLength()-1);const i=this.win();const e=i=>i/t*100;const n=t=>String(this.xAxis?.data?.[t]??t);return s("div",{class:"md-line-chart__zoom",part:"zoom"},s("md-slider",{class:"md-line-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:i.start,valueEnd:i.end,ariaLabelStart:this.labelZoomStart,ariaLabelEnd:this.labelZoomEnd,valueStartText:n(i.start),valueEndText:n(i.end),onMdInput:this.onZoomSliderInput,onMdChange:this.onZoomSliderEvent,onMdDragStart:this.onZoomSliderEvent,onMdDragEnd:this.onZoomSliderEvent,onMdFocus:this.onZoomSliderEvent,onMdBlur:this.onZoomSliderEvent}),s("div",{class:"md-line-chart__zoom-pan",part:"zoom-pan",style:{insetInlineStart:`calc(${e(i.start)}% + var(--_zoom-pan-inset))`,inlineSize:`max(0px, calc(${e(i.end)-e(i.start)}% - 2 * var(--_zoom-pan-inset)))`},onPointerDown:this.onZoomPanDown}))}render(){const t=this.merged.xValues;const i=this.summary||l({title:this.label,chartType:this.area?"area":"line",seriesCount:this.series.length,xMin:t[0],xMax:t[t.length-1],locale:this.locale});const n=this.series.length===0&&!this.loading;return s(e,{key:"d9a1a408606f3561ab600a9e11978ed9f6fb5308",class:{"md-line-chart":true,"md-line-chart--empty":n,"md-line-chart--loading":this.loading,"md-line-chart--mounted":this.mounted,"md-line-chart--zoom-slider":this.zoomSliderOn,"md-line-chart--zoom-drag":this.zoomInside},role:"figure","aria-label":i,"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:"7d3982cb8d3a9a69f95554943898a214d221c734",class:"md-line-chart__header",part:"header"},s("slot",{key:"fc1a089066350f40fa9c30b1984294017cd5dbbb",name:"header"})),s("div",{key:"e4818930f4ba554326a7e7720075fcf211fe17b0",class:"md-line-chart__canvas",part:"canvas",ref:t=>this.bindChartHost(t),tabindex:n?undefined:"0",role:n?undefined:"application","aria-label":n?undefined:this.labelPlot,onKeyDown:this.onPlotKeyDown,onBlur:this.onPlotBlur}),n&&s("div",{key:"d056e1034d7cbf6a61a46256c7f271cb0343ce7b",class:"md-line-chart__empty",part:"empty"},s("slot",{key:"d3af8ff195e4973432ae6fcf683e96f70bd1ccab",name:"empty"},this.labelEmpty)),this.loading&&s("div",{key:"3b26dd9069ebf17abd58d1c77e14828019e0a4e2",class:"md-line-chart__loading",part:"loading",role:"status"},s("slot",{key:"d36d29dafcc655bd30d7bcbac13ae6c18a594839",name:"loader"},s("slot",{key:"47153fb58d0e11132e466e724ab587caa576c263",name:"loading"},s("md-progress-indicator",{key:"60c443fa744ac9ab1ef58afad715799059009326",class:"md-line-chart__spinner",variant:"circular",indeterminate:true,label:this.loadingLabel}),s("span",{key:"505c3a377627e288969725420ac2db4b7329b57d",class:"md-line-chart__loading-text"},this.loadingLabel)))),this.dragBand&&Math.abs(this.dragBand.x2-this.dragBand.x1)>1&&s("div",{key:"8b496a56977f724f86c43167fffa3ff7d07caf75",class:"md-line-chart__zoom-band",part:"zoom-band",style:this.zoomBandStyle()}),this.zoomSliderOn&&this.renderZoomSlider(),s("footer",{key:"83a5255e217e7d74c2707d69d39b25c014ab3d1c",class:"md-line-chart__footer",part:"footer"},s("slot",{key:"9690127eb42f33b825d016f8cd85261cc62a74e7",name:"footer"})),s("div",{key:"9d31b766915dbc6031b5e2f43b69b949d45e4f44",class:"md-line-chart__a11y-table",ref:t=>this.bindA11yTableHost(t)}),s("div",{key:"2038de7cd5eca21af587cfa14a13edf08a73c750",class:"md-line-chart__live",role:"status","aria-live":"polite","aria-atomic":"true"},this.announcement))}get el(){return n(this)}static get watchers(){return{series:[{onAnyPropChange:0}],xAxis:[{onAnyPropChange:0}],yAxis:[{onAnyPropChange:0}],yAxes:[{onAnyPropChange:0}],curve:[{onAnyPropChange:0}],stack:[{onAnyPropChange:0}],area:[{onAnyPropChange:0}],showLine:[{onAnyPropChange:0}],legend:[{onAnyPropChange:0}],tooltip:[{onAnyPropChange:0}],grid:[{onAnyPropChange:0}],axisTicks:[{onAnyPropChange:0}],inverted:[{onAnyPropChange:0}],showLabels:[{onAnyPropChange:0}],seriesLabels:[{onAnyPropChange:0}],connectNulls:[{onAnyPropChange:0}],showMarks:[{onAnyPropChange:0}],lineWidth:[{onAnyPropChange:0}],markSize:[{onAnyPropChange:0}],label:[{onAnyPropChange:0}],subtitle:[{onAnyPropChange:0}],markLines:[{onAnyPropChange:0}],titleAlign:[{onAnyPropChange:0}],animation:[{onAnyPropChange:0}],animationDuration:[{onAnyPropChange:0}],tooltipRenderer:[{onAnyPropChange:0}],valueFormatter:[{onAnyPropChange:0}],loading:[{onLoadingChange:0}]}}};b.style=y();export{b as md_line_chart};
2
+ //# sourceMappingURL=p-7f53a423.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as e,c as r,h as t,H as a,a as i}from"./p-DTaX19_O.js";import{a as s,s as o}from"./p-BjYKc1Ge.js";const n=()=>`:host{--_link-color:var(--md-breadcrumb-item-link-color, var(--md-sys-color-on-surface-variant, #49454F));--_current-color:var(--md-breadcrumb-item-current-color, var(--md-sys-color-on-secondary-container, #1D192B));--_current-bg:var(--md-breadcrumb-item-current-bg, var(--md-sys-color-secondary-container, #E8DEF8));--_disabled-color:var(--md-breadcrumb-item-disabled-color, color-mix(in srgb, var(--md-sys-color-on-surface, #1C1B1F) 61%, transparent));--_hover-color:var(--md-breadcrumb-item-hover-color, var(--md-sys-color-primary, #6750A4));--_state-layer-color:var(--md-breadcrumb-item-state-layer-color, var(--md-sys-color-on-surface, #1C1B1F));--_gap:var(--md-breadcrumb-item-gap, calc(6px + var(--md-sys-density-scale, 0) * 1px));--_padding:var(--md-breadcrumb-item-padding, calc(8px + var(--md-sys-density-scale, 0) * 2px) max(4px, calc(12px + var(--md-sys-density-scale, 0) * 2px)));--_motion-duration:var(--md-sys-motion-spring-effects-default-duration, 200ms);--_motion-easing:var(--md-sys-motion-spring-effects-default-easing, cubic-bezier(0.34, 0.80, 0.34, 1.00));--_spring-easing:var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.90));--_spring-duration:var(--md-sys-motion-spring-spatial-fast-duration, 350ms);display:inline-flex;align-items:center;gap:var(--md-breadcrumbs-gap, var(--md-sys-spacing-gap-sm, 8px));box-sizing:border-box;font-family:var(--md-sys-typescale-label-large-font-family, Roboto, sans-serif);font-size:max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-label-large-font-weight, 500);line-height:max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-label-large-letter-spacing, 0.1px)}:host(.md-breadcrumb-item--collapsed){display:none}.md-breadcrumb-item__separator{color:var(--md-breadcrumbs-separator-color, var(--md-sys-color-on-surface-variant, #49454F));font-size:max(13px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px));user-select:none;pointer-events:none;opacity:0.7;transition:opacity var(--_motion-duration) var(--_motion-easing)}.md-breadcrumb-item__link,.md-breadcrumb-item__static{position:relative;display:inline-flex;align-items:center;gap:var(--_gap);padding:var(--_padding);border-radius:var(--md-sys-shape-corner-full, 9999px);text-decoration:none;color:var(--_link-color);font:inherit;isolation:isolate;overflow:hidden;transition:color var(--_motion-duration) var(--_motion-easing), background-color var(--_motion-duration) var(--_motion-easing), transform var(--_spring-duration) var(--_spring-easing)}.md-breadcrumb-item__state-layer{position:absolute;inset:0;border-radius:inherit;background-color:var(--_state-layer-color);opacity:0;pointer-events:none;transition:opacity var(--_motion-duration) var(--_motion-easing)}.md-breadcrumb-item__link:hover .md-breadcrumb-item__state-layer{opacity:var(--md-sys-state-hover-state-layer-opacity, 0.08)}.md-breadcrumb-item__link:focus-visible .md-breadcrumb-item__state-layer{opacity:var(--md-sys-state-focus-state-layer-opacity, 0.12)}.md-breadcrumb-item__link:active .md-breadcrumb-item__state-layer{opacity:var(--md-sys-state-pressed-state-layer-opacity, 0.12)}.md-breadcrumb-item__link:hover{color:var(--_hover-color);transform:translateX(2px)}:host([dir="rtl"]) .md-breadcrumb-item__link:hover,:host-context([dir="rtl"]) .md-breadcrumb-item__link:hover{transform:translateX(-2px)}.md-breadcrumb-item__link:focus-visible{outline:3px solid var(--md-sys-color-secondary, #625B71);outline-offset:2px}:host(.md-breadcrumb-item--current) .md-breadcrumb-item__static{background-color:var(--_current-bg);color:var(--_current-color);font-weight:600}:host(.md-breadcrumb-item--disabled) .md-breadcrumb-item__static,:host(.md-breadcrumb-item--disabled) .md-breadcrumb-item__link{color:var(--_disabled-color);pointer-events:none;cursor:not-allowed}:host(.md-breadcrumb-item--disabled) md-ripple,:host(.md-breadcrumb-item--disabled) .md-breadcrumb-item__state-layer{display:none}.md-breadcrumb-item__icon{display:inline-flex;align-items:center;justify-content:center;inline-size:18px;block-size:18px;color:currentColor;flex-shrink:0}.md-breadcrumb-item__icon .material-symbols-outlined{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');font-size:max(14px, calc(18px + var(--md-sys-density-scale, 0) * 1px));line-height:1;font-variation-settings:'FILL' 0, 'wght' 500, 'GRAD' 0, 'opsz' 24;transition:font-variation-settings var(--_spring-duration) var(--_spring-easing)}:host(.md-breadcrumb-item--current) .md-breadcrumb-item__icon .material-symbols-outlined{font-variation-settings:'FILL' 1, 'wght' 600, 'GRAD' 0, 'opsz' 24}.md-breadcrumb-item__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-inline-size:32ch;position:relative;z-index:1}.md-breadcrumb-item__icon{position:relative;z-index:1}@media (prefers-reduced-motion: reduce){.md-breadcrumb-item__link,.md-breadcrumb-item__static,.md-breadcrumb-item__icon .material-symbols-outlined,.md-breadcrumb-item__separator,.md-breadcrumb-item__state-layer{transition-duration:0.01ms !important}.md-breadcrumb-item__link:hover{transform:none}}@media (forced-colors: active){.md-breadcrumb-item__link{color:LinkText}:host(.md-breadcrumb-item--current) .md-breadcrumb-item__static{color:CanvasText;background-color:Canvas;outline:1px solid CanvasText}.md-breadcrumb-item__state-layer{display: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 d=class{constructor(t){e(this,t);this.mdSelect=r(this,"mdSelect",7);this.href="";this.target="";this.rel="";this.current=false;this.icon="";this.disabled=false;this.collapsed=false;this.itemIndex=0;this.itemTotal=0;this.density=0;this.hasSlottedIcon=false;this.hasSlottedLabel=false;this.handleAnchorClick=e=>{const r=this.mdSelect.emit(this.buildDetail(e));if(r.defaultPrevented){e.preventDefault()}}}get isCollapsed(){return this.collapsed}get isCurrent(){return this.current}componentWillLoad(){this.hasSlottedIcon=this.hasDirectSlottedChild("icon");this.hasSlottedLabel=this.hasDefaultSlotContent()}componentDidLoad(){const e=this.el.shadowRoot?.querySelector('slot[name="icon"]');e?.addEventListener("slotchange",(()=>{this.hasSlottedIcon=e.assignedElements().length>0}));const r=this.el.shadowRoot?.querySelector("slot:not([name])");r?.addEventListener("slotchange",(()=>{this.hasSlottedLabel=(r?.assignedNodes()??[]).length>0}))}getLabelText(){return(this.el.textContent??"").trim()}buildDetail(e){return{href:this.href,label:this.getLabelText(),current:this.current,itemIndex:this.itemIndex,itemTotal:this.itemTotal,originalEvent:e}}hasDirectSlottedChild(e){const r=this.el.children;for(let t=0;t<r.length;t+=1){if(r[t].getAttribute("slot")===e)return true}return false}hasDefaultSlotContent(){for(let e=0;e<this.el.childNodes.length;e+=1){const r=this.el.childNodes[e];if(r.nodeType===1){if(!r.hasAttribute("slot"))return true}else if(r.nodeType===3&&(r.textContent??"").trim()!==""){return true}}return false}renderLeadingSeparator(){if(this.itemIndex===0)return null;const e=this.el.parentElement;const r=e?.separator??"/";return t("span",{class:"md-breadcrumb-item__separator",part:"separator","aria-hidden":"true"},r)}renderIcon(){if(this.hasSlottedIcon){return t("span",{class:"md-breadcrumb-item__icon",part:"icon","aria-hidden":"true"},t("slot",{name:"icon"}))}if(this.icon){return t("span",{class:"md-breadcrumb-item__icon",part:"icon","aria-hidden":"true"},t("span",{class:"material-symbols-outlined"},this.icon))}return null}renderLabel(){return t("span",{class:"md-breadcrumb-item__label",part:"label"},t("slot",null))}renderInner(){const e=this.renderIcon();const r=this.renderLabel();if(this.isCurrent||!this.href||this.disabled){return t("span",{class:"md-breadcrumb-item__static",part:"static","aria-current":this.isCurrent?"page":undefined},e,r)}return t("a",{class:"md-breadcrumb-item__link",part:"link",href:o(this.href),target:this.target||undefined,rel:this.rel||(this.target?s:undefined),onClick:this.handleAnchorClick},t("md-ripple",{disabled:this.disabled}),t("span",{class:"md-breadcrumb-item__state-layer",part:"state-layer","aria-hidden":"true"}),e,r)}render(){if(this.isCollapsed){return t(a,{class:"md-breadcrumb-item md-breadcrumb-item--collapsed",role:"listitem","aria-hidden":"true"})}return t(a,{class:{"md-breadcrumb-item":true,"md-breadcrumb-item--current":this.isCurrent,"md-breadcrumb-item--disabled":this.disabled},role:"listitem"},this.renderLeadingSeparator(),this.renderInner())}get el(){return i(this)}};d.style=n();export{d as md_breadcrumb_item};
2
- //# sourceMappingURL=p-b0431a5c.entry.js.map
1
+ import{r as e,c as r,h as t,H as a,g as i}from"./p-WmvQpZnM.js";import{a as s,s as o}from"./p-BjYKc1Ge.js";const n=()=>`:host{--_link-color:var(--md-breadcrumb-item-link-color, var(--md-sys-color-on-surface-variant, #49454F));--_current-color:var(--md-breadcrumb-item-current-color, var(--md-sys-color-on-secondary-container, #1D192B));--_current-bg:var(--md-breadcrumb-item-current-bg, var(--md-sys-color-secondary-container, #E8DEF8));--_disabled-color:var(--md-breadcrumb-item-disabled-color, color-mix(in srgb, var(--md-sys-color-on-surface, #1C1B1F) 61%, transparent));--_hover-color:var(--md-breadcrumb-item-hover-color, var(--md-sys-color-primary, #6750A4));--_state-layer-color:var(--md-breadcrumb-item-state-layer-color, var(--md-sys-color-on-surface, #1C1B1F));--_gap:var(--md-breadcrumb-item-gap, calc(6px + var(--md-sys-density-scale, 0) * 1px));--_padding:var(--md-breadcrumb-item-padding, calc(8px + var(--md-sys-density-scale, 0) * 2px) max(4px, calc(12px + var(--md-sys-density-scale, 0) * 2px)));--_motion-duration:var(--md-sys-motion-spring-effects-default-duration, 200ms);--_motion-easing:var(--md-sys-motion-spring-effects-default-easing, cubic-bezier(0.34, 0.80, 0.34, 1.00));--_spring-easing:var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.90));--_spring-duration:var(--md-sys-motion-spring-spatial-fast-duration, 350ms);display:inline-flex;align-items:center;gap:var(--md-breadcrumbs-gap, var(--md-sys-spacing-gap-sm, 8px));box-sizing:border-box;font-family:var(--md-sys-typescale-label-large-font-family, Roboto, sans-serif);font-size:max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-label-large-font-weight, 500);line-height:max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-label-large-letter-spacing, 0.1px)}:host(.md-breadcrumb-item--collapsed){display:none}.md-breadcrumb-item__separator{color:var(--md-breadcrumbs-separator-color, var(--md-sys-color-on-surface-variant, #49454F));font-size:max(13px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px));user-select:none;pointer-events:none;opacity:0.7;transition:opacity var(--_motion-duration) var(--_motion-easing)}.md-breadcrumb-item__link,.md-breadcrumb-item__static{position:relative;display:inline-flex;align-items:center;gap:var(--_gap);padding:var(--_padding);border-radius:var(--md-sys-shape-corner-full, 9999px);text-decoration:none;color:var(--_link-color);font:inherit;isolation:isolate;overflow:hidden;transition:color var(--_motion-duration) var(--_motion-easing), background-color var(--_motion-duration) var(--_motion-easing), transform var(--_spring-duration) var(--_spring-easing)}.md-breadcrumb-item__state-layer{position:absolute;inset:0;border-radius:inherit;background-color:var(--_state-layer-color);opacity:0;pointer-events:none;transition:opacity var(--_motion-duration) var(--_motion-easing)}.md-breadcrumb-item__link:hover .md-breadcrumb-item__state-layer{opacity:var(--md-sys-state-hover-state-layer-opacity, 0.08)}.md-breadcrumb-item__link:focus-visible .md-breadcrumb-item__state-layer{opacity:var(--md-sys-state-focus-state-layer-opacity, 0.12)}.md-breadcrumb-item__link:active .md-breadcrumb-item__state-layer{opacity:var(--md-sys-state-pressed-state-layer-opacity, 0.12)}.md-breadcrumb-item__link:hover{color:var(--_hover-color);transform:translateX(2px)}:host([dir="rtl"]) .md-breadcrumb-item__link:hover,:host-context([dir="rtl"]) .md-breadcrumb-item__link:hover{transform:translateX(-2px)}.md-breadcrumb-item__link:focus-visible{outline:3px solid var(--md-sys-color-secondary, #625B71);outline-offset:2px}:host(.md-breadcrumb-item--current) .md-breadcrumb-item__static{background-color:var(--_current-bg);color:var(--_current-color);font-weight:600}:host(.md-breadcrumb-item--disabled) .md-breadcrumb-item__static,:host(.md-breadcrumb-item--disabled) .md-breadcrumb-item__link{color:var(--_disabled-color);pointer-events:none;cursor:not-allowed}:host(.md-breadcrumb-item--disabled) md-ripple,:host(.md-breadcrumb-item--disabled) .md-breadcrumb-item__state-layer{display:none}.md-breadcrumb-item__icon{display:inline-flex;align-items:center;justify-content:center;inline-size:18px;block-size:18px;color:currentColor;flex-shrink:0}.md-breadcrumb-item__icon .material-symbols-outlined{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');font-size:max(14px, calc(18px + var(--md-sys-density-scale, 0) * 1px));line-height:1;font-variation-settings:'FILL' 0, 'wght' 500, 'GRAD' 0, 'opsz' 24;transition:font-variation-settings var(--_spring-duration) var(--_spring-easing)}:host(.md-breadcrumb-item--current) .md-breadcrumb-item__icon .material-symbols-outlined{font-variation-settings:'FILL' 1, 'wght' 600, 'GRAD' 0, 'opsz' 24}.md-breadcrumb-item__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-inline-size:32ch;position:relative;z-index:1}.md-breadcrumb-item__icon{position:relative;z-index:1}@media (prefers-reduced-motion: reduce){.md-breadcrumb-item__link,.md-breadcrumb-item__static,.md-breadcrumb-item__icon .material-symbols-outlined,.md-breadcrumb-item__separator,.md-breadcrumb-item__state-layer{transition-duration:0.01ms !important}.md-breadcrumb-item__link:hover{transform:none}}@media (forced-colors: active){.md-breadcrumb-item__link{color:LinkText}:host(.md-breadcrumb-item--current) .md-breadcrumb-item__static{color:CanvasText;background-color:Canvas;outline:1px solid CanvasText}.md-breadcrumb-item__state-layer{display: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 d=class{constructor(t){e(this,t);this.mdSelect=r(this,"mdSelect",7);this.href="";this.target="";this.rel="";this.current=false;this.icon="";this.disabled=false;this.collapsed=false;this.itemIndex=0;this.itemTotal=0;this.density=0;this.hasSlottedIcon=false;this.hasSlottedLabel=false;this.handleAnchorClick=e=>{const r=this.mdSelect.emit(this.buildDetail(e));if(r.defaultPrevented){e.preventDefault()}}}get isCollapsed(){return this.collapsed}get isCurrent(){return this.current}componentWillLoad(){this.hasSlottedIcon=this.hasDirectSlottedChild("icon");this.hasSlottedLabel=this.hasDefaultSlotContent()}componentDidLoad(){const e=this.el.shadowRoot?.querySelector('slot[name="icon"]');e?.addEventListener("slotchange",(()=>{this.hasSlottedIcon=e.assignedElements().length>0}));const r=this.el.shadowRoot?.querySelector("slot:not([name])");r?.addEventListener("slotchange",(()=>{this.hasSlottedLabel=(r?.assignedNodes()??[]).length>0}))}getLabelText(){return(this.el.textContent??"").trim()}buildDetail(e){return{href:this.href,label:this.getLabelText(),current:this.current,itemIndex:this.itemIndex,itemTotal:this.itemTotal,originalEvent:e}}hasDirectSlottedChild(e){const r=this.el.children;for(let t=0;t<r.length;t+=1){if(r[t].getAttribute("slot")===e)return true}return false}hasDefaultSlotContent(){for(let e=0;e<this.el.childNodes.length;e+=1){const r=this.el.childNodes[e];if(r.nodeType===1){if(!r.hasAttribute("slot"))return true}else if(r.nodeType===3&&(r.textContent??"").trim()!==""){return true}}return false}renderLeadingSeparator(){if(this.itemIndex===0)return null;const e=this.el.parentElement;const r=e?.separator??"/";return t("span",{class:"md-breadcrumb-item__separator",part:"separator","aria-hidden":"true"},r)}renderIcon(){if(this.hasSlottedIcon){return t("span",{class:"md-breadcrumb-item__icon",part:"icon","aria-hidden":"true"},t("slot",{name:"icon"}))}if(this.icon){return t("span",{class:"md-breadcrumb-item__icon",part:"icon","aria-hidden":"true"},t("span",{class:"material-symbols-outlined"},this.icon))}return null}renderLabel(){return t("span",{class:"md-breadcrumb-item__label",part:"label"},t("slot",null))}renderInner(){const e=this.renderIcon();const r=this.renderLabel();if(this.isCurrent||!this.href||this.disabled){return t("span",{class:"md-breadcrumb-item__static",part:"static","aria-current":this.isCurrent?"page":undefined},e,r)}return t("a",{class:"md-breadcrumb-item__link",part:"link",href:o(this.href),target:this.target||undefined,rel:this.rel||(this.target?s:undefined),onClick:this.handleAnchorClick},t("md-ripple",{disabled:this.disabled}),t("span",{class:"md-breadcrumb-item__state-layer",part:"state-layer","aria-hidden":"true"}),e,r)}render(){if(this.isCollapsed){return t(a,{class:"md-breadcrumb-item md-breadcrumb-item--collapsed",role:"listitem","aria-hidden":"true"})}return t(a,{class:{"md-breadcrumb-item":true,"md-breadcrumb-item--current":this.isCurrent,"md-breadcrumb-item--disabled":this.disabled},role:"listitem"},this.renderLeadingSeparator(),this.renderInner())}get el(){return i(this)}};d.style=n();export{d as md_breadcrumb_item};
2
+ //# sourceMappingURL=p-8135c606.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as e,h as t,H as r,a as s}from"./p-DTaX19_O.js";const a=()=>`:host{--_c-main:var(--md-sys-color-primary, #6750A4);--_c-container:var(--md-sys-color-secondary-container, #E8DEF8);--_indicator-color:var(--md-meter-indicator-color, var(--_c-main));--_track-color:var(--md-meter-track-color, var(--_c-container));--_track-shape:var(--md-meter-track-shape, var(--md-sys-shape-corner-full, 9999px));--_thickness:var(--md-meter-height, max(2px, calc(4px + var(--md-sys-density-scale, 0) * 0.5px)));--_size:var(--md-meter-size, max(24px, calc(48px + var(--md-sys-density-scale, 0) * 2px)));--_label-color:var(--md-meter-label-color, var(--md-sys-color-on-surface, #1C1B1F));--_value-color:var(--md-meter-value-color, var(--md-sys-color-on-surface-variant, #49454F));display:block;inline-size:100%;box-sizing:border-box}.md-meter__header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--md-sys-spacing-gap-sm, 8px);margin-block-end:max(2px, calc(4px + var(--md-sys-density-scale, 0) * 0.5px))}.md-meter__label{font-family:var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif);font-size:max(11px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-body-medium-font-weight, 400);line-height:max(14px, calc(20px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-body-medium-letter-spacing, 0.25px);color:var(--_label-color);min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-meter__value{font-family:var(--md-sys-typescale-label-medium-font-family, Roboto, sans-serif);font-size:max(10px, calc(12px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-label-medium-font-weight, 500);line-height:max(12px, calc(16px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-label-medium-letter-spacing, 0.5px);color:var(--_value-color);flex:none;font-variant-numeric:tabular-nums}.md-meter__track{position:relative;block-size:var(--_thickness);border-radius:var(--_track-shape);background-color:var(--_track-color);overflow:hidden}.md-meter__indicator{position:absolute;inset-inline-start:0;inset-block:0;inline-size:var(--_fill-pct, 0%);background-color:var(--_indicator-color);border-radius:inherit;transition:inline-size var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host([variant='circular']){inline-size:max-content;display:inline-flex;flex-direction:column;align-items:center;gap:max(2px, calc(4px + var(--md-sys-density-scale, 0) * 0.5px))}.md-meter__circular{position:relative;inline-size:var(--_size);block-size:var(--_size);flex:none}.md-meter__ring{inline-size:100%;block-size:100%;display:block;}.md-meter__ring-track{stroke:var(--_track-color)}.md-meter__ring-indicator{stroke:var(--_indicator-color);transition:stroke-dashoffset var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), opacity var(--md-sys-motion-duration-short4, 200ms) linear}.md-meter__center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--md-sys-typescale-label-medium-font-family, Roboto, sans-serif);font-size:calc(var(--_size) * 0.26);font-weight:var(--md-sys-typescale-label-medium-font-weight, 500);line-height:1;color:var(--_value-color);font-variant-numeric:tabular-nums;padding:calc(var(--_size) * 0.18);box-sizing:border-box;text-align:center}.md-meter__caption{font-family:var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif);font-size:max(11px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-body-medium-font-weight, 400);line-height:max(14px, calc(20px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-body-medium-letter-spacing, 0.25px);color:var(--_label-color);max-inline-size:calc(var(--_size) * 2);text-align:center}@media (prefers-reduced-motion: reduce){.md-meter__indicator,.md-meter__ring-indicator{transition:none}}@media (forced-colors: active){.md-meter__indicator{background-color:CanvasText}.md-meter__track{background-color:GrayText}.md-meter__ring-indicator{stroke:CanvasText}.md-meter__ring-track{stroke:GrayText}}: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 i=24;const n=240;const c=48;const o=class{constructor(t){e(this,t);this.value=0;this.min=0;this.max=100;this.label="";this.showLabel=false;this.showValue=false;this.valueText="";this.locale="";this.color="primary";this.variant="linear";this.size=48;this.thickness=4;this.density=0}get saneMin(){return Number.isFinite(this.min)?this.min:0}get saneMax(){const e=Number.isFinite(this.max)?this.max:100;return Math.max(e,this.saneMin)}get clampedValue(){const e=Number.isFinite(this.value)?this.value:this.saneMin;return Math.min(this.saneMax,Math.max(this.saneMin,e))}get percentage(){const e=this.saneMin;const t=this.saneMax;if(t===e)return 0;return(this.clampedValue-e)/(t-e)*100}get formattedValue(){if(this.valueText)return this.valueText;const e=this.clampedValue;try{if(this.formatOptions){return new Intl.NumberFormat(this.locale||undefined,this.formatOptions).format(e)}return new Intl.NumberFormat(this.locale||undefined,{style:"percent"}).format(this.percentage/100)}catch{return`${e}`}}get colorVars(){const e=this.color;if(!e||e==="primary"||!/^[a-z][a-z0-9-]*$/i.test(e))return undefined;return{"--_c-main":`var(--md-sys-color-${e}, var(--md-sys-color-primary))`,"--_c-container":`var(--md-sys-color-${e}-container, var(--md-sys-color-secondary-container))`}}get thicknessVar(){const e=Number(this.thickness);if(!Number.isFinite(e)||e===4)return undefined;return{"--_thickness":`var(--md-meter-height, max(2px, calc(${e}px + var(--md-sys-density-scale, 0) * 0.5px)))`}}get resolvedSize(){const e=Number.isFinite(this.size)&&this.size>0?this.size:c;return Math.min(n,Math.max(i,e))}get ringThickness(){const e=Number(this.thickness);return Number.isFinite(e)&&e>0?e:4}get ringRadius(){return Math.max(.5,(this.resolvedSize-this.ringThickness)/2)}get sizeVar(){if(this.variant!=="circular")return undefined;const e=this.resolvedSize;if(e===c)return undefined;return{"--_size":`var(--md-meter-size, max(24px, calc(${e}px + var(--md-sys-density-scale, 0) * 2px)))`}}get hostStyle(){const e={...this.colorVars??{},...this.thicknessVar??{},...this.sizeVar??{}};return Object.keys(e).length?e:undefined}renderCircular(e){const r=this.resolvedSize;const s=this.ringThickness;const a=this.ringRadius;const i=r/2;const n=this.percentage/100;return[t("div",{class:"md-meter__circular",part:"circular"},t("svg",{class:"md-meter__ring",viewBox:`0 0 ${r} ${r}`,"aria-hidden":"true"},t("circle",{class:"md-meter__ring-track",part:"track",cx:i,cy:i,r:a,"stroke-width":s,fill:"none"}),t("circle",{class:"md-meter__ring-indicator",part:"indicator",cx:i,cy:i,r:a,"stroke-width":s,fill:"none",pathLength:1,"stroke-dasharray":"1 1","stroke-dashoffset":1-n,"stroke-linecap":"round",transform:`rotate(-90 ${i} ${i})`,style:{opacity:n>0?"1":"0"}})),this.showValue&&t("span",{class:"md-meter__center",part:"value","aria-hidden":"true"},e)),this.showLabel&&t("span",{class:"md-meter__caption",part:"label","aria-hidden":"true"},this.label)]}render(){const e=this.variant==="circular";const s=!e&&(this.showLabel||this.showValue);const a=this.formattedValue;return t(r,{key:"cf2f9f9a168138daae1efb9617a3fc585f7f6b88",class:{"md-meter":true,"md-meter--with-header":s,"md-meter--circular":e},role:"meter","aria-label":this.label||undefined,"aria-valuemin":String(this.saneMin),"aria-valuemax":String(this.saneMax),"aria-valuenow":String(this.clampedValue),"aria-valuetext":a,style:this.hostStyle},e&&this.renderCircular(a),s&&t("div",{key:"bf4bcc8d85eb41f11d8ac478680c7f45d3215f06",class:"md-meter__header","aria-hidden":"true"},this.showLabel&&t("span",{key:"1f6ec758a643a124f71dd97025b9414269138d5f",class:"md-meter__label",part:"label"},this.label),this.showValue&&t("span",{key:"2d5c8ceb7f6aa401c28dbbcf7542c6d9cec3a1b3",class:"md-meter__value",part:"value"},a)),!e&&t("div",{key:"f1c02c7ad24a0b2c1095ec0a18bfb3c1f00245e8",class:"md-meter__track",part:"track","aria-hidden":"true"},t("div",{key:"5c66b17dbdd5fba9c78e52d533cf38817f7b4a31",class:"md-meter__indicator",part:"indicator",style:{"--_fill-pct":`${this.percentage}%`}})))}get el(){return s(this)}};o.style=a();export{o as md_meter};
2
- //# sourceMappingURL=p-4dda4cb0.entry.js.map
1
+ import{r as e,h as t,H as r,g as s}from"./p-WmvQpZnM.js";const a=()=>`:host{--_c-main:var(--md-sys-color-primary, #6750A4);--_c-container:var(--md-sys-color-secondary-container, #E8DEF8);--_indicator-color:var(--md-meter-indicator-color, var(--_c-main));--_track-color:var(--md-meter-track-color, var(--_c-container));--_track-shape:var(--md-meter-track-shape, var(--md-sys-shape-corner-full, 9999px));--_thickness:var(--md-meter-height, max(2px, calc(4px + var(--md-sys-density-scale, 0) * 0.5px)));--_size:var(--md-meter-size, max(24px, calc(48px + var(--md-sys-density-scale, 0) * 2px)));--_label-color:var(--md-meter-label-color, var(--md-sys-color-on-surface, #1C1B1F));--_value-color:var(--md-meter-value-color, var(--md-sys-color-on-surface-variant, #49454F));display:block;inline-size:100%;box-sizing:border-box}.md-meter__header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--md-sys-spacing-gap-sm, 8px);margin-block-end:max(2px, calc(4px + var(--md-sys-density-scale, 0) * 0.5px))}.md-meter__label{font-family:var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif);font-size:max(11px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-body-medium-font-weight, 400);line-height:max(14px, calc(20px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-body-medium-letter-spacing, 0.25px);color:var(--_label-color);min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-meter__value{font-family:var(--md-sys-typescale-label-medium-font-family, Roboto, sans-serif);font-size:max(10px, calc(12px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-label-medium-font-weight, 500);line-height:max(12px, calc(16px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-label-medium-letter-spacing, 0.5px);color:var(--_value-color);flex:none;font-variant-numeric:tabular-nums}.md-meter__track{position:relative;block-size:var(--_thickness);border-radius:var(--_track-shape);background-color:var(--_track-color);overflow:hidden}.md-meter__indicator{position:absolute;inset-inline-start:0;inset-block:0;inline-size:var(--_fill-pct, 0%);background-color:var(--_indicator-color);border-radius:inherit;transition:inline-size var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host([variant='circular']){inline-size:max-content;display:inline-flex;flex-direction:column;align-items:center;gap:max(2px, calc(4px + var(--md-sys-density-scale, 0) * 0.5px))}.md-meter__circular{position:relative;inline-size:var(--_size);block-size:var(--_size);flex:none}.md-meter__ring{inline-size:100%;block-size:100%;display:block;}.md-meter__ring-track{stroke:var(--_track-color)}.md-meter__ring-indicator{stroke:var(--_indicator-color);transition:stroke-dashoffset var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), opacity var(--md-sys-motion-duration-short4, 200ms) linear}.md-meter__center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--md-sys-typescale-label-medium-font-family, Roboto, sans-serif);font-size:calc(var(--_size) * 0.26);font-weight:var(--md-sys-typescale-label-medium-font-weight, 500);line-height:1;color:var(--_value-color);font-variant-numeric:tabular-nums;padding:calc(var(--_size) * 0.18);box-sizing:border-box;text-align:center}.md-meter__caption{font-family:var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif);font-size:max(11px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-body-medium-font-weight, 400);line-height:max(14px, calc(20px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-body-medium-letter-spacing, 0.25px);color:var(--_label-color);max-inline-size:calc(var(--_size) * 2);text-align:center}@media (prefers-reduced-motion: reduce){.md-meter__indicator,.md-meter__ring-indicator{transition:none}}@media (forced-colors: active){.md-meter__indicator{background-color:CanvasText}.md-meter__track{background-color:GrayText}.md-meter__ring-indicator{stroke:CanvasText}.md-meter__ring-track{stroke:GrayText}}: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 i=24;const n=240;const c=48;const o=class{constructor(t){e(this,t);this.value=0;this.min=0;this.max=100;this.label="";this.showLabel=false;this.showValue=false;this.valueText="";this.locale="";this.color="primary";this.variant="linear";this.size=48;this.thickness=4;this.density=0}get saneMin(){return Number.isFinite(this.min)?this.min:0}get saneMax(){const e=Number.isFinite(this.max)?this.max:100;return Math.max(e,this.saneMin)}get clampedValue(){const e=Number.isFinite(this.value)?this.value:this.saneMin;return Math.min(this.saneMax,Math.max(this.saneMin,e))}get percentage(){const e=this.saneMin;const t=this.saneMax;if(t===e)return 0;return(this.clampedValue-e)/(t-e)*100}get formattedValue(){if(this.valueText)return this.valueText;const e=this.clampedValue;try{if(this.formatOptions){return new Intl.NumberFormat(this.locale||undefined,this.formatOptions).format(e)}return new Intl.NumberFormat(this.locale||undefined,{style:"percent"}).format(this.percentage/100)}catch{return`${e}`}}get colorVars(){const e=this.color;if(!e||e==="primary"||!/^[a-z][a-z0-9-]*$/i.test(e))return undefined;return{"--_c-main":`var(--md-sys-color-${e}, var(--md-sys-color-primary))`,"--_c-container":`var(--md-sys-color-${e}-container, var(--md-sys-color-secondary-container))`}}get thicknessVar(){const e=Number(this.thickness);if(!Number.isFinite(e)||e===4)return undefined;return{"--_thickness":`var(--md-meter-height, max(2px, calc(${e}px + var(--md-sys-density-scale, 0) * 0.5px)))`}}get resolvedSize(){const e=Number.isFinite(this.size)&&this.size>0?this.size:c;return Math.min(n,Math.max(i,e))}get ringThickness(){const e=Number(this.thickness);return Number.isFinite(e)&&e>0?e:4}get ringRadius(){return Math.max(.5,(this.resolvedSize-this.ringThickness)/2)}get sizeVar(){if(this.variant!=="circular")return undefined;const e=this.resolvedSize;if(e===c)return undefined;return{"--_size":`var(--md-meter-size, max(24px, calc(${e}px + var(--md-sys-density-scale, 0) * 2px)))`}}get hostStyle(){const e={...this.colorVars??{},...this.thicknessVar??{},...this.sizeVar??{}};return Object.keys(e).length?e:undefined}renderCircular(e){const r=this.resolvedSize;const s=this.ringThickness;const a=this.ringRadius;const i=r/2;const n=this.percentage/100;return[t("div",{class:"md-meter__circular",part:"circular"},t("svg",{class:"md-meter__ring",viewBox:`0 0 ${r} ${r}`,"aria-hidden":"true"},t("circle",{class:"md-meter__ring-track",part:"track",cx:i,cy:i,r:a,"stroke-width":s,fill:"none"}),t("circle",{class:"md-meter__ring-indicator",part:"indicator",cx:i,cy:i,r:a,"stroke-width":s,fill:"none",pathLength:1,"stroke-dasharray":"1 1","stroke-dashoffset":1-n,"stroke-linecap":"round",transform:`rotate(-90 ${i} ${i})`,style:{opacity:n>0?"1":"0"}})),this.showValue&&t("span",{class:"md-meter__center",part:"value","aria-hidden":"true"},e)),this.showLabel&&t("span",{class:"md-meter__caption",part:"label","aria-hidden":"true"},this.label)]}render(){const e=this.variant==="circular";const s=!e&&(this.showLabel||this.showValue);const a=this.formattedValue;return t(r,{key:"cf2f9f9a168138daae1efb9617a3fc585f7f6b88",class:{"md-meter":true,"md-meter--with-header":s,"md-meter--circular":e},role:"meter","aria-label":this.label||undefined,"aria-valuemin":String(this.saneMin),"aria-valuemax":String(this.saneMax),"aria-valuenow":String(this.clampedValue),"aria-valuetext":a,style:this.hostStyle},e&&this.renderCircular(a),s&&t("div",{key:"bf4bcc8d85eb41f11d8ac478680c7f45d3215f06",class:"md-meter__header","aria-hidden":"true"},this.showLabel&&t("span",{key:"1f6ec758a643a124f71dd97025b9414269138d5f",class:"md-meter__label",part:"label"},this.label),this.showValue&&t("span",{key:"2d5c8ceb7f6aa401c28dbbcf7542c6d9cec3a1b3",class:"md-meter__value",part:"value"},a)),!e&&t("div",{key:"f1c02c7ad24a0b2c1095ec0a18bfb3c1f00245e8",class:"md-meter__track",part:"track","aria-hidden":"true"},t("div",{key:"5c66b17dbdd5fba9c78e52d533cf38817f7b4a31",class:"md-meter__indicator",part:"indicator",style:{"--_fill-pct":`${this.percentage}%`}})))}get el(){return s(this)}};o.style=a();export{o as md_meter};
2
+ //# sourceMappingURL=p-845ca9cc.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as e,c as s,h as t,H as i,a as d}from"./p-DTaX19_O.js";const a=()=>`:host{--_container-color:var(--md-side-sheet-container-color, var(--md-sys-color-surface, #FFFBFE));--_container-shape:var(--md-side-sheet-container-shape, 0px);--_headline-color:var(--md-side-sheet-headline-color, var(--md-sys-color-on-surface-variant, #49454F));--_content-color:var(--md-side-sheet-content-color, var(--md-sys-color-on-surface, #1C1B1F));--_scrim-color:var(--md-side-sheet-scrim-color, rgba(0, 0, 0, 0.32));--_divider-color:var(--md-side-sheet-divider-color, var(--md-sys-color-outline-variant, #CAC4D0));--_width:var(--md-side-sheet-width, max(280px, calc(360px + var(--md-sys-density-scale, 0) * 16px)));--_max-width:var(--md-side-sheet-max-width, max(320px, calc(400px + var(--md-sys-density-scale, 0) * 16px)));--_icon-color:var(--md-side-sheet-icon-color, var(--md-sys-color-on-surface-variant, #49454F));display:block;position:relative;box-sizing:border-box}:host(.md-side-sheet--standard){inline-size:min(var(--_width), 100%);max-inline-size:min(var(--_max-width), 100%);block-size:100%}:host(.md-side-sheet--standard:not(.md-side-sheet--open)){display:none}:host(.md-side-sheet--standard) .md-side-sheet__container{position:relative;inline-size:100%;block-size:100%;background-color:var(--_container-color);color:var(--_content-color);display:flex;flex-direction:column;overflow:hidden}:host(.md-side-sheet--standard.md-side-sheet--end) .md-side-sheet__container{border-inline-start:1px solid var(--_divider-color)}:host(.md-side-sheet--standard.md-side-sheet--start) .md-side-sheet__container{border-inline-end:1px solid var(--_divider-color)}:host(.md-side-sheet--modal){display:contents}:host(.md-side-sheet--modal:not(.md-side-sheet--open)){display:contents;pointer-events:none}.md-side-sheet__scrim{position:fixed;inset:0;background-color:var(--_scrim-color);z-index:var(--md-sys-z-index-popup, 1000);opacity:0;pointer-events:none;transition:opacity var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-side-sheet--modal.md-side-sheet--open) .md-side-sheet__scrim{opacity:1;pointer-events:auto}:host(.md-side-sheet--modal) .md-side-sheet__container{position:fixed;inset-block:0;z-index:var(--md-sys-z-index-dialog-scrim, 1001);inline-size:min(var(--_width), 100%);max-inline-size:min(var(--_max-width), 100%);background-color:var(--md-sys-color-surface-container-low, #F7F2FA);color:var(--_content-color);display:flex;flex-direction:column;overflow:hidden;pointer-events:none;opacity:0;box-shadow:var(--md-sys-elevation-1);transition:transform var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)), opacity var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-side-sheet--modal.md-side-sheet--end) .md-side-sheet__container{inset-inline-end:0;inset-inline-start:auto;transform:translateX(100%)}:host(.md-side-sheet--modal.md-side-sheet--start) .md-side-sheet__container{inset-inline-start:0;inset-inline-end:auto;transform:translateX(-100%)}:host(.md-side-sheet--modal.md-side-sheet--open) .md-side-sheet__container{pointer-events:auto;transform:translateX(0);opacity:1}:host-context([dir="rtl"]):host(.md-side-sheet--modal.md-side-sheet--end) .md-side-sheet__container,:host([dir="rtl"].md-side-sheet--modal.md-side-sheet--end) .md-side-sheet__container{transform:translateX(-100%)}:host-context([dir="rtl"]):host(.md-side-sheet--modal.md-side-sheet--start) .md-side-sheet__container,:host([dir="rtl"].md-side-sheet--modal.md-side-sheet--start) .md-side-sheet__container{transform:translateX(100%)}:host-context([dir="rtl"]):host(.md-side-sheet--modal.md-side-sheet--open) .md-side-sheet__container,:host([dir="rtl"].md-side-sheet--modal.md-side-sheet--open) .md-side-sheet__container{transform:translateX(0)}:host(.md-side-sheet--detached) .md-side-sheet__container{--_container-shape:var(--md-side-sheet-container-shape, var(--md-sys-shape-corner-large, 16px));border-radius:var(--_container-shape)}:host(.md-side-sheet--modal.md-side-sheet--detached) .md-side-sheet__container{inset-block:max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px));block-size:calc(100% - max(16px, calc(32px + var(--md-sys-density-scale, 0) * 4px)));box-shadow:var(--md-sys-elevation-3)}:host(.md-side-sheet--modal.md-side-sheet--detached.md-side-sheet--end) .md-side-sheet__container{inset-inline-end:16px}:host(.md-side-sheet--modal.md-side-sheet--detached.md-side-sheet--start) .md-side-sheet__container{inset-inline-start:16px}:host(.md-side-sheet--standard.md-side-sheet--detached) .md-side-sheet__container{border:none;margin:16px;block-size:calc(100% - 32px);box-shadow:var(--md-sys-elevation-1)}.md-side-sheet__header{display:flex;align-items:center;gap:max(4px, calc(12px + var(--md-sys-density-scale, 0) * 2px));padding-inline:max(12px, calc(24px + var(--md-sys-density-scale, 0) * 2px));padding-block:max(12px, calc(24px + var(--md-sys-density-scale, 0) * 2px)) max(8px, calc(12px + var(--md-sys-density-scale, 0) * 1px));flex-shrink:0}.md-side-sheet__back{flex-shrink:0;margin-inline-start:calc(-12px - var(--md-sys-density-scale, 0) * 1px)}.md-side-sheet__headline{flex:1;font-family:var(--md-sys-typescale-title-large-font-family, Roboto, sans-serif);font-size:max(16px, calc(22px + var(--md-sys-density-scale, 0) * 1px));font-weight:var(--md-sys-typescale-title-large-font-weight, 400);line-height:max(22px, calc(28px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-title-large-letter-spacing, 0px);color:var(--_headline-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-side-sheet__close{flex-shrink:0;margin-inline-end:calc(-12px - var(--md-sys-density-scale, 0) * 1px)}.md-side-sheet__close md-icon-button,.md-side-sheet__back md-icon-button{--md-icon-button-icon-color:var(--_icon-color);--md-icon-button-container-width:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-container-height:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px))}.md-side-sheet__divider{block-size:1px;background-color:var(--_divider-color);flex-shrink:0}.md-side-sheet__content{flex:1;min-block-size:0;overflow-y:scroll;padding-inline:max(12px, calc(24px + var(--md-sys-density-scale, 0) * 2px));padding-block:max(8px, calc(12px + var(--md-sys-density-scale, 0) * 1px));font-family:var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif);font-size:max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-body-medium-font-weight, 400);line-height:max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-body-medium-letter-spacing, 0.25px);color:var(--_content-color);scrollbar-width:thin;scrollbar-color:var(--md-sys-color-outline-variant, #CAC4D0) transparent}.md-side-sheet__content::-webkit-scrollbar{inline-size:8px}.md-side-sheet__content::-webkit-scrollbar-thumb{background-color:var(--md-sys-color-outline-variant, #CAC4D0);border-radius:4px}.md-side-sheet__content::-webkit-scrollbar-track{background-color:transparent}.md-side-sheet__actions{display:flex;align-items:center;justify-content:flex-start;gap:max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px));min-block-size:max(40px, calc(72px + var(--md-sys-density-scale, 0) * 4px));box-sizing:border-box;padding-inline:max(12px, calc(24px + var(--md-sys-density-scale, 0) * 2px));padding-block:max(6px, calc(12px + var(--md-sys-density-scale, 0) * 1px));flex-shrink:0;margin-block-start:auto}::slotted([slot="back"]){color:var(--_icon-color);--md-icon-button-container-width:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-container-height:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px))}::slotted([slot="close"]){color:var(--_icon-color);--md-icon-button-container-width:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-container-height:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px))}.md-side-sheet__focus-guard{position:fixed;overflow:hidden;clip-path:inset(50%);inline-size:1px;block-size:1px;padding:0;border:0;margin:-1px;white-space:nowrap}@media (prefers-reduced-motion: reduce){.md-side-sheet__scrim,:host(.md-side-sheet--modal) .md-side-sheet__container{transition:none}}@media (forced-colors: active){.md-side-sheet__container{border:2px solid CanvasText}.md-side-sheet__divider{background-color:CanvasText}}: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.mdOpen=s(this,"mdOpen",7);this.mdClose=s(this,"mdClose",7);this.mdCancel=s(this,"mdCancel",7);this.mdBack=s(this,"mdBack",7);this.open=false;this.variant="standard";this.side="end";this.headline="";this.closeable=true;this.showBack=false;this.scrimDismissible=true;this.topDivider=false;this.bottomDivider=false;this.detached=false;this.sheetAriaLabel="";this.density=0;this.hasSlottedClose=false;this.hasSlottedBack=false;this.hasActions=false;this.previousFocus=null;this.headlineId=`md-side-sheet-headline-${Math.random().toString(36).slice(2)}`;this.handleDocKeyDown=e=>{if(!this.open||this.variant!=="modal")return;if(e.key==="Escape"){e.preventDefault();e.stopPropagation();if(!this.scrimDismissible)return;this.mdCancel.emit();this.open=false}};this.handleDocFocusIn=()=>{if(!this.open||this.variant!=="modal")return;const e=document.activeElement;if(!e)return;if(e===this.el||this.el.contains(e))return;const s=this.containerEl?.contains(e);if(s)return;this.focusFirst()};this.handleStartGuardFocus=()=>{const e=this.getFocusableElements();if(e.length>0){e[e.length-1].focus()}else{this.containerEl?.focus()}};this.handleEndGuardFocus=()=>{const e=this.getFocusableElements();if(e.length>0){e[0].focus()}else{this.containerEl?.focus()}};this.handleScrimClick=()=>{if(!this.scrimDismissible)return;this.mdCancel.emit();this.open=false};this.handleCloseClick=()=>{this.mdCancel.emit();this.open=false};this.handleBackClick=()=>{this.mdBack.emit()}}connectedCallback(){this.hasActions=!!this.el.querySelector('[slot="actions"]')}componentDidLoad(){const e=this.el.shadowRoot;if(!e)return;const s=e.querySelector('slot[name="close"]');const t=e.querySelector('slot[name="back"]');const i=e.querySelector('slot[name="actions"]');s?.addEventListener("slotchange",(()=>{this.hasSlottedClose=s.assignedElements().length>0}));t?.addEventListener("slotchange",(()=>{this.hasSlottedBack=t.assignedElements().length>0}));i?.addEventListener("slotchange",(()=>{this.hasActions=i.assignedElements().length>0}));if(this.open){this.onOpenChange(true)}}disconnectedCallback(){this.removeGlobalListeners();document.body.style.overflow=""}onOpenChange(e){if(e){this.addGlobalListeners();if(this.variant==="modal"){this.previousFocus=document.activeElement;document.body.style.overflow="hidden";requestAnimationFrame((()=>{this.containerEl?.removeAttribute("inert");this.focusFirst()}))}this.mdOpen.emit()}else{this.removeGlobalListeners();if(this.variant==="modal"){document.body.style.overflow="";this.previousFocus?.focus?.({preventScroll:true});this.previousFocus=null}this.mdClose.emit()}}async show(){this.open=true}async close(){this.open=false}addGlobalListeners(){if(this.variant!=="modal")return;document.addEventListener("keydown",this.handleDocKeyDown,true);document.addEventListener("focusin",this.handleDocFocusIn)}removeGlobalListeners(){document.removeEventListener("keydown",this.handleDocKeyDown,true);document.removeEventListener("focusin",this.handleDocFocusIn)}focusFirst(){if(!this.containerEl)return;const e=this.getFocusableElements();if(e.length>0){e[0].focus()}else{this.containerEl.focus()}}getFocusableElements(){const e='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]), md-icon-button:not([disabled]), md-button:not([disabled]), md-text-field:not([disabled]), md-checkbox:not([disabled]), md-switch:not([disabled]), md-radio:not([disabled]), md-slider:not([disabled])';const s=Array.from(this.containerEl?.querySelectorAll(e)??[]);const t=this.containerEl?.querySelectorAll("slot")??[];const i=[];t.forEach((s=>{const t=s.assignedElements({flatten:true});t.forEach((s=>{if(s.matches?.(e)){i.push(s)}const t=s.querySelectorAll?.(e);if(t)i.push(...Array.from(t))}))}));return[...s,...i]}render(){const e=this.variant==="modal";const s=!!this.headline;const d=e&&this.showBack;return t(i,{key:"0d6549e4f1f62be50e3907cfb4f6758a9013d718",class:{"md-side-sheet":true,[`md-side-sheet--${this.variant}`]:true,[`md-side-sheet--${this.side}`]:true,"md-side-sheet--open":this.open,"md-side-sheet--detached":this.detached}},e&&t("div",{key:"4a2beb6ed0b3005a4b83560f1a9cf02e8d2390a9",class:"md-side-sheet__scrim",part:"scrim","aria-hidden":"true",onClick:this.handleScrimClick}),t("div",{key:"90918a183d8be5fa19f360a6546d6a97b7e1a519",class:"md-side-sheet__container",part:"container",role:e?"dialog":"region","aria-modal":e?"true":undefined,"aria-labelledby":s?this.headlineId:undefined,"aria-label":this.sheetAriaLabel||(!s?"Side sheet":undefined),"aria-hidden":!this.open?"true":undefined,inert:!this.open,tabindex:-1,ref:e=>this.containerEl=e},e&&t("span",{key:"53fd02f82a4ebc464fefd0bc2336c6b1bbd6af4a",class:"md-side-sheet__focus-guard",tabindex:0,"aria-hidden":"true",onFocus:this.handleEndGuardFocus}),t("div",{key:"6af5c6e6155dd081663dc620d5a9657c10e375d9",class:"md-side-sheet__header",part:"header"},d&&t("div",{key:"b73407538462b111215191c1a1a02a0ee41158ef",class:"md-side-sheet__back"},t("slot",{key:"f718a04469fb9388800230fef2776f316cf27d83",name:"back"},t("md-icon-button",{key:"58359a2e694a98642cec44d1c86390356692de4b",variant:"standard",icon:"arrow_back","aria-label":"Back",onClick:this.handleBackClick}))),t("span",{key:"4b9cffb75729b3d62bce148bfcabfe41bfed47c6",id:this.headlineId,class:"md-side-sheet__headline",part:"headline"},t("slot",{key:"f869a19f38e59d39b30666b63449df7ac7746b92",name:"headline"},this.headline)),this.closeable&&t("div",{key:"08a697ecd140662748310f41332919d4da5ec076",class:"md-side-sheet__close",part:"close"},t("slot",{key:"f5ca65931d3baac5d70a27a70702338187e39445",name:"close"},t("md-icon-button",{key:"61114ca7e484651711ef8899a74c52b6e934bd22",variant:"standard",icon:"close","aria-label":"Close side sheet",onClick:this.handleCloseClick})))),this.topDivider&&t("div",{key:"6ce2d0e7de5e3e5a3f6e738e5ad444fda9f1b773",class:"md-side-sheet__divider",part:"divider-top","aria-hidden":"true"}),t("div",{key:"4c0475c3ded3abd2687c069b129f0028143a23a2",class:"md-side-sheet__content",part:"content"},t("slot",{key:"87b6af3a5a53dda956643f94868bbba2a1106064"})),this.hasActions&&this.bottomDivider&&t("div",{key:"66310f2bd364a6716188ee52b37f6f71b3363625",class:"md-side-sheet__divider md-side-sheet__divider--bottom",part:"divider-bottom","aria-hidden":"true"}),this.hasActions&&t("div",{key:"17086a116a77c9e6bf0aab69f05522bbb43741d1",class:"md-side-sheet__actions",part:"actions"},t("slot",{key:"a78f795463ff743d54b816a37e38a0d726c55f92",name:"actions"})),e&&t("span",{key:"9cd3e21f0ea363036a6d584f22c067d155c8a22c",class:"md-side-sheet__focus-guard",tabindex:0,"aria-hidden":"true",onFocus:this.handleStartGuardFocus})))}get el(){return d(this)}static get watchers(){return{open:[{onOpenChange:0}]}}};n.style=a();export{n as md_side_sheet};
2
- //# sourceMappingURL=p-5b74694e.entry.js.map
1
+ import{r as e,c as s,h as t,H as i,g as d}from"./p-WmvQpZnM.js";const a=()=>`:host{--_container-color:var(--md-side-sheet-container-color, var(--md-sys-color-surface, #FFFBFE));--_container-shape:var(--md-side-sheet-container-shape, 0px);--_headline-color:var(--md-side-sheet-headline-color, var(--md-sys-color-on-surface-variant, #49454F));--_content-color:var(--md-side-sheet-content-color, var(--md-sys-color-on-surface, #1C1B1F));--_scrim-color:var(--md-side-sheet-scrim-color, rgba(0, 0, 0, 0.32));--_divider-color:var(--md-side-sheet-divider-color, var(--md-sys-color-outline-variant, #CAC4D0));--_width:var(--md-side-sheet-width, max(280px, calc(360px + var(--md-sys-density-scale, 0) * 16px)));--_max-width:var(--md-side-sheet-max-width, max(320px, calc(400px + var(--md-sys-density-scale, 0) * 16px)));--_icon-color:var(--md-side-sheet-icon-color, var(--md-sys-color-on-surface-variant, #49454F));display:block;position:relative;box-sizing:border-box}:host(.md-side-sheet--standard){inline-size:min(var(--_width), 100%);max-inline-size:min(var(--_max-width), 100%);block-size:100%}:host(.md-side-sheet--standard:not(.md-side-sheet--open)){display:none}:host(.md-side-sheet--standard) .md-side-sheet__container{position:relative;inline-size:100%;block-size:100%;background-color:var(--_container-color);color:var(--_content-color);display:flex;flex-direction:column;overflow:hidden}:host(.md-side-sheet--standard.md-side-sheet--end) .md-side-sheet__container{border-inline-start:1px solid var(--_divider-color)}:host(.md-side-sheet--standard.md-side-sheet--start) .md-side-sheet__container{border-inline-end:1px solid var(--_divider-color)}:host(.md-side-sheet--modal){display:contents}:host(.md-side-sheet--modal:not(.md-side-sheet--open)){display:contents;pointer-events:none}.md-side-sheet__scrim{position:fixed;inset:0;background-color:var(--_scrim-color);z-index:var(--md-sys-z-index-popup, 1000);opacity:0;pointer-events:none;transition:opacity var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-side-sheet--modal.md-side-sheet--open) .md-side-sheet__scrim{opacity:1;pointer-events:auto}:host(.md-side-sheet--modal) .md-side-sheet__container{position:fixed;inset-block:0;z-index:var(--md-sys-z-index-dialog-scrim, 1001);inline-size:min(var(--_width), 100%);max-inline-size:min(var(--_max-width), 100%);background-color:var(--md-sys-color-surface-container-low, #F7F2FA);color:var(--_content-color);display:flex;flex-direction:column;overflow:hidden;pointer-events:none;opacity:0;box-shadow:var(--md-sys-elevation-1);transition:transform var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)), opacity var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-side-sheet--modal.md-side-sheet--end) .md-side-sheet__container{inset-inline-end:0;inset-inline-start:auto;transform:translateX(100%)}:host(.md-side-sheet--modal.md-side-sheet--start) .md-side-sheet__container{inset-inline-start:0;inset-inline-end:auto;transform:translateX(-100%)}:host(.md-side-sheet--modal.md-side-sheet--open) .md-side-sheet__container{pointer-events:auto;transform:translateX(0);opacity:1}:host-context([dir="rtl"]):host(.md-side-sheet--modal.md-side-sheet--end) .md-side-sheet__container,:host([dir="rtl"].md-side-sheet--modal.md-side-sheet--end) .md-side-sheet__container{transform:translateX(-100%)}:host-context([dir="rtl"]):host(.md-side-sheet--modal.md-side-sheet--start) .md-side-sheet__container,:host([dir="rtl"].md-side-sheet--modal.md-side-sheet--start) .md-side-sheet__container{transform:translateX(100%)}:host-context([dir="rtl"]):host(.md-side-sheet--modal.md-side-sheet--open) .md-side-sheet__container,:host([dir="rtl"].md-side-sheet--modal.md-side-sheet--open) .md-side-sheet__container{transform:translateX(0)}:host(.md-side-sheet--detached) .md-side-sheet__container{--_container-shape:var(--md-side-sheet-container-shape, var(--md-sys-shape-corner-large, 16px));border-radius:var(--_container-shape)}:host(.md-side-sheet--modal.md-side-sheet--detached) .md-side-sheet__container{inset-block:max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px));block-size:calc(100% - max(16px, calc(32px + var(--md-sys-density-scale, 0) * 4px)));box-shadow:var(--md-sys-elevation-3)}:host(.md-side-sheet--modal.md-side-sheet--detached.md-side-sheet--end) .md-side-sheet__container{inset-inline-end:16px}:host(.md-side-sheet--modal.md-side-sheet--detached.md-side-sheet--start) .md-side-sheet__container{inset-inline-start:16px}:host(.md-side-sheet--standard.md-side-sheet--detached) .md-side-sheet__container{border:none;margin:16px;block-size:calc(100% - 32px);box-shadow:var(--md-sys-elevation-1)}.md-side-sheet__header{display:flex;align-items:center;gap:max(4px, calc(12px + var(--md-sys-density-scale, 0) * 2px));padding-inline:max(12px, calc(24px + var(--md-sys-density-scale, 0) * 2px));padding-block:max(12px, calc(24px + var(--md-sys-density-scale, 0) * 2px)) max(8px, calc(12px + var(--md-sys-density-scale, 0) * 1px));flex-shrink:0}.md-side-sheet__back{flex-shrink:0;margin-inline-start:calc(-12px - var(--md-sys-density-scale, 0) * 1px)}.md-side-sheet__headline{flex:1;font-family:var(--md-sys-typescale-title-large-font-family, Roboto, sans-serif);font-size:max(16px, calc(22px + var(--md-sys-density-scale, 0) * 1px));font-weight:var(--md-sys-typescale-title-large-font-weight, 400);line-height:max(22px, calc(28px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-title-large-letter-spacing, 0px);color:var(--_headline-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-side-sheet__close{flex-shrink:0;margin-inline-end:calc(-12px - var(--md-sys-density-scale, 0) * 1px)}.md-side-sheet__close md-icon-button,.md-side-sheet__back md-icon-button{--md-icon-button-icon-color:var(--_icon-color);--md-icon-button-container-width:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-container-height:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px))}.md-side-sheet__divider{block-size:1px;background-color:var(--_divider-color);flex-shrink:0}.md-side-sheet__content{flex:1;min-block-size:0;overflow-y:scroll;padding-inline:max(12px, calc(24px + var(--md-sys-density-scale, 0) * 2px));padding-block:max(8px, calc(12px + var(--md-sys-density-scale, 0) * 1px));font-family:var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif);font-size:max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-body-medium-font-weight, 400);line-height:max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-body-medium-letter-spacing, 0.25px);color:var(--_content-color);scrollbar-width:thin;scrollbar-color:var(--md-sys-color-outline-variant, #CAC4D0) transparent}.md-side-sheet__content::-webkit-scrollbar{inline-size:8px}.md-side-sheet__content::-webkit-scrollbar-thumb{background-color:var(--md-sys-color-outline-variant, #CAC4D0);border-radius:4px}.md-side-sheet__content::-webkit-scrollbar-track{background-color:transparent}.md-side-sheet__actions{display:flex;align-items:center;justify-content:flex-start;gap:max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px));min-block-size:max(40px, calc(72px + var(--md-sys-density-scale, 0) * 4px));box-sizing:border-box;padding-inline:max(12px, calc(24px + var(--md-sys-density-scale, 0) * 2px));padding-block:max(6px, calc(12px + var(--md-sys-density-scale, 0) * 1px));flex-shrink:0;margin-block-start:auto}::slotted([slot="back"]){color:var(--_icon-color);--md-icon-button-container-width:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-container-height:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px))}::slotted([slot="close"]){color:var(--_icon-color);--md-icon-button-container-width:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-container-height:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px))}.md-side-sheet__focus-guard{position:fixed;overflow:hidden;clip-path:inset(50%);inline-size:1px;block-size:1px;padding:0;border:0;margin:-1px;white-space:nowrap}@media (prefers-reduced-motion: reduce){.md-side-sheet__scrim,:host(.md-side-sheet--modal) .md-side-sheet__container{transition:none}}@media (forced-colors: active){.md-side-sheet__container{border:2px solid CanvasText}.md-side-sheet__divider{background-color:CanvasText}}: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.mdOpen=s(this,"mdOpen",7);this.mdClose=s(this,"mdClose",7);this.mdCancel=s(this,"mdCancel",7);this.mdBack=s(this,"mdBack",7);this.open=false;this.variant="standard";this.side="end";this.headline="";this.closeable=true;this.showBack=false;this.scrimDismissible=true;this.topDivider=false;this.bottomDivider=false;this.detached=false;this.sheetAriaLabel="";this.density=0;this.hasSlottedClose=false;this.hasSlottedBack=false;this.hasActions=false;this.previousFocus=null;this.headlineId=`md-side-sheet-headline-${Math.random().toString(36).slice(2)}`;this.handleDocKeyDown=e=>{if(!this.open||this.variant!=="modal")return;if(e.key==="Escape"){e.preventDefault();e.stopPropagation();if(!this.scrimDismissible)return;this.mdCancel.emit();this.open=false}};this.handleDocFocusIn=()=>{if(!this.open||this.variant!=="modal")return;const e=document.activeElement;if(!e)return;if(e===this.el||this.el.contains(e))return;const s=this.containerEl?.contains(e);if(s)return;this.focusFirst()};this.handleStartGuardFocus=()=>{const e=this.getFocusableElements();if(e.length>0){e[e.length-1].focus()}else{this.containerEl?.focus()}};this.handleEndGuardFocus=()=>{const e=this.getFocusableElements();if(e.length>0){e[0].focus()}else{this.containerEl?.focus()}};this.handleScrimClick=()=>{if(!this.scrimDismissible)return;this.mdCancel.emit();this.open=false};this.handleCloseClick=()=>{this.mdCancel.emit();this.open=false};this.handleBackClick=()=>{this.mdBack.emit()}}connectedCallback(){this.hasActions=!!this.el.querySelector('[slot="actions"]')}componentDidLoad(){const e=this.el.shadowRoot;if(!e)return;const s=e.querySelector('slot[name="close"]');const t=e.querySelector('slot[name="back"]');const i=e.querySelector('slot[name="actions"]');s?.addEventListener("slotchange",(()=>{this.hasSlottedClose=s.assignedElements().length>0}));t?.addEventListener("slotchange",(()=>{this.hasSlottedBack=t.assignedElements().length>0}));i?.addEventListener("slotchange",(()=>{this.hasActions=i.assignedElements().length>0}));if(this.open){this.onOpenChange(true)}}disconnectedCallback(){this.removeGlobalListeners();document.body.style.overflow=""}onOpenChange(e){if(e){this.addGlobalListeners();if(this.variant==="modal"){this.previousFocus=document.activeElement;document.body.style.overflow="hidden";requestAnimationFrame((()=>{this.containerEl?.removeAttribute("inert");this.focusFirst()}))}this.mdOpen.emit()}else{this.removeGlobalListeners();if(this.variant==="modal"){document.body.style.overflow="";this.previousFocus?.focus?.({preventScroll:true});this.previousFocus=null}this.mdClose.emit()}}async show(){this.open=true}async close(){this.open=false}addGlobalListeners(){if(this.variant!=="modal")return;document.addEventListener("keydown",this.handleDocKeyDown,true);document.addEventListener("focusin",this.handleDocFocusIn)}removeGlobalListeners(){document.removeEventListener("keydown",this.handleDocKeyDown,true);document.removeEventListener("focusin",this.handleDocFocusIn)}focusFirst(){if(!this.containerEl)return;const e=this.getFocusableElements();if(e.length>0){e[0].focus()}else{this.containerEl.focus()}}getFocusableElements(){const e='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]), md-icon-button:not([disabled]), md-button:not([disabled]), md-text-field:not([disabled]), md-checkbox:not([disabled]), md-switch:not([disabled]), md-radio:not([disabled]), md-slider:not([disabled])';const s=Array.from(this.containerEl?.querySelectorAll(e)??[]);const t=this.containerEl?.querySelectorAll("slot")??[];const i=[];t.forEach((s=>{const t=s.assignedElements({flatten:true});t.forEach((s=>{if(s.matches?.(e)){i.push(s)}const t=s.querySelectorAll?.(e);if(t)i.push(...Array.from(t))}))}));return[...s,...i]}render(){const e=this.variant==="modal";const s=!!this.headline;const d=e&&this.showBack;return t(i,{key:"0d6549e4f1f62be50e3907cfb4f6758a9013d718",class:{"md-side-sheet":true,[`md-side-sheet--${this.variant}`]:true,[`md-side-sheet--${this.side}`]:true,"md-side-sheet--open":this.open,"md-side-sheet--detached":this.detached}},e&&t("div",{key:"4a2beb6ed0b3005a4b83560f1a9cf02e8d2390a9",class:"md-side-sheet__scrim",part:"scrim","aria-hidden":"true",onClick:this.handleScrimClick}),t("div",{key:"90918a183d8be5fa19f360a6546d6a97b7e1a519",class:"md-side-sheet__container",part:"container",role:e?"dialog":"region","aria-modal":e?"true":undefined,"aria-labelledby":s?this.headlineId:undefined,"aria-label":this.sheetAriaLabel||(!s?"Side sheet":undefined),"aria-hidden":!this.open?"true":undefined,inert:!this.open,tabindex:-1,ref:e=>this.containerEl=e},e&&t("span",{key:"53fd02f82a4ebc464fefd0bc2336c6b1bbd6af4a",class:"md-side-sheet__focus-guard",tabindex:0,"aria-hidden":"true",onFocus:this.handleEndGuardFocus}),t("div",{key:"6af5c6e6155dd081663dc620d5a9657c10e375d9",class:"md-side-sheet__header",part:"header"},d&&t("div",{key:"b73407538462b111215191c1a1a02a0ee41158ef",class:"md-side-sheet__back"},t("slot",{key:"f718a04469fb9388800230fef2776f316cf27d83",name:"back"},t("md-icon-button",{key:"58359a2e694a98642cec44d1c86390356692de4b",variant:"standard",icon:"arrow_back","aria-label":"Back",onClick:this.handleBackClick}))),t("span",{key:"4b9cffb75729b3d62bce148bfcabfe41bfed47c6",id:this.headlineId,class:"md-side-sheet__headline",part:"headline"},t("slot",{key:"f869a19f38e59d39b30666b63449df7ac7746b92",name:"headline"},this.headline)),this.closeable&&t("div",{key:"08a697ecd140662748310f41332919d4da5ec076",class:"md-side-sheet__close",part:"close"},t("slot",{key:"f5ca65931d3baac5d70a27a70702338187e39445",name:"close"},t("md-icon-button",{key:"61114ca7e484651711ef8899a74c52b6e934bd22",variant:"standard",icon:"close","aria-label":"Close side sheet",onClick:this.handleCloseClick})))),this.topDivider&&t("div",{key:"6ce2d0e7de5e3e5a3f6e738e5ad444fda9f1b773",class:"md-side-sheet__divider",part:"divider-top","aria-hidden":"true"}),t("div",{key:"4c0475c3ded3abd2687c069b129f0028143a23a2",class:"md-side-sheet__content",part:"content"},t("slot",{key:"87b6af3a5a53dda956643f94868bbba2a1106064"})),this.hasActions&&this.bottomDivider&&t("div",{key:"66310f2bd364a6716188ee52b37f6f71b3363625",class:"md-side-sheet__divider md-side-sheet__divider--bottom",part:"divider-bottom","aria-hidden":"true"}),this.hasActions&&t("div",{key:"17086a116a77c9e6bf0aab69f05522bbb43741d1",class:"md-side-sheet__actions",part:"actions"},t("slot",{key:"a78f795463ff743d54b816a37e38a0d726c55f92",name:"actions"})),e&&t("span",{key:"9cd3e21f0ea363036a6d584f22c067d155c8a22c",class:"md-side-sheet__focus-guard",tabindex:0,"aria-hidden":"true",onFocus:this.handleStartGuardFocus})))}get el(){return d(this)}static get watchers(){return{open:[{onOpenChange:0}]}}};n.style=a();export{n as md_side_sheet};
2
+ //# sourceMappingURL=p-89d47130.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as t,c as i,h as e,H as s,g as a}from"./p-WmvQpZnM.js";import{s as r}from"./p-DWxN44zD.js";const n=()=>`:host{--_size:var(--md-rating-item-size, max(12px, calc(28px + var(--md-sys-density-scale, 0) * 2px)));--_gap:var(--md-rating-item-gap, var(--md-sys-spacing-gap-xs, 4px));--_active-color:var(--md-rating-active-color, var(--md-sys-color-secondary, #FFB400));--_inactive-color:var(--md-rating-inactive-color, color-mix(in srgb, var(--md-sys-color-on-surface-variant) 30%, transparent));--_focus-ring-color:var(--md-rating-focus-ring-color, var(--md-sys-color-secondary));--_focus-ring-width:var(--md-rating-focus-ring-width, 3px);--_focus-ring-offset:var(--md-rating-focus-ring-offset, 2px);--_state-layer-color:var(--md-rating-state-layer-color, var(--md-sys-color-on-surface));--_label-color:var(--md-rating-value-label-color, var(--md-sys-color-on-surface));--_label-font:var( --md-rating-value-label-font, var(--md-sys-typescale-label-medium-font, system-ui) );--_pop-scale:var(--md-rating-pop-scale, 1.12);--_duration:var(--md-rating-duration, var(--md-sys-motion-duration-short3, 150ms));display:inline-flex;align-items:center;gap:var(--md-sys-spacing-gap-md, 12px);color:var(--_active-color);vertical-align:middle}:host([size="xs"]){--_size:var(--md-rating-item-size, max(12px, calc(16px + var(--md-sys-density-scale, 0) * 2px)))}:host([size="sm"]){--_size:var(--md-rating-item-size, max(12px, calc(20px + var(--md-sys-density-scale, 0) * 2px)))}:host([size="md"]){--_size:var(--md-rating-item-size, max(12px, calc(28px + var(--md-sys-density-scale, 0) * 2px)))}:host([size="lg"]){--_size:var(--md-rating-item-size, max(12px, calc(36px + var(--md-sys-density-scale, 0) * 2px)))}:host([size="xl"]){--_size:var(--md-rating-item-size, max(12px, calc(48px + var(--md-sys-density-scale, 0) * 2px)))}.md-rating__items{display:inline-flex;align-items:center;gap:var(--_gap);position:relative;border-radius:var(--md-sys-shape-corner-full, 999px);outline:none}.md-rating__items:focus-visible{outline:var(--_focus-ring-width) solid var(--_focus-ring-color);outline-offset:var(--_focus-ring-offset)}.md-rating__item{position:relative;display:inline-flex;align-items:center;justify-content:center;inline-size:var(--_size);block-size:var(--_size);padding:0;margin:0;border:0;background:transparent;cursor:pointer;border-radius:50%;color:inherit;font:inherit;transition:transform var(--_duration) var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)), color var(--_duration) ease;-webkit-tap-highlight-color:transparent;will-change:transform;backface-visibility:hidden}:host(.md-rating--readonly) .md-rating__item,:host(.md-rating--disabled) .md-rating__item,:host(.md-rating--soft-disabled) .md-rating__item{cursor:default}.md-rating__item:hover{transform:scale(var(--_pop-scale))}:host(.md-rating--readonly) .md-rating__item:hover,:host(.md-rating--disabled) .md-rating__item:hover,:host(.md-rating--soft-disabled) .md-rating__item:hover{transform:none}.md-rating__icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--md-rating-icon-font-family, 'Material Symbols Rounded', 'Material Symbols Outlined', 'Material Icons');font-size:var(--_size);font-weight:normal;font-style:normal;letter-spacing:normal;text-transform:none;line-height:1;white-space:nowrap;direction:ltr;pointer-events:none;-webkit-font-smoothing:antialiased;font-feature-settings:'liga';font-variation-settings:'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24}.md-rating__icon--bg{color:var(--_inactive-color)}.md-rating__icon--fg{color:var(--_active-color);font-variation-settings:'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24}:host([outline-empty]) .md-rating__icon--bg{font-variation-settings:'FILL' 0, 'wght' 500, 'GRAD' 0, 'opsz' 24}.md-rating__icon--state{color:var(--_state-layer-color);opacity:0;font-variation-settings:'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;transition:opacity var(--_duration) ease}.md-rating__item:hover .md-rating__icon--state{opacity:var(--md-sys-state-hover-state-layer-opacity, 0.08)}.md-rating__item:active .md-rating__icon--state{opacity:var(--md-sys-state-pressed-state-layer-opacity, 0.12)}:host(.md-rating--readonly) .md-rating__icon--state,:host(.md-rating--disabled) .md-rating__icon--state,:host(.md-rating--soft-disabled) .md-rating__icon--state{display:none}.md-rating__icon--ripple{color:var(--_state-layer-color);opacity:0;font-variation-settings:'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24}:host(.md-rating--readonly) .md-rating__icon--ripple,:host(.md-rating--disabled) .md-rating__icon--ripple,:host(.md-rating--soft-disabled) .md-rating__icon--ripple{display:none}.md-rating__value-label{display:inline-grid;place-items:center start;font:var(--_label-font);font-size:var(--md-sys-typescale-label-large-size, 14px);font-weight:var(--md-sys-typescale-label-large-weight, 500);color:var(--_label-color);white-space:nowrap;font-variant-numeric:tabular-nums}.md-rating__value-label>*{grid-area:1 / 1}.md-rating__value-label-sizer{visibility:hidden;pointer-events:none}:host(.md-rating--disabled){opacity:var(--md-sys-state-disabled-content-opacity, 0.38);pointer-events:none}:host(.md-rating--soft-disabled){opacity:var(--md-sys-state-disabled-content-opacity, 0.38)}:host(.md-rating--soft-disabled) .md-rating__items{pointer-events:none}:host(.md-rating--soft-disabled) .md-rating__items{pointer-events:auto}:host(.md-rating--soft-disabled) .md-rating__item{pointer-events:none}:host-context([dir="rtl"]) .md-rating__items,:host([dir="rtl"]) .md-rating__items{flex-direction:row-reverse}@media (prefers-reduced-motion: reduce){.md-rating__item,.md-rating__icon--state{transition:none}.md-rating__item:hover{transform:none}}.material-symbols-outlined{font-family:var(--md-rating-icon-font-family, 'Material Symbols Rounded', 'Material Symbols Outlined', 'Material Icons');font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;overflow-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased}: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 o=class{constructor(e){t(this,e);this.mdHover=i(this,"mdHover",7);this.mdChange=i(this,"mdChange",7);if(e.$hostElement$["s-ei"]){this.internals=e.$hostElement$["s-ei"]}else{this.internals=e.$hostElement$.attachInternals();e.$hostElement$["s-ei"]=this.internals}this.value=0;this.defaultValue=0;this.max=5;this.precision=1;this.size="md";this.readonly=false;this.disabled=false;this.softDisabled=false;this.icon="star";this.emptyIcon="star";this.outlineEmpty=true;this.showValueLabel=false;this.ratingLabel="Rating";this.name="";this.hover="preview";this.density=0;this.hoveredValue=null;this.focused=false;this.initialValue=0;this.computeValueFromPointer=(t,i,e)=>{if(this.precision===1)return t+1;const s=e.getBoundingClientRect();const a=getComputedStyle(this.el).direction==="rtl";const r=i.clientX-s.left;const n=a?1-r/s.width:r/s.width;return t+(n<=.5?.5:1)};this.handleItemPointerMove=t=>i=>{if(!this.isInteractive)return;if(this.hover==="off")return;const e=i.currentTarget;const s=this.computeValueFromPointer(t,i,e);if(s!==this.hoveredValue){this.hoveredValue=s;this.mdHover.emit(s)}};this.handlePointerLeave=()=>{if(!this.isInteractive)return;if(this.hoveredValue==null)return;this.hoveredValue=null;this.mdHover.emit(null)};this.handleItemClick=t=>i=>{if(!this.isInteractive)return;const e=i.currentTarget;let s=this.computeValueFromPointer(t,i,e);if(s===this.value){s=this.defaultValue}this.value=s;this.mdChange.emit(s)};this.handleItemPointerDown=()=>t=>{if(!this.isInteractive||this.rippleSuppressed())return;const i=t.currentTarget;const e=i.querySelector(".md-rating__icon--ripple");if(!e||typeof e.animate!=="function")return;const s=i.getBoundingClientRect();const a=s.width?(t.clientX-s.left)/s.width*100:50;const r=s.height?(t.clientY-s.top)/s.height*100:50;e.animate([{clipPath:`circle(0% at ${a}% ${r}%)`,opacity:.22},{clipPath:`circle(85% at ${a}% ${r}%)`,opacity:0}],{duration:420,easing:"cubic-bezier(0.2, 0, 0, 1)"})};this.handleKeyDown=t=>{if(!this.isInteractive)return;const i=this.precision;let e=this.value;const s=getComputedStyle(this.el).direction==="rtl";switch(t.key){case"ArrowRight":e=s?this.value-i:this.value+i;break;case"ArrowLeft":e=s?this.value+i:this.value-i;break;case"ArrowUp":e=this.value+i;break;case"ArrowDown":e=this.value-i;break;case"Home":e=0;break;case"End":e=this.max;break;default:if(/^[0-9]$/.test(t.key)){const i=Number(t.key);if(i<=this.max)e=i}else{return}}t.preventDefault();e=Math.max(0,Math.min(this.max,e));if(e!==this.value){this.value=e;this.mdChange.emit(e)}};this.handleFocus=()=>{this.focused=true};this.handleBlur=()=>{this.focused=false;if(this.hoveredValue!=null){this.hoveredValue=null;this.mdHover.emit(null)}}}componentWillLoad(){this.validateValue(this.value);this.initialValue=this.value}validateValue(t){if(typeof t!=="number"||Number.isNaN(t)){this.value=0;return}if(t<0)this.value=0;if(t>this.max)this.value=this.max;this.syncFormValue()}onMaxChange(){if(this.value>this.max)this.value=this.max}formResetCallback(){this.value=this.initialValue}syncFormValue(){r(this.internals,this.value?String(this.value):null)}async focusRating(){const t=this.el.shadowRoot;const i=t?.querySelector(".md-rating__items");i?.focus()}get isInteractive(){return!this.readonly&&!this.disabled&&!this.softDisabled}get displayValue(){return this.hoveredValue!=null&&this.hover==="preview"?this.hoveredValue:this.value}resolveLabel(t){if(this.getLabel)return this.getLabel(t);if(t===0)return"Empty";if(t===1)return"1 Star";return`${t} Stars`}resolveAccessibleLabel(){const t=this.el;const i=t.getRootNode();const e=t=>i.getElementById?.(t)??(typeof document!=="undefined"?document.getElementById(t):null);const s=t=>t.map((t=>t?.textContent?.trim()??"")).filter(Boolean).join(" ");const a=t.getAttribute("aria-labelledby");if(a){const t=s(a.split(/\s+/).map(e));if(t)return t}const r=t.getAttribute("aria-label");if(r)return r;const n=this.internals?.labels;if(n&&n.length){const t=s(Array.from(n));if(t)return t}return this.ratingLabel}valueLabelVariants(){const t=this.precision||1;const i=new Set;for(let e=0;e<=this.max+1e-9;e+=t){const s=Math.min(Math.round(e/t)*t,this.max);i.add(this.resolveLabel(s))}return Array.from(i)}rippleSuppressed(){if(typeof getComputedStyle!=="function")return false;try{return getComputedStyle(this.el).getPropertyValue("--md-sys-ripple-enabled").trim()==="0"}catch{return false}}renderItem(t){const i=this.displayValue;const s=Math.max(0,Math.min(1,i-t));const a=s>0&&s<1;const r=s>=1;const n=s<=0;return e("span",{class:{"md-rating__item":true,"md-rating__item--full":r,"md-rating__item--half":a,"md-rating__item--empty":n},part:`item ${r?"item-full":a?"item-half":"item-empty"}`,"aria-hidden":"true",onPointerMove:this.handleItemPointerMove(t),onPointerDown:this.handleItemPointerDown(),onClick:this.handleItemClick(t)},e("span",{class:"md-rating__icon md-rating__icon--bg material-symbols-outlined",part:"icon-empty"},this.outlineEmpty?this.icon:this.emptyIcon),e("span",{class:"md-rating__icon md-rating__icon--fg material-symbols-outlined",part:"icon-filled",style:{clipPath:`inset(0 ${(1-s)*100}% 0 0)`}},this.icon),e("span",{class:"md-rating__icon md-rating__icon--state material-symbols-outlined",part:"state-layer","aria-hidden":"true"},this.icon),e("span",{class:"md-rating__icon md-rating__icon--ripple material-symbols-outlined",part:"ripple","aria-hidden":"true"},this.icon))}render(){const t=this.disabled?"-1":this.readonly?undefined:"0";const i=this.value;const a=!this.readonly;const r=this.resolveAccessibleLabel();const n=a?r:`${r}: ${this.resolveLabel(i)}`;return e(s,{key:"6a07c9c03bcae26da555b8936153fa1f78269e4c",class:{"md-rating":true,[`md-rating--${this.size}`]:true,"md-rating--readonly":this.readonly,"md-rating--disabled":this.disabled,"md-rating--soft-disabled":this.softDisabled,"md-rating--focused":this.focused}},e("div",{key:"e7ab5f40e2aac91318894ee41e552d94c42dc7d5",class:"md-rating__items",role:a?"slider":"img","aria-label":n,"aria-valuemin":a?0:undefined,"aria-valuemax":a?this.max:undefined,"aria-valuenow":a?i:undefined,"aria-valuetext":a?this.resolveLabel(i):undefined,"aria-orientation":a?"horizontal":undefined,"aria-readonly":a?"false":undefined,"aria-disabled":a&&(this.disabled||this.softDisabled)?"true":undefined,tabindex:t,part:"items",onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur,onPointerLeave:this.handlePointerLeave},Array.from({length:this.max},((t,i)=>this.renderItem(i)))),this.showValueLabel&&e("span",{key:"3928dd313d1539d4de36ac82f837ace71b48ac25",class:"md-rating__value-label",part:"value-label","aria-hidden":"true"},this.valueLabelVariants().map((t=>e("span",{key:t,class:"md-rating__value-label-sizer","aria-hidden":"true"},t))),e("span",{key:"848cbe90b328be7557684d0c98cef4d44ee217a9",class:"md-rating__value-label-text"},this.resolveLabel(this.displayValue))))}static get formAssociated(){return true}get el(){return a(this)}static get watchers(){return{value:[{validateValue:0}],max:[{onMaxChange:0}]}}};o.style=n();export{o as md_rating};
2
+ //# sourceMappingURL=p-8a6fed13.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["mdRatingCss","MdRating","constructor","hostRef","this","value","defaultValue","max","precision","size","readonly","disabled","softDisabled","icon","emptyIcon","outlineEmpty","showValueLabel","ratingLabel","name","hover","density","hoveredValue","focused","initialValue","computeValueFromPointer","itemIndex","e","itemEl","rect","getBoundingClientRect","isRtl","getComputedStyle","el","direction","x","clientX","left","ratio","width","handleItemPointerMove","i","isInteractive","target","currentTarget","next","mdHover","emit","handlePointerLeave","handleItemClick","mdChange","handleItemPointerDown","rippleSuppressed","item","ripple","querySelector","animate","y","height","clientY","top","clipPath","opacity","duration","easing","handleKeyDown","step","key","test","digit","Number","preventDefault","Math","min","handleFocus","handleBlur","componentWillLoad","validateValue","isNaN","syncFormValue","onMaxChange","formResetCallback","setFormValue","internals","String","focusRating","root","shadowRoot","host","focus","displayValue","resolveLabel","getLabel","resolveAccessibleLabel","getRootNode","byId","id","getElementById","document","joinText","els","map","textContent","trim","filter","Boolean","join","labelledby","getAttribute","text","split","hostAria","labels","length","Array","from","valueLabelVariants","set","Set","v","val","round","add","getPropertyValue","renderItem","filledPortion","isHalf","isFull","isEmpty","h","class","part","onPointerMove","onPointerDown","onClick","style","render","tabindex","undefined","interactive","baseLabel","Host","role","onKeyDown","onFocus","onBlur","onPointerLeave","_","t"],"sources":["src/components/md-rating/md-rating.css?tag=md-rating&encapsulation=shadow","src/components/md-rating/md-rating.tsx"],"sourcesContent":["/* ==========================================================\n md-rating — Material Design 3 Expressive Rating\n Spec: https://m3.material.io/styles/motion/overview\n Reference parity: https://mui.com/material-ui/react-rating/\n\n PUBLIC CSS CUSTOM PROPERTIES (override per-instance):\n --md-rating-item-size Icon dimension (per `size`)\n --md-rating-item-gap Space between items\n --md-rating-active-color Filled icon color\n --md-rating-inactive-color Empty icon color\n --md-rating-focus-ring-color Focus ring color\n --md-rating-focus-ring-width Focus ring width\n --md-rating-focus-ring-offset Focus ring offset\n --md-rating-state-layer-color Hover / press overlay color\n --md-rating-value-label-color Color of the inline value label\n --md-rating-value-label-font Font of the value label\n --md-rating-pop-scale Scale on hover/active (MD3 Expressive)\n --md-rating-duration Animation duration\n\n CSS PARTS:\n items The slider container\n item Each star/icon button\n item-full A fully filled item\n item-half A half-filled item\n item-empty An empty item\n icon-empty The background (outline) icon\n icon-filled The clipped foreground (filled) icon\n state-layer Hover / press overlay — a filled glyph tracing the icon shape\n ripple Press ripple — a glyph-clipped expanding circle\n value-label The inline numeric value label\n ========================================================== */\n\n:host {\n --_size: var(--md-rating-item-size, max(12px, calc(28px + var(--md-sys-density-scale, 0) * 2px)));\n --_gap: var(--md-rating-item-gap, var(--md-sys-spacing-gap-xs, 4px));\n --_active-color: var(--md-rating-active-color, var(--md-sys-color-secondary, #FFB400));\n --_inactive-color: var(--md-rating-inactive-color, color-mix(in srgb, var(--md-sys-color-on-surface-variant) 30%, transparent));\n --_focus-ring-color: var(--md-rating-focus-ring-color, var(--md-sys-color-secondary));\n --_focus-ring-width: var(--md-rating-focus-ring-width, 3px);\n --_focus-ring-offset: var(--md-rating-focus-ring-offset, 2px);\n --_state-layer-color: var(--md-rating-state-layer-color, var(--md-sys-color-on-surface));\n --_label-color: var(--md-rating-value-label-color, var(--md-sys-color-on-surface));\n --_label-font: var(\n --md-rating-value-label-font,\n var(--md-sys-typescale-label-medium-font, system-ui)\n );\n --_pop-scale: var(--md-rating-pop-scale, 1.12);\n --_duration: var(--md-rating-duration, var(--md-sys-motion-duration-short3, 150ms));\n\n display: inline-flex;\n align-items: center;\n gap: var(--md-sys-spacing-gap-md, 12px);\n color: var(--_active-color);\n vertical-align: middle;\n}\n\n/* Size scale — MD3 Expressive density variants. */\n:host([size=\"xs\"]) { --_size: var(--md-rating-item-size, max(12px, calc(16px + var(--md-sys-density-scale, 0) * 2px))); }\n:host([size=\"sm\"]) { --_size: var(--md-rating-item-size, max(12px, calc(20px + var(--md-sys-density-scale, 0) * 2px))); }\n:host([size=\"md\"]) { --_size: var(--md-rating-item-size, max(12px, calc(28px + var(--md-sys-density-scale, 0) * 2px))); }\n:host([size=\"lg\"]) { --_size: var(--md-rating-item-size, max(12px, calc(36px + var(--md-sys-density-scale, 0) * 2px))); }\n:host([size=\"xl\"]) { --_size: var(--md-rating-item-size, max(12px, calc(48px + var(--md-sys-density-scale, 0) * 2px))); }\n\n.md-rating__items {\n display: inline-flex;\n align-items: center;\n gap: var(--_gap);\n position: relative;\n border-radius: var(--md-sys-shape-corner-full, 999px);\n outline: none;\n}\n\n.md-rating__items:focus-visible {\n outline: var(--_focus-ring-width) solid var(--_focus-ring-color);\n outline-offset: var(--_focus-ring-offset);\n}\n\n/* ── Item ─────────────────────────────────────────────────────── */\n\n.md-rating__item {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: var(--_size);\n block-size: var(--_size);\n padding: 0;\n margin: 0;\n border: 0;\n background: transparent;\n cursor: pointer;\n border-radius: 50%;\n color: inherit;\n font: inherit;\n transition:\n transform var(--_duration) var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)),\n color var(--_duration) ease;\n -webkit-tap-highlight-color: transparent;\n /* Composite the item so the hover pop scales the cached raster instead of\n re-hinting the font glyphs every frame — kills the edge shimmer/jitter. */\n will-change: transform;\n backface-visibility: hidden;\n}\n\n:host(.md-rating--readonly) .md-rating__item,\n:host(.md-rating--disabled) .md-rating__item,\n:host(.md-rating--soft-disabled) .md-rating__item {\n cursor: default;\n}\n\n.md-rating__item:hover {\n transform: scale(var(--_pop-scale));\n}\n\n:host(.md-rating--readonly) .md-rating__item:hover,\n:host(.md-rating--disabled) .md-rating__item:hover,\n:host(.md-rating--soft-disabled) .md-rating__item:hover {\n transform: none;\n}\n\n/* ── Icons ────────────────────────────────────────────────────── */\n\n.md-rating__icon {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: var(--md-rating-icon-font-family, 'Material Symbols Rounded', 'Material Symbols Outlined', 'Material Icons');\n font-size: var(--_size);\n font-weight: normal;\n font-style: normal;\n letter-spacing: normal;\n text-transform: none;\n line-height: 1;\n white-space: nowrap;\n direction: ltr;\n pointer-events: none;\n -webkit-font-smoothing: antialiased;\n font-feature-settings: 'liga';\n font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;\n}\n\n.md-rating__icon--bg {\n color: var(--_inactive-color);\n}\n\n.md-rating__icon--fg {\n color: var(--_active-color);\n font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;\n}\n\n/* Outline-empty styling: use the filled glyph with the inactive\n colour for both layers so the outline silhouette is preserved. */\n:host([outline-empty]) .md-rating__icon--bg {\n font-variation-settings: 'FILL' 0, 'wght' 500, 'GRAD' 0, 'opsz' 24;\n}\n\n/* ── State layer ──────────────────────────────────────────────── */\n\n/* The hover/press overlay is a filled copy of the glyph, so the state\n layer traces the icon silhouette (a star, heart, bolt…) instead of the\n old circle. It sits on top of the icons and tints them within their own\n shape. */\n.md-rating__icon--state {\n color: var(--_state-layer-color);\n opacity: 0;\n font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;\n transition: opacity var(--_duration) ease;\n}\n\n.md-rating__item:hover .md-rating__icon--state {\n opacity: var(--md-sys-state-hover-state-layer-opacity, 0.08);\n}\n\n.md-rating__item:active .md-rating__icon--state {\n opacity: var(--md-sys-state-pressed-state-layer-opacity, 0.12);\n}\n\n:host(.md-rating--readonly) .md-rating__icon--state,\n:host(.md-rating--disabled) .md-rating__icon--state,\n:host(.md-rating--soft-disabled) .md-rating__icon--state {\n display: none;\n}\n\n/* ── Press ripple ─────────────────────────────────────────────── */\n\n/* A filled copy of the glyph, invisible at rest. handleItemPointerDown drives\n an expanding `clip-path: circle()` + fade over it via the Web Animations API,\n so the ripple reveals within the icon silhouette. */\n.md-rating__icon--ripple {\n color: var(--_state-layer-color);\n opacity: 0;\n font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;\n}\n\n:host(.md-rating--readonly) .md-rating__icon--ripple,\n:host(.md-rating--disabled) .md-rating__icon--ripple,\n:host(.md-rating--soft-disabled) .md-rating__icon--ripple {\n display: none;\n}\n\n/* ── Value label ──────────────────────────────────────────────── */\n\n.md-rating__value-label {\n /* Grid-stack the visible text over the hidden sizers so the box always\n reserves the widest label's width — the text can change on hover without\n resizing the box and reflowing the row. */\n display: inline-grid;\n place-items: center start;\n font: var(--_label-font);\n font-size: var(--md-sys-typescale-label-large-size, 14px);\n font-weight: var(--md-sys-typescale-label-large-weight, 500);\n color: var(--_label-color);\n white-space: nowrap;\n font-variant-numeric: tabular-nums;\n}\n\n.md-rating__value-label > * {\n grid-area: 1 / 1;\n}\n\n.md-rating__value-label-sizer {\n visibility: hidden;\n pointer-events: none;\n}\n\n/* ── Disabled / readonly visuals ──────────────────────────────── */\n\n:host(.md-rating--disabled) {\n opacity: var(--md-sys-state-disabled-content-opacity, 0.38);\n pointer-events: none;\n}\n\n:host(.md-rating--soft-disabled) {\n opacity: var(--md-sys-state-disabled-content-opacity, 0.38);\n}\n\n:host(.md-rating--soft-disabled) .md-rating__items {\n pointer-events: none;\n}\n\n/* Allow keyboard focus on soft-disabled. */\n:host(.md-rating--soft-disabled) .md-rating__items {\n pointer-events: auto;\n}\n\n:host(.md-rating--soft-disabled) .md-rating__item {\n pointer-events: none;\n}\n\n/* ── RTL mirroring ─────────────────────────────────────────────── */\n\n:host-context([dir=\"rtl\"]) .md-rating__items,\n:host([dir=\"rtl\"]) .md-rating__items {\n flex-direction: row-reverse;\n}\n\n/* ── Reduced motion ────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .md-rating__item,\n .md-rating__icon--state {\n transition: none;\n }\n .md-rating__item:hover {\n transform: none;\n }\n}\n\n/* ── Material Symbols font (shadow-root scope) ─────────────────── */\n\n/* Shadow DOM doesn't inherit page-level font-family rules, so the\n `.material-symbols-outlined` class on our internal icon spans\n needs its own font declaration here. Mirrors md-button.css. */\n.material-symbols-outlined {\n font-family: var(--md-rating-icon-font-family, 'Material Symbols Rounded', 'Material Symbols Outlined', 'Material Icons');\n font-weight: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n overflow-wrap: normal;\n direction: ltr;\n font-feature-settings: 'liga';\n -webkit-font-smoothing: antialiased;\n}\n\n/* ==========================================================\n DENSITY (local override)\n Maps the local `density` prop onto the same --md-sys-density-scale signal a\n global `data-density` ancestor sets. Declared on :host, so a local rung wins\n over the inherited global one. Every density-sensitive value in this file\n derives from that single signal by calc — never add a fixed per-rung ladder.\n ========================================================== */\n:host([density='-1']) { --md-sys-density-scale: -1; }\n:host([density='-2']) { --md-sys-density-scale: -2; }\n:host([density='-3']) { --md-sys-density-scale: -3; }\n:host([density='-4']) { --md-sys-density-scale: -4; }\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Event,\n EventEmitter,\n Element,\n Watch,\n Method,\n AttachInternals,\n} from '@stencil/core';\nimport { setFormValue } from '../../utils/form';\n\n/**\n * `md-rating` — Material Design 3 Expressive Rating control.\n *\n * A star-rating input: configurable max, half-step precision, custom icons\n * (Material Symbols glyphs OR slotted SVG/HTML), per-value icons\n * (filled / empty), hover preview, read-only and disabled modes,\n * keyboard navigation (Arrow + Home/End), and reset to zero.\n *\n * MD3 Expressive: items animate with a brief tonal \"scale-up\" pop on\n * hover and selection; press uses a state-layer + ripple. The\n * underlying ARIA pattern is a slider so screen readers announce the\n * value as a continuous range.\n */\n@Component({\n tag: 'md-rating',\n styleUrl: 'md-rating.css',\n shadow: true,\n formAssociated: true,\n})\nexport class MdRating {\n @Element() el!: HTMLElement;\n\n /**\n * Form-association handle. The rating submits its `value` under the host's\n * `name` via `setFormValue`, so it participates in `<form>`/`FormData`\n * natively — a hidden `<input>` in the shadow root would be invisible to\n * `FormData`.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /** Current numeric rating (0 → max, half-steps when precision = 0.5). */\n @Prop({ mutable: true, reflect: true }) value: number = 0;\n\n /** Default value used when the consumer clears the rating (re-clicking the\n * current value). */\n @Prop({ attribute: 'default-value' }) defaultValue: number = 0;\n\n /** Maximum rating (number of items rendered). */\n @Prop({ reflect: true }) max: number = 5;\n\n /** Step size — `1` (full only) or `0.5` (half). */\n @Prop({ reflect: true }) precision: 1 | 0.5 = 1;\n\n /** Size of each item. */\n @Prop({ reflect: true }) size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n /** Read-only — purely decorative; no interaction, no focus. */\n @Prop({ reflect: true }) readonly: boolean = false;\n\n /** Disabled — non-interactive and visually dimmed; not focusable. */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Soft-disabled — disabled visuals but remains focusable for discoverability. */\n @Prop({ reflect: true, attribute: 'soft-disabled' }) softDisabled: boolean = false;\n\n /** Material Symbols glyph used for *filled* items. */\n @Prop() icon: string = 'star';\n\n /** Material Symbols glyph used for *empty* items. */\n @Prop({ attribute: 'empty-icon' }) emptyIcon: string = 'star';\n\n /**\n * Use the *filled* glyph for empty items as well, drawn with the\n * outline-only color treatment — a solid silhouette outline behind\n * the fill.\n */\n @Prop({ attribute: 'outline-empty', reflect: true }) outlineEmpty: boolean = true;\n\n /**\n * Optional label provider — `el.getLabel = (v) => \"${v} Stars\"`. Used\n * by the hidden screen-reader text and the visible value label\n * when `show-value-label` is set.\n */\n @Prop() getLabel?: (value: number) => string;\n\n /** When true, render the current numeric value beside the items. */\n @Prop({ attribute: 'show-value-label', reflect: true }) showValueLabel: boolean = false;\n\n /** Accessible label for the slider role. */\n /**\n * Accessible name for the rating control.\n *\n * The attribute is `rating-label`, NOT `aria-label-rating`. Anything starting\n * with `aria-` is parsed as an ARIA attribute, and `aria-label-rating` is not\n * one — so the previous name made axe report a CRITICAL `aria-valid-attr`\n * violation on every consumer that used the documented API. The value still\n * ends up as the host's accessible name; only the attribute spelling changed.\n */\n @Prop({ attribute: 'rating-label' }) ratingLabel: string = 'Rating';\n\n /** Form name for native form participation. */\n @Prop({ reflect: true }) name: string = '';\n\n /**\n * Hover-preview behaviour:\n * - `'preview'` (default) — display the hovered value over the live one.\n * - `'off'` — no hover preview; `value` is the only signal.\n */\n @Prop({ reflect: true }) hover: 'preview' | 'off' = 'preview';\n\n /**\n * Local density rung. Drives the same `--md-sys-density-scale` signal that a\n * global `data-density` ancestor sets, so a local value simply overrides the\n * inherited one. 0 = default, -4 = ultra-compact.\n */\n @Prop({ reflect: true }) density: 0 | -1 | -2 | -3 | -4 = 0;\n\n /** Fires while the user is hovering (or `null` when the cursor leaves). */\n @Event() mdHover: EventEmitter<number | null>;\n\n /** Fires whenever the value changes via interaction. */\n @Event() mdChange: EventEmitter<number>;\n\n @State() private hoveredValue: number | null = null;\n @State() private focused: boolean = false;\n\n /** Initial rating at load, restored on form reset. */\n private initialValue = 0;\n\n componentWillLoad() {\n this.validateValue(this.value);\n this.initialValue = this.value;\n }\n\n @Watch('value')\n validateValue(next: number) {\n if (typeof next !== 'number' || Number.isNaN(next)) {\n this.value = 0;\n return;\n }\n if (next < 0) this.value = 0;\n if (next > this.max) this.value = this.max;\n this.syncFormValue();\n }\n\n /** Re-clamp the value when `max` shrinks, so aria-valuenow can never fall\n * outside the announced [aria-valuemin, aria-valuemax] range. */\n @Watch('max')\n onMaxChange() {\n if (this.value > this.max) this.value = this.max;\n }\n\n /** Restore the initial rating when the owning form is reset. */\n formResetCallback() {\n this.value = this.initialValue;\n }\n\n /** Keep the submitted form value in sync with the rating. */\n private syncFormValue() {\n setFormValue(this.internals, this.value ? String(this.value) : null);\n }\n\n /** Programmatically focus the rating. */\n @Method()\n async focusRating() {\n const root = this.el.shadowRoot;\n const host = root?.querySelector('.md-rating__items') as HTMLElement | null;\n host?.focus();\n }\n\n private get isInteractive(): boolean {\n return !this.readonly && !this.disabled && !this.softDisabled;\n }\n\n private get displayValue(): number {\n return this.hoveredValue != null && this.hover === 'preview'\n ? this.hoveredValue\n : this.value;\n }\n\n private resolveLabel(value: number): string {\n if (this.getLabel) return this.getLabel(value);\n if (value === 0) return 'Empty';\n if (value === 1) return '1 Star';\n return `${value} Stars`;\n }\n\n /**\n * Accessible name for the slider. The focusable node is the shadow-internal\n * slider, so an external `<label>`, `aria-labelledby`, or host `aria-label`\n * can't otherwise name it (IDREFs don't cross the shadow boundary; a host\n * label on a generic host is dropped). We forward it: aria-labelledby (text)\n * → host aria-label → associated `<label>`s (via ElementInternals) → the\n * `rating-label` prop as the attribute-only fallback.\n */\n private resolveAccessibleLabel(): string {\n const host = this.el;\n const root = host.getRootNode() as Document | ShadowRoot;\n const byId = (id: string): Element | null =>\n (root as Document).getElementById?.(id) ??\n (typeof document !== 'undefined' ? document.getElementById(id) : null);\n const joinText = (els: Array<Element | null>) =>\n els.map((el) => el?.textContent?.trim() ?? '').filter(Boolean).join(' ');\n\n const labelledby = host.getAttribute('aria-labelledby');\n if (labelledby) {\n const text = joinText(labelledby.split(/\\s+/).map(byId));\n if (text) return text;\n }\n\n const hostAria = host.getAttribute('aria-label');\n if (hostAria) return hostAria;\n\n const labels = this.internals?.labels;\n if (labels && labels.length) {\n const text = joinText(Array.from(labels) as Element[]);\n if (text) return text;\n }\n\n return this.ratingLabel;\n }\n\n /**\n * Every label the value can take (one per discrete step, 0 → max). Rendered as\n * hidden sizers behind the visible label so its box reserves the widest label's\n * width — otherwise the text swapping on hover (\"1 Star\" → \"3.5 Stars\") would\n * resize the box and reflow the whole component. Icon-agnostic re: getLabel.\n */\n private valueLabelVariants(): string[] {\n const step = this.precision || 1;\n const set = new Set<string>();\n for (let v = 0; v <= this.max + 1e-9; v += step) {\n const val = Math.min(Math.round(v / step) * step, this.max);\n set.add(this.resolveLabel(val));\n }\n return Array.from(set);\n }\n\n private computeValueFromPointer = (\n itemIndex: number,\n e: MouseEvent | PointerEvent,\n itemEl: HTMLElement,\n ): number => {\n if (this.precision === 1) return itemIndex + 1;\n const rect = itemEl.getBoundingClientRect();\n const isRtl = getComputedStyle(this.el).direction === 'rtl';\n const x = e.clientX - rect.left;\n const ratio = isRtl ? 1 - x / rect.width : x / rect.width;\n return itemIndex + (ratio <= 0.5 ? 0.5 : 1);\n };\n\n private handleItemPointerMove = (i: number) => (e: PointerEvent) => {\n if (!this.isInteractive) return;\n if (this.hover === 'off') return;\n const target = e.currentTarget as HTMLElement;\n const next = this.computeValueFromPointer(i, e, target);\n if (next !== this.hoveredValue) {\n this.hoveredValue = next;\n this.mdHover.emit(next);\n }\n };\n\n private handlePointerLeave = () => {\n if (!this.isInteractive) return;\n if (this.hoveredValue == null) return;\n this.hoveredValue = null;\n this.mdHover.emit(null);\n };\n\n private handleItemClick = (i: number) => (e: MouseEvent) => {\n if (!this.isInteractive) return;\n const target = e.currentTarget as HTMLElement;\n let next = this.computeValueFromPointer(i, e, target);\n\n if (next === this.value) {\n next = this.defaultValue;\n }\n\n this.value = next;\n this.mdChange.emit(next);\n };\n\n /**\n * True when ripples are switched off, globally (`data-ripple=\"off\"` on an\n * ancestor) or on this component (`ripple=\"off\"`). Both resolve to\n * `--md-sys-ripple-enabled` in tokens.css §13.\n *\n * md-rating does NOT use the shared md-ripple element — its press effect is a\n * filled copy of the glyph revealed by a WAAPI clip-path animation, so it\n * bypasses the gate in md-ripple entirely and needs its own check to honour\n * the same switch.\n *\n * `=== '0'` deliberately: an unset property returns '' and must mean ENABLED,\n * so a falsiness test would kill ripples wherever the token sheet is absent.\n */\n private rippleSuppressed(): boolean {\n if (typeof getComputedStyle !== 'function') return false;\n try {\n return (\n getComputedStyle(this.el).getPropertyValue('--md-sys-ripple-enabled').trim() === '0'\n );\n } catch {\n return false;\n }\n }\n\n /**\n * Press ripple, clipped to the glyph. The ripple layer is a filled copy of\n * the icon, so an expanding `clip-path: circle()` from the pointer reveals it\n * within the star/heart/bolt silhouette — a shaped ripple that stays\n * icon-agnostic (no hardcoded star geometry). Runs via the Web Animations API\n * so each press restarts cleanly and it no-ops in non-DOM (spec) envs.\n */\n private handleItemPointerDown = () => (e: PointerEvent) => {\n if (!this.isInteractive || this.rippleSuppressed()) return;\n const item = e.currentTarget as HTMLElement;\n const ripple = item.querySelector('.md-rating__icon--ripple') as HTMLElement | null;\n if (!ripple || typeof ripple.animate !== 'function') return;\n const rect = item.getBoundingClientRect();\n const x = rect.width ? ((e.clientX - rect.left) / rect.width) * 100 : 50;\n const y = rect.height ? ((e.clientY - rect.top) / rect.height) * 100 : 50;\n ripple.animate(\n [\n { clipPath: `circle(0% at ${x}% ${y}%)`, opacity: 0.22 },\n { clipPath: `circle(85% at ${x}% ${y}%)`, opacity: 0 },\n ],\n { duration: 420, easing: 'cubic-bezier(0.2, 0, 0, 1)' },\n );\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (!this.isInteractive) return;\n const step = this.precision;\n let next = this.value;\n const isRtl = getComputedStyle(this.el).direction === 'rtl';\n\n switch (e.key) {\n case 'ArrowRight':\n next = isRtl ? this.value - step : this.value + step;\n break;\n case 'ArrowLeft':\n next = isRtl ? this.value + step : this.value - step;\n break;\n case 'ArrowUp':\n next = this.value + step;\n break;\n case 'ArrowDown':\n next = this.value - step;\n break;\n case 'Home':\n next = 0;\n break;\n case 'End':\n next = this.max;\n break;\n default:\n if (/^[0-9]$/.test(e.key)) {\n const digit = Number(e.key);\n if (digit <= this.max) next = digit;\n } else {\n // Not a slider key (e.g. Escape/Tab): let it bubble untouched so a\n // dialog/menu ancestor can still dismiss. Home already clears to 0.\n return;\n }\n }\n e.preventDefault();\n next = Math.max(0, Math.min(this.max, next));\n if (next !== this.value) {\n this.value = next;\n this.mdChange.emit(next);\n }\n };\n\n private handleFocus = () => {\n this.focused = true;\n };\n\n private handleBlur = () => {\n this.focused = false;\n if (this.hoveredValue != null) {\n this.hoveredValue = null;\n this.mdHover.emit(null);\n }\n };\n\n private renderItem(i: number) {\n const value = this.displayValue;\n const filledPortion = Math.max(0, Math.min(1, value - i));\n const isHalf = filledPortion > 0 && filledPortion < 1;\n const isFull = filledPortion >= 1;\n const isEmpty = filledPortion <= 0;\n\n return (\n // A non-interactive <span> (not <button>): the single interactive control\n // is the role=\"slider\" container, so an interactive descendant would trip\n // WAI-ARIA \"nested-interactive\". Pointer handlers still drive selection;\n // keyboard is handled on the slider. aria-hidden keeps it out of the tree.\n <span\n class={{\n 'md-rating__item': true,\n 'md-rating__item--full': isFull,\n 'md-rating__item--half': isHalf,\n 'md-rating__item--empty': isEmpty,\n }}\n part={`item ${isFull ? 'item-full' : isHalf ? 'item-half' : 'item-empty'}`}\n aria-hidden=\"true\"\n onPointerMove={this.handleItemPointerMove(i)}\n onPointerDown={this.handleItemPointerDown()}\n onClick={this.handleItemClick(i)}\n >\n <span class=\"md-rating__icon md-rating__icon--bg material-symbols-outlined\" part=\"icon-empty\">\n {this.outlineEmpty ? this.icon : this.emptyIcon}\n </span>\n <span\n class=\"md-rating__icon md-rating__icon--fg material-symbols-outlined\"\n part=\"icon-filled\"\n style={{ clipPath: `inset(0 ${(1 - filledPortion) * 100}% 0 0)` }}\n >\n {this.icon}\n </span>\n {/* State layer is a third copy of the glyph, so the hover/press overlay\n follows the icon silhouette (star, heart, bolt…) instead of a circle. */}\n <span\n class=\"md-rating__icon md-rating__icon--state material-symbols-outlined\"\n part=\"state-layer\"\n aria-hidden=\"true\"\n >\n {this.icon}\n </span>\n {/* Press ripple, clipped to the glyph via an expanding clip-path circle\n driven from handleItemPointerDown (see there). */}\n <span\n class=\"md-rating__icon md-rating__icon--ripple material-symbols-outlined\"\n part=\"ripple\"\n aria-hidden=\"true\"\n >\n {this.icon}\n </span>\n </span>\n );\n }\n\n render() {\n const tabindex = this.disabled\n ? '-1'\n : this.readonly\n ? undefined\n : '0';\n\n const value = this.value;\n // Readonly renders as role=\"img\" (a static picture of the rating). `img`\n // does NOT support the slider value/orientation/readonly attributes, so\n // emitting them trips WAI-ARIA \"aria-allowed-attr\". Instead the value is\n // folded into the img's accessible NAME (img ignores aria-valuetext), and\n // the slider ARIA is applied only in the interactive branch.\n const interactive = !this.readonly;\n const baseLabel = this.resolveAccessibleLabel();\n const name = interactive\n ? baseLabel\n : `${baseLabel}: ${this.resolveLabel(value)}`;\n\n return (\n <Host\n class={{\n 'md-rating': true,\n [`md-rating--${this.size}`]: true,\n 'md-rating--readonly': this.readonly,\n 'md-rating--disabled': this.disabled,\n 'md-rating--soft-disabled': this.softDisabled,\n 'md-rating--focused': this.focused,\n }}\n >\n <div\n class=\"md-rating__items\"\n role={interactive ? 'slider' : 'img'}\n aria-label={name}\n aria-valuemin={interactive ? 0 : undefined}\n aria-valuemax={interactive ? this.max : undefined}\n aria-valuenow={interactive ? value : undefined}\n aria-valuetext={interactive ? this.resolveLabel(value) : undefined}\n aria-orientation={interactive ? 'horizontal' : undefined}\n aria-readonly={interactive ? 'false' : undefined}\n aria-disabled={interactive && (this.disabled || this.softDisabled) ? 'true' : undefined}\n tabindex={tabindex}\n part=\"items\"\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onPointerLeave={this.handlePointerLeave}\n >\n {Array.from({ length: this.max }, (_, i) => this.renderItem(i))}\n </div>\n {this.showValueLabel && (\n <span class=\"md-rating__value-label\" part=\"value-label\" aria-hidden=\"true\">\n {/* Hidden sizers reserve the widest label's width so the visible text\n swapping on hover doesn't reflow the row (see valueLabelVariants). */}\n {this.valueLabelVariants().map((t) => (\n <span key={t} class=\"md-rating__value-label-sizer\" aria-hidden=\"true\">\n {t}\n </span>\n ))}\n <span class=\"md-rating__value-label-text\">\n {this.resolveLabel(this.displayValue)}\n </span>\n </span>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"+FAAA,MAAMA,EAAc,IAAM,yhM,MCkCbC,EAAQ,MANrB,WAAAC,CAAAC,G,8OAkB0CC,KAAAC,MAAgB,EAIlBD,KAAAE,aAAuB,EAGpCF,KAAAG,IAAc,EAGdH,KAAAI,UAAqB,EAGrBJ,KAAAK,KAAyC,KAGzCL,KAAAM,SAAoB,MAGpBN,KAAAO,SAAoB,MAGQP,KAAAQ,aAAwB,MAGrER,KAAAS,KAAe,OAGYT,KAAAU,UAAoB,OAOFV,KAAAW,aAAwB,KAUrBX,KAAAY,eAA0B,MAY7CZ,KAAAa,YAAsB,SAGlCb,KAAAc,KAAe,GAOfd,KAAAe,MAA2B,UAO3Bf,KAAAgB,QAAiC,EAQzChB,KAAAiB,aAA8B,KAC9BjB,KAAAkB,QAAmB,MAG5BlB,KAAAmB,aAAe,EA+GfnB,KAAAoB,wBAA0B,CAChCC,EACAC,EACAC,KAEA,GAAIvB,KAAKI,YAAc,EAAG,OAAOiB,EAAY,EAC7C,MAAMG,EAAOD,EAAOE,wBACpB,MAAMC,EAAQC,iBAAiB3B,KAAK4B,IAAIC,YAAc,MACtD,MAAMC,EAAIR,EAAES,QAAUP,EAAKQ,KAC3B,MAAMC,EAAQP,EAAQ,EAAII,EAAIN,EAAKU,MAAQJ,EAAIN,EAAKU,MACpD,OAAOb,GAAaY,GAAS,GAAM,GAAM,EAAE,EAGrCjC,KAAAmC,sBAAyBC,GAAed,IAC9C,IAAKtB,KAAKqC,cAAe,OACzB,GAAIrC,KAAKe,QAAU,MAAO,OAC1B,MAAMuB,EAAShB,EAAEiB,cACjB,MAAMC,EAAOxC,KAAKoB,wBAAwBgB,EAAGd,EAAGgB,GAChD,GAAIE,IAASxC,KAAKiB,aAAc,CAC9BjB,KAAKiB,aAAeuB,EACpBxC,KAAKyC,QAAQC,KAAKF,E,GAIdxC,KAAA2C,mBAAqB,KAC3B,IAAK3C,KAAKqC,cAAe,OACzB,GAAIrC,KAAKiB,cAAgB,KAAM,OAC/BjB,KAAKiB,aAAe,KACpBjB,KAAKyC,QAAQC,KAAK,KAAK,EAGjB1C,KAAA4C,gBAAmBR,GAAed,IACxC,IAAKtB,KAAKqC,cAAe,OACzB,MAAMC,EAAShB,EAAEiB,cACjB,IAAIC,EAAOxC,KAAKoB,wBAAwBgB,EAAGd,EAAGgB,GAE9C,GAAIE,IAASxC,KAAKC,MAAO,CACvBuC,EAAOxC,KAAKE,Y,CAGdF,KAAKC,MAAQuC,EACbxC,KAAK6C,SAASH,KAAKF,EAAK,EAkClBxC,KAAA8C,sBAAwB,IAAOxB,IACrC,IAAKtB,KAAKqC,eAAiBrC,KAAK+C,mBAAoB,OACpD,MAAMC,EAAO1B,EAAEiB,cACf,MAAMU,EAASD,EAAKE,cAAc,4BAClC,IAAKD,UAAiBA,EAAOE,UAAY,WAAY,OACrD,MAAM3B,EAAOwB,EAAKvB,wBAClB,MAAMK,EAAIN,EAAKU,OAAUZ,EAAES,QAAUP,EAAKQ,MAAQR,EAAKU,MAAS,IAAM,GACtE,MAAMkB,EAAI5B,EAAK6B,QAAW/B,EAAEgC,QAAU9B,EAAK+B,KAAO/B,EAAK6B,OAAU,IAAM,GACvEJ,EAAOE,QACL,CACE,CAAEK,SAAU,gBAAgB1B,MAAMsB,MAAOK,QAAS,KAClD,CAAED,SAAU,iBAAiB1B,MAAMsB,MAAOK,QAAS,IAErD,CAAEC,SAAU,IAAKC,OAAQ,8BAC1B,EAGK3D,KAAA4D,cAAiBtC,IACvB,IAAKtB,KAAKqC,cAAe,OACzB,MAAMwB,EAAO7D,KAAKI,UAClB,IAAIoC,EAAOxC,KAAKC,MAChB,MAAMyB,EAAQC,iBAAiB3B,KAAK4B,IAAIC,YAAc,MAEtD,OAAQP,EAAEwC,KACR,IAAK,aACHtB,EAAOd,EAAQ1B,KAAKC,MAAQ4D,EAAO7D,KAAKC,MAAQ4D,EAChD,MACF,IAAK,YACHrB,EAAOd,EAAQ1B,KAAKC,MAAQ4D,EAAO7D,KAAKC,MAAQ4D,EAChD,MACF,IAAK,UACHrB,EAAOxC,KAAKC,MAAQ4D,EACpB,MACF,IAAK,YACHrB,EAAOxC,KAAKC,MAAQ4D,EACpB,MACF,IAAK,OACHrB,EAAO,EACP,MACF,IAAK,MACHA,EAAOxC,KAAKG,IACZ,MACF,QACE,GAAI,UAAU4D,KAAKzC,EAAEwC,KAAM,CACzB,MAAME,EAAQC,OAAO3C,EAAEwC,KACvB,GAAIE,GAAShE,KAAKG,IAAKqC,EAAOwB,C,KACzB,CAGL,M,EAGN1C,EAAE4C,iBACF1B,EAAO2B,KAAKhE,IAAI,EAAGgE,KAAKC,IAAIpE,KAAKG,IAAKqC,IACtC,GAAIA,IAASxC,KAAKC,MAAO,CACvBD,KAAKC,MAAQuC,EACbxC,KAAK6C,SAASH,KAAKF,E,GAIfxC,KAAAqE,YAAc,KACpBrE,KAAKkB,QAAU,IAAI,EAGblB,KAAAsE,WAAa,KACnBtE,KAAKkB,QAAU,MACf,GAAIlB,KAAKiB,cAAgB,KAAM,CAC7BjB,KAAKiB,aAAe,KACpBjB,KAAKyC,QAAQC,KAAK,K,EAgIvB,CA5XC,iBAAA6B,GACEvE,KAAKwE,cAAcxE,KAAKC,OACxBD,KAAKmB,aAAenB,KAAKC,K,CAI3B,aAAAuE,CAAchC,GACZ,UAAWA,IAAS,UAAYyB,OAAOQ,MAAMjC,GAAO,CAClDxC,KAAKC,MAAQ,EACb,M,CAEF,GAAIuC,EAAO,EAAGxC,KAAKC,MAAQ,EAC3B,GAAIuC,EAAOxC,KAAKG,IAAKH,KAAKC,MAAQD,KAAKG,IACvCH,KAAK0E,e,CAMP,WAAAC,GACE,GAAI3E,KAAKC,MAAQD,KAAKG,IAAKH,KAAKC,MAAQD,KAAKG,G,CAI/C,iBAAAyE,GACE5E,KAAKC,MAAQD,KAAKmB,Y,CAIZ,aAAAuD,GACNG,EAAa7E,KAAK8E,UAAW9E,KAAKC,MAAQ8E,OAAO/E,KAAKC,OAAS,K,CAKjE,iBAAM+E,GACJ,MAAMC,EAAOjF,KAAK4B,GAAGsD,WACrB,MAAMC,EAAOF,GAAM/B,cAAc,qBACjCiC,GAAMC,O,CAGR,iBAAY/C,GACV,OAAQrC,KAAKM,WAAaN,KAAKO,WAAaP,KAAKQ,Y,CAGnD,gBAAY6E,GACV,OAAOrF,KAAKiB,cAAgB,MAAQjB,KAAKe,QAAU,UAC/Cf,KAAKiB,aACLjB,KAAKC,K,CAGH,YAAAqF,CAAarF,GACnB,GAAID,KAAKuF,SAAU,OAAOvF,KAAKuF,SAAStF,GACxC,GAAIA,IAAU,EAAG,MAAO,QACxB,GAAIA,IAAU,EAAG,MAAO,SACxB,MAAO,GAAGA,S,CAWJ,sBAAAuF,GACN,MAAML,EAAOnF,KAAK4B,GAClB,MAAMqD,EAAOE,EAAKM,cAClB,MAAMC,EAAQC,GACXV,EAAkBW,iBAAiBD,YAC5BE,WAAa,YAAcA,SAASD,eAAeD,GAAM,MACnE,MAAMG,EAAYC,GAChBA,EAAIC,KAAKpE,GAAOA,GAAIqE,aAAaC,QAAU,KAAIC,OAAOC,SAASC,KAAK,KAEtE,MAAMC,EAAanB,EAAKoB,aAAa,mBACrC,GAAID,EAAY,CACd,MAAME,EAAOV,EAASQ,EAAWG,MAAM,OAAOT,IAAIN,IAClD,GAAIc,EAAM,OAAOA,C,CAGnB,MAAME,EAAWvB,EAAKoB,aAAa,cACnC,GAAIG,EAAU,OAAOA,EAErB,MAAMC,EAAS3G,KAAK8E,WAAW6B,OAC/B,GAAIA,GAAUA,EAAOC,OAAQ,CAC3B,MAAMJ,EAAOV,EAASe,MAAMC,KAAKH,IACjC,GAAIH,EAAM,OAAOA,C,CAGnB,OAAOxG,KAAKa,W,CASN,kBAAAkG,GACN,MAAMlD,EAAO7D,KAAKI,WAAa,EAC/B,MAAM4G,EAAM,IAAIC,IAChB,IAAK,IAAIC,EAAI,EAAGA,GAAKlH,KAAKG,IAAM,KAAM+G,GAAKrD,EAAM,CAC/C,MAAMsD,EAAMhD,KAAKC,IAAID,KAAKiD,MAAMF,EAAIrD,GAAQA,EAAM7D,KAAKG,KACvD6G,EAAIK,IAAIrH,KAAKsF,aAAa6B,G,CAE5B,OAAON,MAAMC,KAAKE,E,CA4DZ,gBAAAjE,GACN,UAAWpB,mBAAqB,WAAY,OAAO,MACnD,IACE,OACEA,iBAAiB3B,KAAK4B,IAAI0F,iBAAiB,2BAA2BpB,SAAW,G,CAEnF,MACA,OAAO,K,EAmFH,UAAAqB,CAAWnF,GACjB,MAAMnC,EAAQD,KAAKqF,aACnB,MAAMmC,EAAgBrD,KAAKhE,IAAI,EAAGgE,KAAKC,IAAI,EAAGnE,EAAQmC,IACtD,MAAMqF,EAASD,EAAgB,GAAKA,EAAgB,EACpD,MAAME,EAASF,GAAiB,EAChC,MAAMG,EAAUH,GAAiB,EAEjC,OAKEI,EAAA,QACEC,MAAO,CACL,kBAAmB,KACnB,wBAAyBH,EACzB,wBAAyBD,EACzB,yBAA0BE,GAE5BG,KAAM,QAAQJ,EAAS,YAAcD,EAAS,YAAc,eAAc,cAC9D,OACZM,cAAe/H,KAAKmC,sBAAsBC,GAC1C4F,cAAehI,KAAK8C,wBACpBmF,QAASjI,KAAK4C,gBAAgBR,IAE9BwF,EAAA,QAAMC,MAAM,gEAAgEC,KAAK,cAC9E9H,KAAKW,aAAeX,KAAKS,KAAOT,KAAKU,WAExCkH,EAAA,QACEC,MAAM,gEACNC,KAAK,cACLI,MAAO,CAAE1E,SAAU,YAAY,EAAIgE,GAAiB,cAEnDxH,KAAKS,MAIRmH,EAAA,QACEC,MAAM,mEACNC,KAAK,cAAa,cACN,QAEX9H,KAAKS,MAIRmH,EAAA,QACEC,MAAM,oEACNC,KAAK,SAAQ,cACD,QAEX9H,KAAKS,M,CAMd,MAAA0H,GACE,MAAMC,EAAWpI,KAAKO,SAClB,KACAP,KAAKM,SACH+H,UACA,IAEN,MAAMpI,EAAQD,KAAKC,MAMnB,MAAMqI,GAAetI,KAAKM,SAC1B,MAAMiI,EAAYvI,KAAKwF,yBACvB,MAAM1E,EAAOwH,EACTC,EACA,GAAGA,MAAcvI,KAAKsF,aAAarF,KAEvC,OACE2H,EAACY,EAAI,CAAA1E,IAAA,2CACH+D,MAAO,CACL,YAAa,KACb,CAAC,cAAc7H,KAAKK,QAAS,KAC7B,sBAAuBL,KAAKM,SAC5B,sBAAuBN,KAAKO,SAC5B,2BAA4BP,KAAKQ,aACjC,qBAAsBR,KAAKkB,UAG7B0G,EAAA,OAAA9D,IAAA,2CACE+D,MAAM,mBACNY,KAAMH,EAAc,SAAW,MAAK,aACxBxH,EAAI,gBACDwH,EAAc,EAAID,UAAS,gBAC3BC,EAActI,KAAKG,IAAMkI,UAAS,gBAClCC,EAAcrI,EAAQoI,UAAS,iBAC9BC,EAActI,KAAKsF,aAAarF,GAASoI,UAAS,mBAChDC,EAAc,aAAeD,UAAS,gBACzCC,EAAc,QAAUD,UAAS,gBACjCC,IAAgBtI,KAAKO,UAAYP,KAAKQ,cAAgB,OAAS6H,UAC9ED,SAAUA,EACVN,KAAK,QACLY,UAAW1I,KAAK4D,cAChB+E,QAAS3I,KAAKqE,YACduE,OAAQ5I,KAAKsE,WACbuE,eAAgB7I,KAAK2C,oBAEpBkE,MAAMC,KAAK,CAAEF,OAAQ5G,KAAKG,MAAO,CAAC2I,EAAG1G,IAAMpC,KAAKuH,WAAWnF,MAE7DpC,KAAKY,gBACJgH,EAAA,QAAA9D,IAAA,2CAAM+D,MAAM,yBAAyBC,KAAK,cAAa,cAAa,QAGjE9H,KAAK+G,qBAAqBf,KAAK+C,GAC9BnB,EAAA,QAAM9D,IAAKiF,EAAGlB,MAAM,+BAA8B,cAAa,QAC5DkB,KAGLnB,EAAA,QAAA9D,IAAA,2CAAM+D,MAAM,+BACT7H,KAAKsF,aAAatF,KAAKqF,gB","ignoreList":[]}
1
+ {"version":3,"names":["mdRatingCss","MdRating","constructor","hostRef","this","value","defaultValue","max","precision","size","readonly","disabled","softDisabled","icon","emptyIcon","outlineEmpty","showValueLabel","ratingLabel","name","hover","density","hoveredValue","focused","initialValue","computeValueFromPointer","itemIndex","e","itemEl","rect","getBoundingClientRect","isRtl","getComputedStyle","el","direction","x","clientX","left","ratio","width","handleItemPointerMove","i","isInteractive","target","currentTarget","next","mdHover","emit","handlePointerLeave","handleItemClick","mdChange","handleItemPointerDown","rippleSuppressed","item","ripple","querySelector","animate","y","height","clientY","top","clipPath","opacity","duration","easing","handleKeyDown","step","key","test","digit","Number","preventDefault","Math","min","handleFocus","handleBlur","componentWillLoad","validateValue","isNaN","syncFormValue","onMaxChange","formResetCallback","setFormValue","internals","String","focusRating","root","shadowRoot","host","focus","displayValue","resolveLabel","getLabel","resolveAccessibleLabel","getRootNode","byId","id","getElementById","document","joinText","els","map","textContent","trim","filter","Boolean","join","labelledby","getAttribute","text","split","hostAria","labels","length","Array","from","valueLabelVariants","set","Set","v","val","round","add","getPropertyValue","renderItem","filledPortion","isHalf","isFull","isEmpty","h","class","part","onPointerMove","onPointerDown","onClick","style","render","tabindex","undefined","interactive","baseLabel","Host","role","onKeyDown","onFocus","onBlur","onPointerLeave","_","t"],"sources":["src/components/md-rating/md-rating.css?tag=md-rating&encapsulation=shadow","src/components/md-rating/md-rating.tsx"],"sourcesContent":["/* ==========================================================\n md-rating — Material Design 3 Expressive Rating\n Spec: https://m3.material.io/styles/motion/overview\n Reference parity: https://mui.com/material-ui/react-rating/\n\n PUBLIC CSS CUSTOM PROPERTIES (override per-instance):\n --md-rating-item-size Icon dimension (per `size`)\n --md-rating-item-gap Space between items\n --md-rating-active-color Filled icon color\n --md-rating-inactive-color Empty icon color\n --md-rating-focus-ring-color Focus ring color\n --md-rating-focus-ring-width Focus ring width\n --md-rating-focus-ring-offset Focus ring offset\n --md-rating-state-layer-color Hover / press overlay color\n --md-rating-value-label-color Color of the inline value label\n --md-rating-value-label-font Font of the value label\n --md-rating-pop-scale Scale on hover/active (MD3 Expressive)\n --md-rating-duration Animation duration\n\n CSS PARTS:\n items The slider container\n item Each star/icon button\n item-full A fully filled item\n item-half A half-filled item\n item-empty An empty item\n icon-empty The background (outline) icon\n icon-filled The clipped foreground (filled) icon\n state-layer Hover / press overlay — a filled glyph tracing the icon shape\n ripple Press ripple — a glyph-clipped expanding circle\n value-label The inline numeric value label\n ========================================================== */\n\n:host {\n --_size: var(--md-rating-item-size, max(12px, calc(28px + var(--md-sys-density-scale, 0) * 2px)));\n --_gap: var(--md-rating-item-gap, var(--md-sys-spacing-gap-xs, 4px));\n --_active-color: var(--md-rating-active-color, var(--md-sys-color-secondary, #FFB400));\n --_inactive-color: var(--md-rating-inactive-color, color-mix(in srgb, var(--md-sys-color-on-surface-variant) 30%, transparent));\n --_focus-ring-color: var(--md-rating-focus-ring-color, var(--md-sys-color-secondary));\n --_focus-ring-width: var(--md-rating-focus-ring-width, 3px);\n --_focus-ring-offset: var(--md-rating-focus-ring-offset, 2px);\n --_state-layer-color: var(--md-rating-state-layer-color, var(--md-sys-color-on-surface));\n --_label-color: var(--md-rating-value-label-color, var(--md-sys-color-on-surface));\n --_label-font: var(\n --md-rating-value-label-font,\n var(--md-sys-typescale-label-medium-font, system-ui)\n );\n --_pop-scale: var(--md-rating-pop-scale, 1.12);\n --_duration: var(--md-rating-duration, var(--md-sys-motion-duration-short3, 150ms));\n\n display: inline-flex;\n align-items: center;\n gap: var(--md-sys-spacing-gap-md, 12px);\n color: var(--_active-color);\n vertical-align: middle;\n}\n\n/* Size scale — MD3 Expressive density variants. */\n:host([size=\"xs\"]) { --_size: var(--md-rating-item-size, max(12px, calc(16px + var(--md-sys-density-scale, 0) * 2px))); }\n:host([size=\"sm\"]) { --_size: var(--md-rating-item-size, max(12px, calc(20px + var(--md-sys-density-scale, 0) * 2px))); }\n:host([size=\"md\"]) { --_size: var(--md-rating-item-size, max(12px, calc(28px + var(--md-sys-density-scale, 0) * 2px))); }\n:host([size=\"lg\"]) { --_size: var(--md-rating-item-size, max(12px, calc(36px + var(--md-sys-density-scale, 0) * 2px))); }\n:host([size=\"xl\"]) { --_size: var(--md-rating-item-size, max(12px, calc(48px + var(--md-sys-density-scale, 0) * 2px))); }\n\n.md-rating__items {\n display: inline-flex;\n align-items: center;\n gap: var(--_gap);\n position: relative;\n border-radius: var(--md-sys-shape-corner-full, 999px);\n outline: none;\n}\n\n.md-rating__items:focus-visible {\n outline: var(--_focus-ring-width) solid var(--_focus-ring-color);\n outline-offset: var(--_focus-ring-offset);\n}\n\n/* ── Item ─────────────────────────────────────────────────────── */\n\n.md-rating__item {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: var(--_size);\n block-size: var(--_size);\n padding: 0;\n margin: 0;\n border: 0;\n background: transparent;\n cursor: pointer;\n border-radius: 50%;\n color: inherit;\n font: inherit;\n transition:\n transform var(--_duration) var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)),\n color var(--_duration) ease;\n -webkit-tap-highlight-color: transparent;\n /* Composite the item so the hover pop scales the cached raster instead of\n re-hinting the font glyphs every frame — kills the edge shimmer/jitter. */\n will-change: transform;\n backface-visibility: hidden;\n}\n\n:host(.md-rating--readonly) .md-rating__item,\n:host(.md-rating--disabled) .md-rating__item,\n:host(.md-rating--soft-disabled) .md-rating__item {\n cursor: default;\n}\n\n.md-rating__item:hover {\n transform: scale(var(--_pop-scale));\n}\n\n:host(.md-rating--readonly) .md-rating__item:hover,\n:host(.md-rating--disabled) .md-rating__item:hover,\n:host(.md-rating--soft-disabled) .md-rating__item:hover {\n transform: none;\n}\n\n/* ── Icons ────────────────────────────────────────────────────── */\n\n.md-rating__icon {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: var(--md-rating-icon-font-family, 'Material Symbols Rounded', 'Material Symbols Outlined', 'Material Icons');\n font-size: var(--_size);\n font-weight: normal;\n font-style: normal;\n letter-spacing: normal;\n text-transform: none;\n line-height: 1;\n white-space: nowrap;\n direction: ltr;\n pointer-events: none;\n -webkit-font-smoothing: antialiased;\n font-feature-settings: 'liga';\n font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;\n}\n\n.md-rating__icon--bg {\n color: var(--_inactive-color);\n}\n\n.md-rating__icon--fg {\n color: var(--_active-color);\n font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;\n}\n\n/* Outline-empty styling: use the filled glyph with the inactive\n colour for both layers so the outline silhouette is preserved. */\n:host([outline-empty]) .md-rating__icon--bg {\n font-variation-settings: 'FILL' 0, 'wght' 500, 'GRAD' 0, 'opsz' 24;\n}\n\n/* ── State layer ──────────────────────────────────────────────── */\n\n/* The hover/press overlay is a filled copy of the glyph, so the state\n layer traces the icon silhouette (a star, heart, bolt…) instead of the\n old circle. It sits on top of the icons and tints them within their own\n shape. */\n.md-rating__icon--state {\n color: var(--_state-layer-color);\n opacity: 0;\n font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;\n transition: opacity var(--_duration) ease;\n}\n\n.md-rating__item:hover .md-rating__icon--state {\n opacity: var(--md-sys-state-hover-state-layer-opacity, 0.08);\n}\n\n.md-rating__item:active .md-rating__icon--state {\n opacity: var(--md-sys-state-pressed-state-layer-opacity, 0.12);\n}\n\n:host(.md-rating--readonly) .md-rating__icon--state,\n:host(.md-rating--disabled) .md-rating__icon--state,\n:host(.md-rating--soft-disabled) .md-rating__icon--state {\n display: none;\n}\n\n/* ── Press ripple ─────────────────────────────────────────────── */\n\n/* A filled copy of the glyph, invisible at rest. handleItemPointerDown drives\n an expanding `clip-path: circle()` + fade over it via the Web Animations API,\n so the ripple reveals within the icon silhouette. */\n.md-rating__icon--ripple {\n color: var(--_state-layer-color);\n opacity: 0;\n font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;\n}\n\n:host(.md-rating--readonly) .md-rating__icon--ripple,\n:host(.md-rating--disabled) .md-rating__icon--ripple,\n:host(.md-rating--soft-disabled) .md-rating__icon--ripple {\n display: none;\n}\n\n/* ── Value label ──────────────────────────────────────────────── */\n\n.md-rating__value-label {\n /* Grid-stack the visible text over the hidden sizers so the box always\n reserves the widest label's width — the text can change on hover without\n resizing the box and reflowing the row. */\n display: inline-grid;\n place-items: center start;\n font: var(--_label-font);\n font-size: var(--md-sys-typescale-label-large-size, 14px);\n font-weight: var(--md-sys-typescale-label-large-weight, 500);\n color: var(--_label-color);\n white-space: nowrap;\n font-variant-numeric: tabular-nums;\n}\n\n.md-rating__value-label > * {\n grid-area: 1 / 1;\n}\n\n.md-rating__value-label-sizer {\n visibility: hidden;\n pointer-events: none;\n}\n\n/* ── Disabled / readonly visuals ──────────────────────────────── */\n\n:host(.md-rating--disabled) {\n opacity: var(--md-sys-state-disabled-content-opacity, 0.38);\n pointer-events: none;\n}\n\n:host(.md-rating--soft-disabled) {\n opacity: var(--md-sys-state-disabled-content-opacity, 0.38);\n}\n\n:host(.md-rating--soft-disabled) .md-rating__items {\n pointer-events: none;\n}\n\n/* Allow keyboard focus on soft-disabled. */\n:host(.md-rating--soft-disabled) .md-rating__items {\n pointer-events: auto;\n}\n\n:host(.md-rating--soft-disabled) .md-rating__item {\n pointer-events: none;\n}\n\n/* ── RTL mirroring ─────────────────────────────────────────────── */\n\n:host-context([dir=\"rtl\"]) .md-rating__items,\n:host([dir=\"rtl\"]) .md-rating__items {\n flex-direction: row-reverse;\n}\n\n/* ── Reduced motion ────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .md-rating__item,\n .md-rating__icon--state {\n transition: none;\n }\n .md-rating__item:hover {\n transform: none;\n }\n}\n\n/* ── Material Symbols font (shadow-root scope) ─────────────────── */\n\n/* Shadow DOM doesn't inherit page-level font-family rules, so the\n `.material-symbols-outlined` class on our internal icon spans\n needs its own font declaration here. Mirrors md-button.css. */\n.material-symbols-outlined {\n font-family: var(--md-rating-icon-font-family, 'Material Symbols Rounded', 'Material Symbols Outlined', 'Material Icons');\n font-weight: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n overflow-wrap: normal;\n direction: ltr;\n font-feature-settings: 'liga';\n -webkit-font-smoothing: antialiased;\n}\n\n/* ==========================================================\n DENSITY (local override)\n Maps the local `density` prop onto the same --md-sys-density-scale signal a\n global `data-density` ancestor sets. Declared on :host, so a local rung wins\n over the inherited global one. Every density-sensitive value in this file\n derives from that single signal by calc — never add a fixed per-rung ladder.\n ========================================================== */\n:host([density='-1']) { --md-sys-density-scale: -1; }\n:host([density='-2']) { --md-sys-density-scale: -2; }\n:host([density='-3']) { --md-sys-density-scale: -3; }\n:host([density='-4']) { --md-sys-density-scale: -4; }\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Event,\n EventEmitter,\n Element,\n Watch,\n Method,\n AttachInternals,\n} from '@stencil/core';\nimport { setFormValue } from '../../utils/form';\n\n/**\n * `md-rating` — Material Design 3 Expressive Rating control.\n *\n * A star-rating input: configurable max, half-step precision, custom icons\n * (Material Symbols glyphs OR slotted SVG/HTML), per-value icons\n * (filled / empty), hover preview, read-only and disabled modes,\n * keyboard navigation (Arrow + Home/End), and reset to zero.\n *\n * MD3 Expressive: items animate with a brief tonal \"scale-up\" pop on\n * hover and selection; press uses a state-layer + ripple. The\n * underlying ARIA pattern is a slider so screen readers announce the\n * value as a continuous range.\n */\n@Component({\n tag: 'md-rating',\n styleUrl: 'md-rating.css',\n shadow: true,\n formAssociated: true,\n})\nexport class MdRating {\n @Element() el!: HTMLElement;\n\n /**\n * Form-association handle. The rating submits its `value` under the host's\n * `name` via `setFormValue`, so it participates in `<form>`/`FormData`\n * natively — a hidden `<input>` in the shadow root would be invisible to\n * `FormData`.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /** Current numeric rating (0 → max, half-steps when precision = 0.5). */\n @Prop({ mutable: true, reflect: true }) value: number = 0;\n\n /** Default value used when the consumer clears the rating (re-clicking the\n * current value). */\n @Prop({ attribute: 'default-value' }) defaultValue: number = 0;\n\n /** Maximum rating (number of items rendered). */\n @Prop({ reflect: true }) max: number = 5;\n\n /** Step size — `1` (full only) or `0.5` (half). */\n @Prop({ reflect: true }) precision: 1 | 0.5 = 1;\n\n /** Size of each item. */\n @Prop({ reflect: true }) size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n /** Read-only — purely decorative; no interaction, no focus. */\n @Prop({ reflect: true }) readonly: boolean = false;\n\n /** Disabled — non-interactive and visually dimmed; not focusable. */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Soft-disabled — disabled visuals but remains focusable for discoverability. */\n @Prop({ reflect: true, attribute: 'soft-disabled' }) softDisabled: boolean = false;\n\n /** Material Symbols glyph used for *filled* items. */\n @Prop() icon: string = 'star';\n\n /** Material Symbols glyph used for *empty* items. */\n @Prop({ attribute: 'empty-icon' }) emptyIcon: string = 'star';\n\n /**\n * Use the *filled* glyph for empty items as well, drawn with the\n * outline-only color treatment — a solid silhouette outline behind\n * the fill.\n */\n @Prop({ attribute: 'outline-empty', reflect: true }) outlineEmpty: boolean = true;\n\n /**\n * Optional label provider — `el.getLabel = (v) => \"${v} Stars\"`. Used\n * by the hidden screen-reader text and the visible value label\n * when `show-value-label` is set.\n */\n @Prop() getLabel?: (value: number) => string;\n\n /** When true, render the current numeric value beside the items. */\n @Prop({ attribute: 'show-value-label', reflect: true }) showValueLabel: boolean = false;\n\n /** Accessible label for the slider role. */\n /**\n * Accessible name for the rating control.\n *\n * The attribute is `rating-label`, NOT `aria-label-rating`. Anything starting\n * with `aria-` is parsed as an ARIA attribute, and `aria-label-rating` is not\n * one — so the previous name made axe report a CRITICAL `aria-valid-attr`\n * violation on every consumer that used the documented API. The value still\n * ends up as the host's accessible name; only the attribute spelling changed.\n */\n @Prop({ attribute: 'rating-label' }) ratingLabel: string = 'Rating';\n\n /** Form name for native form participation. */\n @Prop({ reflect: true }) name: string = '';\n\n /**\n * Hover-preview behaviour:\n * - `'preview'` (default) — display the hovered value over the live one.\n * - `'off'` — no hover preview; `value` is the only signal.\n */\n @Prop({ reflect: true }) hover: 'preview' | 'off' = 'preview';\n\n /**\n * Local density rung. Drives the same `--md-sys-density-scale` signal that a\n * global `data-density` ancestor sets, so a local value simply overrides the\n * inherited one. 0 = default, -4 = ultra-compact.\n */\n @Prop({ reflect: true }) density: 0 | -1 | -2 | -3 | -4 = 0;\n\n /** Fires while the user is hovering (or `null` when the cursor leaves). */\n @Event() mdHover: EventEmitter<number | null>;\n\n /** Fires whenever the value changes via interaction. */\n @Event() mdChange: EventEmitter<number>;\n\n @State() private hoveredValue: number | null = null;\n @State() private focused: boolean = false;\n\n /** Initial rating at load, restored on form reset. */\n private initialValue = 0;\n\n componentWillLoad() {\n this.validateValue(this.value);\n this.initialValue = this.value;\n }\n\n @Watch('value')\n validateValue(next: number) {\n if (typeof next !== 'number' || Number.isNaN(next)) {\n this.value = 0;\n return;\n }\n if (next < 0) this.value = 0;\n if (next > this.max) this.value = this.max;\n this.syncFormValue();\n }\n\n /** Re-clamp the value when `max` shrinks, so aria-valuenow can never fall\n * outside the announced [aria-valuemin, aria-valuemax] range. */\n @Watch('max')\n onMaxChange() {\n if (this.value > this.max) this.value = this.max;\n }\n\n /** Restore the initial rating when the owning form is reset. */\n formResetCallback() {\n this.value = this.initialValue;\n }\n\n /** Keep the submitted form value in sync with the rating. */\n private syncFormValue() {\n setFormValue(this.internals, this.value ? String(this.value) : null);\n }\n\n /** Programmatically focus the rating. */\n @Method()\n async focusRating() {\n const root = this.el.shadowRoot;\n const host = root?.querySelector('.md-rating__items') as HTMLElement | null;\n host?.focus();\n }\n\n private get isInteractive(): boolean {\n return !this.readonly && !this.disabled && !this.softDisabled;\n }\n\n private get displayValue(): number {\n return this.hoveredValue != null && this.hover === 'preview'\n ? this.hoveredValue\n : this.value;\n }\n\n private resolveLabel(value: number): string {\n if (this.getLabel) return this.getLabel(value);\n if (value === 0) return 'Empty';\n if (value === 1) return '1 Star';\n return `${value} Stars`;\n }\n\n /**\n * Accessible name for the slider. The focusable node is the shadow-internal\n * slider, so an external `<label>`, `aria-labelledby`, or host `aria-label`\n * can't otherwise name it (IDREFs don't cross the shadow boundary; a host\n * label on a generic host is dropped). We forward it: aria-labelledby (text)\n * → host aria-label → associated `<label>`s (via ElementInternals) → the\n * `rating-label` prop as the attribute-only fallback.\n */\n private resolveAccessibleLabel(): string {\n const host = this.el;\n const root = host.getRootNode() as Document | ShadowRoot;\n const byId = (id: string): Element | null =>\n (root as Document).getElementById?.(id) ??\n (typeof document !== 'undefined' ? document.getElementById(id) : null);\n const joinText = (els: Array<Element | null>) =>\n els.map((el) => el?.textContent?.trim() ?? '').filter(Boolean).join(' ');\n\n const labelledby = host.getAttribute('aria-labelledby');\n if (labelledby) {\n const text = joinText(labelledby.split(/\\s+/).map(byId));\n if (text) return text;\n }\n\n const hostAria = host.getAttribute('aria-label');\n if (hostAria) return hostAria;\n\n const labels = this.internals?.labels;\n if (labels && labels.length) {\n const text = joinText(Array.from(labels) as Element[]);\n if (text) return text;\n }\n\n return this.ratingLabel;\n }\n\n /**\n * Every label the value can take (one per discrete step, 0 → max). Rendered as\n * hidden sizers behind the visible label so its box reserves the widest label's\n * width — otherwise the text swapping on hover (\"1 Star\" → \"3.5 Stars\") would\n * resize the box and reflow the whole component. Icon-agnostic re: getLabel.\n */\n private valueLabelVariants(): string[] {\n const step = this.precision || 1;\n const set = new Set<string>();\n for (let v = 0; v <= this.max + 1e-9; v += step) {\n const val = Math.min(Math.round(v / step) * step, this.max);\n set.add(this.resolveLabel(val));\n }\n return Array.from(set);\n }\n\n private computeValueFromPointer = (\n itemIndex: number,\n e: MouseEvent | PointerEvent,\n itemEl: HTMLElement,\n ): number => {\n if (this.precision === 1) return itemIndex + 1;\n const rect = itemEl.getBoundingClientRect();\n const isRtl = getComputedStyle(this.el).direction === 'rtl';\n const x = e.clientX - rect.left;\n const ratio = isRtl ? 1 - x / rect.width : x / rect.width;\n return itemIndex + (ratio <= 0.5 ? 0.5 : 1);\n };\n\n private handleItemPointerMove = (i: number) => (e: PointerEvent) => {\n if (!this.isInteractive) return;\n if (this.hover === 'off') return;\n const target = e.currentTarget as HTMLElement;\n const next = this.computeValueFromPointer(i, e, target);\n if (next !== this.hoveredValue) {\n this.hoveredValue = next;\n this.mdHover.emit(next);\n }\n };\n\n private handlePointerLeave = () => {\n if (!this.isInteractive) return;\n if (this.hoveredValue == null) return;\n this.hoveredValue = null;\n this.mdHover.emit(null);\n };\n\n private handleItemClick = (i: number) => (e: MouseEvent) => {\n if (!this.isInteractive) return;\n const target = e.currentTarget as HTMLElement;\n let next = this.computeValueFromPointer(i, e, target);\n\n if (next === this.value) {\n next = this.defaultValue;\n }\n\n this.value = next;\n this.mdChange.emit(next);\n };\n\n /**\n * True when ripples are switched off, globally (`data-ripple=\"off\"` on an\n * ancestor) or on this component (`ripple=\"off\"`). Both resolve to\n * `--md-sys-ripple-enabled` in tokens.css §13.\n *\n * md-rating does NOT use the shared md-ripple element — its press effect is a\n * filled copy of the glyph revealed by a WAAPI clip-path animation, so it\n * bypasses the gate in md-ripple entirely and needs its own check to honour\n * the same switch.\n *\n * `=== '0'` deliberately: an unset property returns '' and must mean ENABLED,\n * so a falsiness test would kill ripples wherever the token sheet is absent.\n */\n private rippleSuppressed(): boolean {\n if (typeof getComputedStyle !== 'function') return false;\n try {\n return (\n getComputedStyle(this.el).getPropertyValue('--md-sys-ripple-enabled').trim() === '0'\n );\n } catch {\n return false;\n }\n }\n\n /**\n * Press ripple, clipped to the glyph. The ripple layer is a filled copy of\n * the icon, so an expanding `clip-path: circle()` from the pointer reveals it\n * within the star/heart/bolt silhouette — a shaped ripple that stays\n * icon-agnostic (no hardcoded star geometry). Runs via the Web Animations API\n * so each press restarts cleanly and it no-ops in non-DOM (spec) envs.\n */\n private handleItemPointerDown = () => (e: PointerEvent) => {\n if (!this.isInteractive || this.rippleSuppressed()) return;\n const item = e.currentTarget as HTMLElement;\n const ripple = item.querySelector('.md-rating__icon--ripple') as HTMLElement | null;\n if (!ripple || typeof ripple.animate !== 'function') return;\n const rect = item.getBoundingClientRect();\n const x = rect.width ? ((e.clientX - rect.left) / rect.width) * 100 : 50;\n const y = rect.height ? ((e.clientY - rect.top) / rect.height) * 100 : 50;\n ripple.animate(\n [\n { clipPath: `circle(0% at ${x}% ${y}%)`, opacity: 0.22 },\n { clipPath: `circle(85% at ${x}% ${y}%)`, opacity: 0 },\n ],\n { duration: 420, easing: 'cubic-bezier(0.2, 0, 0, 1)' },\n );\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (!this.isInteractive) return;\n const step = this.precision;\n let next = this.value;\n const isRtl = getComputedStyle(this.el).direction === 'rtl';\n\n switch (e.key) {\n case 'ArrowRight':\n next = isRtl ? this.value - step : this.value + step;\n break;\n case 'ArrowLeft':\n next = isRtl ? this.value + step : this.value - step;\n break;\n case 'ArrowUp':\n next = this.value + step;\n break;\n case 'ArrowDown':\n next = this.value - step;\n break;\n case 'Home':\n next = 0;\n break;\n case 'End':\n next = this.max;\n break;\n default:\n if (/^[0-9]$/.test(e.key)) {\n const digit = Number(e.key);\n if (digit <= this.max) next = digit;\n } else {\n // Not a slider key (e.g. Escape/Tab): let it bubble untouched so a\n // dialog/menu ancestor can still dismiss. Home already clears to 0.\n return;\n }\n }\n e.preventDefault();\n next = Math.max(0, Math.min(this.max, next));\n if (next !== this.value) {\n this.value = next;\n this.mdChange.emit(next);\n }\n };\n\n private handleFocus = () => {\n this.focused = true;\n };\n\n private handleBlur = () => {\n this.focused = false;\n if (this.hoveredValue != null) {\n this.hoveredValue = null;\n this.mdHover.emit(null);\n }\n };\n\n private renderItem(i: number) {\n const value = this.displayValue;\n const filledPortion = Math.max(0, Math.min(1, value - i));\n const isHalf = filledPortion > 0 && filledPortion < 1;\n const isFull = filledPortion >= 1;\n const isEmpty = filledPortion <= 0;\n\n return (\n // A non-interactive <span> (not <button>): the single interactive control\n // is the role=\"slider\" container, so an interactive descendant would trip\n // WAI-ARIA \"nested-interactive\". Pointer handlers still drive selection;\n // keyboard is handled on the slider. aria-hidden keeps it out of the tree.\n <span\n class={{\n 'md-rating__item': true,\n 'md-rating__item--full': isFull,\n 'md-rating__item--half': isHalf,\n 'md-rating__item--empty': isEmpty,\n }}\n part={`item ${isFull ? 'item-full' : isHalf ? 'item-half' : 'item-empty'}`}\n aria-hidden=\"true\"\n onPointerMove={this.handleItemPointerMove(i)}\n onPointerDown={this.handleItemPointerDown()}\n onClick={this.handleItemClick(i)}\n >\n <span class=\"md-rating__icon md-rating__icon--bg material-symbols-outlined\" part=\"icon-empty\">\n {this.outlineEmpty ? this.icon : this.emptyIcon}\n </span>\n <span\n class=\"md-rating__icon md-rating__icon--fg material-symbols-outlined\"\n part=\"icon-filled\"\n style={{ clipPath: `inset(0 ${(1 - filledPortion) * 100}% 0 0)` }}\n >\n {this.icon}\n </span>\n {/* State layer is a third copy of the glyph, so the hover/press overlay\n follows the icon silhouette (star, heart, bolt…) instead of a circle. */}\n <span\n class=\"md-rating__icon md-rating__icon--state material-symbols-outlined\"\n part=\"state-layer\"\n aria-hidden=\"true\"\n >\n {this.icon}\n </span>\n {/* Press ripple, clipped to the glyph via an expanding clip-path circle\n driven from handleItemPointerDown (see there). */}\n <span\n class=\"md-rating__icon md-rating__icon--ripple material-symbols-outlined\"\n part=\"ripple\"\n aria-hidden=\"true\"\n >\n {this.icon}\n </span>\n </span>\n );\n }\n\n render() {\n const tabindex = this.disabled\n ? '-1'\n : this.readonly\n ? undefined\n : '0';\n\n const value = this.value;\n // Readonly renders as role=\"img\" (a static picture of the rating). `img`\n // does NOT support the slider value/orientation/readonly attributes, so\n // emitting them trips WAI-ARIA \"aria-allowed-attr\". Instead the value is\n // folded into the img's accessible NAME (img ignores aria-valuetext), and\n // the slider ARIA is applied only in the interactive branch.\n const interactive = !this.readonly;\n const baseLabel = this.resolveAccessibleLabel();\n const name = interactive\n ? baseLabel\n : `${baseLabel}: ${this.resolveLabel(value)}`;\n\n return (\n <Host\n class={{\n 'md-rating': true,\n [`md-rating--${this.size}`]: true,\n 'md-rating--readonly': this.readonly,\n 'md-rating--disabled': this.disabled,\n 'md-rating--soft-disabled': this.softDisabled,\n 'md-rating--focused': this.focused,\n }}\n >\n <div\n class=\"md-rating__items\"\n role={interactive ? 'slider' : 'img'}\n aria-label={name}\n aria-valuemin={interactive ? 0 : undefined}\n aria-valuemax={interactive ? this.max : undefined}\n aria-valuenow={interactive ? value : undefined}\n aria-valuetext={interactive ? this.resolveLabel(value) : undefined}\n aria-orientation={interactive ? 'horizontal' : undefined}\n aria-readonly={interactive ? 'false' : undefined}\n aria-disabled={interactive && (this.disabled || this.softDisabled) ? 'true' : undefined}\n tabindex={tabindex}\n part=\"items\"\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onPointerLeave={this.handlePointerLeave}\n >\n {Array.from({ length: this.max }, (_, i) => this.renderItem(i))}\n </div>\n {this.showValueLabel && (\n <span class=\"md-rating__value-label\" part=\"value-label\" aria-hidden=\"true\">\n {/* Hidden sizers reserve the widest label's width so the visible text\n swapping on hover doesn't reflow the row (see valueLabelVariants). */}\n {this.valueLabelVariants().map((t) => (\n <span key={t} class=\"md-rating__value-label-sizer\" aria-hidden=\"true\">\n {t}\n </span>\n ))}\n <span class=\"md-rating__value-label-text\">\n {this.resolveLabel(this.displayValue)}\n </span>\n </span>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}