@awc-ui/core 1.0.0-beta.2 → 1.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/dist/cjs/app-globals-V2Kpy_OQ.js +8 -0
- package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
- package/dist/cjs/engine.wasm-9JtXME10.js +12 -0
- package/dist/cjs/engine.wasm-9JtXME10.js.map +1 -0
- package/dist/cjs/{index-DlQ_5_Mv.js → index-Bm07YAg9.js} +4 -15
- package/dist/cjs/index-Bm07YAg9.js.map +1 -0
- package/dist/cjs/lazy-loading-indicator-CoC-_DMs.js +69 -0
- package/dist/cjs/lazy-loading-indicator-CoC-_DMs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +4 -3
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/md-accordion-item.cjs.entry.js +4 -4
- package/dist/cjs/md-accordion.cjs.entry.js +1 -1
- package/dist/cjs/md-app-bar.cjs.entry.js +2 -2
- package/dist/cjs/md-area-chart.cjs.entry.js +3 -3
- package/dist/cjs/md-autocomplete.cjs.entry.js +6 -5
- package/dist/cjs/md-autocomplete.cjs.entry.js.map +1 -1
- package/dist/cjs/md-avatar_2.cjs.entry.js +4 -4
- package/dist/cjs/md-badge.cjs.entry.js +3 -3
- package/dist/cjs/md-bar-chart.cjs.entry.js +3 -3
- package/dist/cjs/md-bottom-sheet.cjs.entry.js +5 -5
- package/dist/cjs/md-breadcrumb-item.cjs.entry.js +1 -1
- package/dist/cjs/md-breadcrumbs.cjs.entry.js +3 -3
- package/dist/cjs/md-button-group.cjs.entry.js +3 -3
- package/dist/cjs/{md-button_7.cjs.entry.js → md-button_6.cjs.entry.js} +14 -39
- package/dist/cjs/md-button_6.cjs.entry.js.map +1 -0
- package/dist/cjs/md-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/md-chip.cjs.entry.js +3 -3
- package/dist/cjs/md-color-picker.cjs.entry.js +1 -1
- package/dist/cjs/md-date-picker.cjs.entry.js +2 -2
- package/dist/cjs/md-dialog.cjs.entry.js +3 -3
- package/dist/cjs/md-divider.cjs.entry.js +3 -3
- package/dist/cjs/md-fab-menu-item.cjs.entry.js +3 -3
- package/dist/cjs/md-fab-menu.cjs.entry.js +3 -3
- package/dist/cjs/md-fab.cjs.entry.js +3 -3
- package/dist/cjs/md-line-chart.cjs.entry.js +3 -3
- package/dist/cjs/md-list-item.cjs.entry.js +4 -4
- package/dist/cjs/md-list.cjs.entry.js +4 -4
- package/dist/cjs/md-loading-indicator-CmzdcYLR.js +33 -0
- package/dist/cjs/md-loading-indicator-CmzdcYLR.js.map +1 -0
- package/dist/cjs/md-loading-indicator.cjs.entry.js +11 -0
- package/dist/cjs/md-loading-indicator.cjs.entry.js.map +1 -0
- package/dist/cjs/md-menu-item-group.cjs.entry.js +1 -1
- package/dist/cjs/md-menu_2.cjs.entry.js +6 -6
- package/dist/cjs/md-meter.cjs.entry.js +1 -1
- package/dist/cjs/md-multi-select.cjs.entry.js +7 -6
- package/dist/cjs/md-multi-select.cjs.entry.js.map +1 -1
- package/dist/cjs/md-navigation-bar.cjs.entry.js +2 -2
- package/dist/cjs/md-navigation-rail-tab.cjs.entry.js +1 -1
- package/dist/cjs/md-navigation-rail.cjs.entry.js +1 -1
- package/dist/cjs/md-navigation-tab.cjs.entry.js +3 -3
- package/dist/cjs/md-number-field.cjs.entry.js +3 -3
- package/dist/cjs/md-organization-chart.cjs.entry.js +3 -3
- package/dist/cjs/md-otp-field.cjs.entry.js +4 -4
- package/dist/cjs/md-pie-chart.cjs.entry.js +1 -1
- package/dist/cjs/md-progress-indicator.cjs.entry.js +1 -1
- package/dist/cjs/md-rating.cjs.entry.js +1 -1
- package/dist/cjs/md-search.cjs.entry.js +8 -7
- package/dist/cjs/md-search.cjs.entry.js.map +1 -1
- package/dist/cjs/md-segmented-button-set.cjs.entry.js +1 -1
- package/dist/cjs/md-segmented-button.cjs.entry.js +1 -1
- package/dist/cjs/md-select-option.cjs.entry.js +2 -2
- package/dist/cjs/md-select.cjs.entry.js +7 -6
- package/dist/cjs/md-select.cjs.entry.js.map +1 -1
- package/dist/cjs/md-side-sheet.cjs.entry.js +1 -1
- package/dist/cjs/md-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/md-slider.cjs.entry.js +3 -3
- package/dist/cjs/md-sparkline.cjs.entry.js +3 -3
- package/dist/cjs/md-split-button.cjs.entry.js +1 -1
- package/dist/cjs/md-status-dot.cjs.entry.js +2 -2
- package/dist/cjs/md-step.cjs.entry.js +1 -1
- package/dist/cjs/md-stepper.cjs.entry.js +1 -1
- package/dist/cjs/md-sub-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/md-switch.cjs.entry.js +1 -1
- package/dist/cjs/md-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/md-tab-panels.cjs.entry.js +1 -1
- package/dist/cjs/md-tab.cjs.entry.js +1 -1
- package/dist/cjs/md-table-body.cjs.entry.js +1 -1
- package/dist/cjs/md-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/md-table-container.cjs.entry.js +1 -1
- package/dist/cjs/md-table-expand-toggle.cjs.entry.js +1 -1
- package/dist/cjs/md-table-foot.cjs.entry.js +1 -1
- package/dist/cjs/md-table-head.cjs.entry.js +1 -1
- package/dist/cjs/md-table-pagination.cjs.entry.js +1 -1
- package/dist/cjs/md-table-row.cjs.entry.js +1 -1
- package/dist/cjs/md-table-sort-label.cjs.entry.js +1 -1
- package/dist/cjs/md-table-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/md-table.cjs.entry.js +4 -4
- package/dist/cjs/md-tabs.cjs.entry.js +1 -1
- package/dist/cjs/md-text-field.cjs.entry.js +8 -8
- package/dist/cjs/md-time-picker.cjs.entry.js +2 -2
- package/dist/cjs/md-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/md-transfer-list.cjs.entry.js +2 -2
- package/dist/cjs/md3.cjs.js +4 -3
- package/dist/cjs/md3.cjs.js.map +1 -1
- package/dist/cjs/{virtual-select-controller-CqriaZgm.js → virtual-select-controller-C5cSoKfB.js} +10 -9
- package/dist/cjs/virtual-select-controller-C5cSoKfB.js.map +1 -0
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/md-accordion-item/md-accordion-item.js +3 -3
- package/dist/collection/components/md-app-bar/md-app-bar.js +1 -1
- package/dist/collection/components/md-area-chart/md-area-chart.js +2 -2
- package/dist/collection/components/md-autocomplete/md-autocomplete.js +4 -3
- package/dist/collection/components/md-autocomplete/md-autocomplete.js.map +1 -1
- package/dist/collection/components/md-avatar/md-avatar.js +2 -2
- package/dist/collection/components/md-badge/md-badge.js +2 -2
- package/dist/collection/components/md-bar-chart/md-bar-chart.js +2 -2
- package/dist/collection/components/md-bottom-sheet/md-bottom-sheet.js +4 -4
- package/dist/collection/components/md-breadcrumbs/md-breadcrumbs.js +2 -2
- package/dist/collection/components/md-button/md-button.js +4 -3
- package/dist/collection/components/md-button/md-button.js.map +1 -1
- package/dist/collection/components/md-button-group/md-button-group.js +2 -2
- package/dist/collection/components/md-card/md-card.js +2 -2
- package/dist/collection/components/md-checkbox/md-checkbox.js +2 -2
- package/dist/collection/components/md-chip/md-chip.js +2 -2
- package/dist/collection/components/md-date-picker/md-date-picker.js +1 -1
- package/dist/collection/components/md-dialog/md-dialog.js +2 -2
- package/dist/collection/components/md-divider/md-divider.js +2 -2
- package/dist/collection/components/md-fab/md-fab.js +2 -2
- package/dist/collection/components/md-fab-menu/md-fab-menu.js +2 -2
- package/dist/collection/components/md-fab-menu-item/md-fab-menu-item.js +2 -2
- package/dist/collection/components/md-icon-button/md-icon-button.js +4 -4
- package/dist/collection/components/md-line-chart/md-line-chart.js +2 -2
- package/dist/collection/components/md-list/md-list.js +3 -3
- package/dist/collection/components/md-list-item/md-list-item.js +3 -3
- package/dist/collection/components/md-loading-indicator/md-loading-indicator.js +2 -2
- package/dist/collection/components/md-menu/md-menu.js +3 -3
- package/dist/collection/components/md-menu-item/md-menu-item.js +2 -2
- package/dist/collection/components/md-multi-select/md-multi-select.js +5 -4
- package/dist/collection/components/md-multi-select/md-multi-select.js.map +1 -1
- package/dist/collection/components/md-navigation-bar/md-navigation-bar.js +1 -1
- package/dist/collection/components/md-navigation-tab/md-navigation-tab.js +2 -2
- package/dist/collection/components/md-number-field/md-number-field.js +2 -2
- package/dist/collection/components/md-organization-chart/md-organization-chart.js +2 -2
- package/dist/collection/components/md-otp-field/md-otp-field.js +3 -3
- package/dist/collection/components/md-ripple/md-ripple.js +1 -1
- package/dist/collection/components/md-search/md-search.js +7 -6
- package/dist/collection/components/md-search/md-search.js.map +1 -1
- package/dist/collection/components/md-select/md-select.js +5 -4
- package/dist/collection/components/md-select/md-select.js.map +1 -1
- package/dist/collection/components/md-select-option/md-select-option.js +1 -1
- package/dist/collection/components/md-slider/md-slider.js +2 -2
- package/dist/collection/components/md-sparkline/md-sparkline.js +2 -2
- package/dist/collection/components/md-status-dot/md-status-dot.js +1 -1
- package/dist/collection/components/md-table/md-table.js +3 -3
- package/dist/collection/components/md-text-field/md-text-field.js +7 -7
- package/dist/collection/components/md-time-picker/md-time-picker.js +1 -1
- package/dist/collection/components/md-tooltip/md-tooltip.js +1 -1
- package/dist/collection/components/md-transfer-list/md-transfer-list.js +1 -1
- package/dist/collection/utils/lazy-loading-indicator.js +62 -0
- package/dist/collection/utils/lazy-loading-indicator.js.map +1 -0
- package/dist/collection/wasm/engine-abi.js +8 -2
- package/dist/collection/wasm/engine-abi.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/md-accordion-item.js +1 -1
- package/dist/components/md-accordion.js +1 -1
- package/dist/components/md-app-bar.js +1 -1
- package/dist/components/md-area-chart.js +1 -1
- package/dist/components/md-autocomplete.js +1 -1
- package/dist/components/md-autocomplete.js.map +1 -1
- package/dist/components/md-avatar.js +1 -1
- package/dist/components/md-badge.js +1 -1
- package/dist/components/md-bar-chart.js +1 -1
- package/dist/components/md-bottom-sheet.js +1 -1
- package/dist/components/md-breadcrumb-item.js +1 -1
- package/dist/components/md-breadcrumbs.js +1 -1
- package/dist/components/md-button-group.js +1 -1
- package/dist/components/md-button.js +1 -1
- package/dist/components/md-card.js +1 -1
- package/dist/components/md-checkbox.js +1 -1
- package/dist/components/md-chip.js +1 -1
- package/dist/components/md-color-picker.js +1 -1
- package/dist/components/md-date-picker.js +1 -1
- package/dist/components/md-date-picker.js.map +1 -1
- package/dist/components/md-dialog.js +1 -1
- package/dist/components/md-dialog.js.map +1 -1
- package/dist/components/md-divider.js +1 -1
- package/dist/components/md-divider.js.map +1 -1
- package/dist/components/md-fab-menu-item.js +1 -1
- package/dist/components/md-fab-menu.js +1 -1
- package/dist/components/md-fab.js +1 -1
- package/dist/components/md-icon-button.js +1 -1
- package/dist/components/md-line-chart.js +1 -1
- package/dist/components/md-line-chart.js.map +1 -1
- package/dist/components/md-list-item.js +1 -1
- package/dist/components/md-list.js +1 -1
- package/dist/components/md-loading-indicator.js +1 -1
- package/dist/components/md-menu-item-group.js +1 -1
- package/dist/components/md-menu-item.js +1 -1
- package/dist/components/md-menu.js +1 -1
- package/dist/components/md-meter.js +1 -1
- package/dist/components/md-multi-select.js +1 -1
- package/dist/components/md-multi-select.js.map +1 -1
- package/dist/components/md-navigation-bar.js +1 -1
- package/dist/components/md-navigation-rail-tab.js +1 -1
- package/dist/components/md-navigation-rail.js +1 -1
- package/dist/components/md-navigation-tab.js +1 -1
- package/dist/components/md-number-field.js +1 -1
- package/dist/components/md-organization-chart.js +1 -1
- package/dist/components/md-otp-field.js +1 -1
- package/dist/components/md-pie-chart.js +1 -1
- package/dist/components/md-progress-indicator.js +1 -1
- package/dist/components/md-radio.js +1 -1
- package/dist/components/md-rating.js +1 -1
- package/dist/components/md-ripple.js +1 -1
- package/dist/components/md-search.js +1 -1
- package/dist/components/md-search.js.map +1 -1
- package/dist/components/md-segmented-button-set.js +1 -1
- package/dist/components/md-segmented-button.js +1 -1
- package/dist/components/md-select-option.js +1 -1
- package/dist/components/md-select.js +1 -1
- package/dist/components/md-side-sheet.js +1 -1
- package/dist/components/md-skeleton.js +1 -1
- package/dist/components/md-slider.js +1 -1
- package/dist/components/md-snackbar.js +1 -1
- package/dist/components/md-snackbar.js.map +1 -1
- package/dist/components/md-sparkline.js +1 -1
- package/dist/components/md-split-button.js +1 -1
- package/dist/components/md-status-dot.js +1 -1
- package/dist/components/md-step.js +1 -1
- package/dist/components/md-step.js.map +1 -1
- package/dist/components/md-stepper.js +1 -1
- package/dist/components/md-stepper.js.map +1 -1
- package/dist/components/md-sub-menu-item.js +1 -1
- package/dist/components/md-switch.js +1 -1
- package/dist/components/md-tab-panel.js +1 -1
- package/dist/components/md-tab-panels.js +1 -1
- package/dist/components/md-tab.js +1 -1
- package/dist/components/md-table-body.js +1 -1
- package/dist/components/md-table-cell.js +1 -1
- package/dist/components/md-table-container.js +1 -1
- package/dist/components/md-table-expand-toggle.js +1 -1
- package/dist/components/md-table-foot.js +1 -1
- package/dist/components/md-table-head.js +1 -1
- package/dist/components/md-table-pagination.js +1 -1
- package/dist/components/md-table-pagination.js.map +1 -1
- package/dist/components/md-table-row.js +1 -1
- package/dist/components/md-table-sort-label.js +1 -1
- package/dist/components/md-table-toolbar.js +1 -1
- package/dist/components/md-table.js +1 -1
- package/dist/components/md-tabs.js +1 -1
- package/dist/components/md-text-field.js +1 -1
- package/dist/components/md-time-picker.js +1 -1
- package/dist/components/md-time-picker.js.map +1 -1
- package/dist/components/md-toolbar.js +1 -1
- package/dist/components/md-tooltip.js +1 -1
- package/dist/components/md-transfer-list.js +1 -1
- package/dist/components/p-1RSrsLOs.js +2 -0
- package/dist/components/p-1RSrsLOs.js.map +1 -0
- package/dist/components/p-2HV152w7.js +2 -0
- package/dist/components/p-2HV152w7.js.map +1 -0
- package/dist/components/p-6ZDAcEKN.js +2 -0
- package/dist/components/p-6ZDAcEKN.js.map +1 -0
- package/dist/components/p-B2fYoYe9.js +2 -0
- package/dist/components/p-B2fYoYe9.js.map +1 -0
- package/dist/components/p-BR6gfOQH.js +2 -0
- package/dist/components/p-BR6gfOQH.js.map +1 -0
- package/dist/components/p-Bz-JaJcA.js +2 -0
- package/dist/components/p-Bz-JaJcA.js.map +1 -0
- package/dist/components/p-C77M30dm.js +2 -0
- package/dist/components/p-C77M30dm.js.map +1 -0
- package/dist/components/p-CNgkGl_1.js +2 -0
- package/dist/components/p-CNgkGl_1.js.map +1 -0
- package/dist/components/p-CfBPnYW7.js +2 -0
- package/dist/components/p-CfBPnYW7.js.map +1 -0
- package/dist/components/p-D5Ht729E.js +2 -0
- package/dist/components/p-D5Ht729E.js.map +1 -0
- package/dist/components/p-DPqGg8C1.js +2 -0
- package/dist/components/p-DPqGg8C1.js.map +1 -0
- package/dist/components/p-De3E5Q8v.js +2 -0
- package/dist/components/p-De3E5Q8v.js.map +1 -0
- package/dist/components/p-Dm_7DA1f.js +2 -0
- package/dist/components/p-Dm_7DA1f.js.map +1 -0
- package/dist/components/p-Dz3R-2Wn.js +2 -0
- package/dist/components/p-Dz3R-2Wn.js.map +1 -0
- package/dist/components/p-Zjf9uhOr.js +2 -0
- package/dist/components/p-Zjf9uhOr.js.map +1 -0
- package/dist/components/p-ssLobpGS.js +2 -0
- package/dist/components/p-ssLobpGS.js.map +1 -0
- package/dist/components/p-tSoecrcz.js +2 -0
- package/dist/components/p-tSoecrcz.js.map +1 -0
- package/dist/components/p-zMR3UIR_.js +2 -0
- package/dist/components/p-zMR3UIR_.js.map +1 -0
- package/dist/components-csr/index.js +2 -0
- package/dist/components-csr/index.js.map +1 -0
- package/dist/components-csr/md-accordion-item.js +2 -0
- package/dist/components-csr/md-accordion-item.js.map +1 -0
- package/dist/components-csr/md-accordion.js +2 -0
- package/dist/components-csr/md-accordion.js.map +1 -0
- package/dist/components-csr/md-app-bar.js +2 -0
- package/dist/components-csr/md-app-bar.js.map +1 -0
- package/dist/components-csr/md-area-chart.js +2 -0
- package/dist/components-csr/md-area-chart.js.map +1 -0
- package/dist/components-csr/md-autocomplete.js +2 -0
- package/dist/components-csr/md-autocomplete.js.map +1 -0
- package/dist/components-csr/md-avatar.js +2 -0
- package/dist/components-csr/md-avatar.js.map +1 -0
- package/dist/components-csr/md-badge.js +2 -0
- package/dist/components-csr/md-badge.js.map +1 -0
- package/dist/components-csr/md-bar-chart.js +2 -0
- package/dist/components-csr/md-bar-chart.js.map +1 -0
- package/dist/components-csr/md-bottom-sheet.js +2 -0
- package/dist/components-csr/md-bottom-sheet.js.map +1 -0
- package/dist/components-csr/md-breadcrumb-item.js +2 -0
- package/dist/components-csr/md-breadcrumb-item.js.map +1 -0
- package/dist/components-csr/md-breadcrumbs.js +2 -0
- package/dist/components-csr/md-breadcrumbs.js.map +1 -0
- package/dist/components-csr/md-button-group.js +2 -0
- package/dist/components-csr/md-button-group.js.map +1 -0
- package/dist/components-csr/md-button.js +2 -0
- package/dist/components-csr/md-button.js.map +1 -0
- package/dist/components-csr/md-card.js +2 -0
- package/dist/components-csr/md-card.js.map +1 -0
- package/dist/components-csr/md-checkbox.js +2 -0
- package/dist/components-csr/md-checkbox.js.map +1 -0
- package/dist/components-csr/md-chip.js +2 -0
- package/dist/components-csr/md-chip.js.map +1 -0
- package/dist/components-csr/md-color-picker.js +2 -0
- package/dist/components-csr/md-color-picker.js.map +1 -0
- package/dist/components-csr/md-date-picker.js +2 -0
- package/dist/components-csr/md-date-picker.js.map +1 -0
- package/dist/components-csr/md-dialog.js +2 -0
- package/dist/components-csr/md-dialog.js.map +1 -0
- package/dist/components-csr/md-divider.js +2 -0
- package/dist/components-csr/md-divider.js.map +1 -0
- package/dist/components-csr/md-fab-menu-item.js +2 -0
- package/dist/components-csr/md-fab-menu-item.js.map +1 -0
- package/dist/components-csr/md-fab-menu.js +2 -0
- package/dist/components-csr/md-fab-menu.js.map +1 -0
- package/dist/components-csr/md-fab.js +2 -0
- package/dist/components-csr/md-fab.js.map +1 -0
- package/dist/components-csr/md-icon-button.js +2 -0
- package/dist/components-csr/md-icon-button.js.map +1 -0
- package/dist/components-csr/md-line-chart.js +2 -0
- package/dist/components-csr/md-line-chart.js.map +1 -0
- package/dist/components-csr/md-list-item.js +2 -0
- package/dist/components-csr/md-list-item.js.map +1 -0
- package/dist/components-csr/md-list.js +2 -0
- package/dist/components-csr/md-list.js.map +1 -0
- package/dist/components-csr/md-loading-indicator.js +2 -0
- package/dist/components-csr/md-loading-indicator.js.map +1 -0
- package/dist/components-csr/md-menu-item-group.js +2 -0
- package/dist/components-csr/md-menu-item-group.js.map +1 -0
- package/dist/components-csr/md-menu-item.js +2 -0
- package/dist/components-csr/md-menu-item.js.map +1 -0
- package/dist/components-csr/md-menu.js +2 -0
- package/dist/components-csr/md-menu.js.map +1 -0
- package/dist/components-csr/md-meter.js +2 -0
- package/dist/components-csr/md-meter.js.map +1 -0
- package/dist/components-csr/md-multi-select.js +2 -0
- package/dist/components-csr/md-multi-select.js.map +1 -0
- package/dist/components-csr/md-navigation-bar.js +2 -0
- package/dist/components-csr/md-navigation-bar.js.map +1 -0
- package/dist/components-csr/md-navigation-rail-tab.js +2 -0
- package/dist/components-csr/md-navigation-rail-tab.js.map +1 -0
- package/dist/components-csr/md-navigation-rail.js +2 -0
- package/dist/components-csr/md-navigation-rail.js.map +1 -0
- package/dist/components-csr/md-navigation-tab.js +2 -0
- package/dist/components-csr/md-navigation-tab.js.map +1 -0
- package/dist/components-csr/md-number-field.js +2 -0
- package/dist/components-csr/md-number-field.js.map +1 -0
- package/dist/components-csr/md-organization-chart.js +2 -0
- package/dist/components-csr/md-organization-chart.js.map +1 -0
- package/dist/components-csr/md-otp-field.js +2 -0
- package/dist/components-csr/md-otp-field.js.map +1 -0
- package/dist/components-csr/md-pie-chart.js +2 -0
- package/dist/components-csr/md-pie-chart.js.map +1 -0
- package/dist/components-csr/md-progress-indicator.js +2 -0
- package/dist/components-csr/md-progress-indicator.js.map +1 -0
- package/dist/components-csr/md-radio.js +2 -0
- package/dist/components-csr/md-radio.js.map +1 -0
- package/dist/components-csr/md-rating.js +2 -0
- package/dist/components-csr/md-rating.js.map +1 -0
- package/dist/components-csr/md-ripple.js +2 -0
- package/dist/components-csr/md-ripple.js.map +1 -0
- package/dist/components-csr/md-search.js +2 -0
- package/dist/components-csr/md-search.js.map +1 -0
- package/dist/components-csr/md-segmented-button-set.js +2 -0
- package/dist/components-csr/md-segmented-button-set.js.map +1 -0
- package/dist/components-csr/md-segmented-button.js +2 -0
- package/dist/components-csr/md-segmented-button.js.map +1 -0
- package/dist/components-csr/md-select-option.js +2 -0
- package/dist/components-csr/md-select-option.js.map +1 -0
- package/dist/components-csr/md-select.js +2 -0
- package/dist/components-csr/md-select.js.map +1 -0
- package/dist/components-csr/md-side-sheet.js +2 -0
- package/dist/components-csr/md-side-sheet.js.map +1 -0
- package/dist/components-csr/md-skeleton.js +2 -0
- package/dist/components-csr/md-skeleton.js.map +1 -0
- package/dist/components-csr/md-slider.js +2 -0
- package/dist/components-csr/md-slider.js.map +1 -0
- package/dist/components-csr/md-snackbar.js +2 -0
- package/dist/components-csr/md-snackbar.js.map +1 -0
- package/dist/components-csr/md-sparkline.js +2 -0
- package/dist/components-csr/md-sparkline.js.map +1 -0
- package/dist/components-csr/md-split-button.js +2 -0
- package/dist/components-csr/md-split-button.js.map +1 -0
- package/dist/components-csr/md-status-dot.js +2 -0
- package/dist/components-csr/md-status-dot.js.map +1 -0
- package/dist/components-csr/md-step.js +2 -0
- package/dist/components-csr/md-step.js.map +1 -0
- package/dist/components-csr/md-stepper.js +2 -0
- package/dist/components-csr/md-stepper.js.map +1 -0
- package/dist/components-csr/md-sub-menu-item.js +2 -0
- package/dist/components-csr/md-sub-menu-item.js.map +1 -0
- package/dist/components-csr/md-switch.js +2 -0
- package/dist/components-csr/md-switch.js.map +1 -0
- package/dist/components-csr/md-tab-panel.js +2 -0
- package/dist/components-csr/md-tab-panel.js.map +1 -0
- package/dist/components-csr/md-tab-panels.js +2 -0
- package/dist/components-csr/md-tab-panels.js.map +1 -0
- package/dist/components-csr/md-tab.js +2 -0
- package/dist/components-csr/md-tab.js.map +1 -0
- package/dist/components-csr/md-table-body.js +2 -0
- package/dist/components-csr/md-table-body.js.map +1 -0
- package/dist/components-csr/md-table-cell.js +2 -0
- package/dist/components-csr/md-table-cell.js.map +1 -0
- package/dist/components-csr/md-table-container.js +2 -0
- package/dist/components-csr/md-table-container.js.map +1 -0
- package/dist/components-csr/md-table-expand-toggle.js +2 -0
- package/dist/components-csr/md-table-expand-toggle.js.map +1 -0
- package/dist/components-csr/md-table-foot.js +2 -0
- package/dist/components-csr/md-table-foot.js.map +1 -0
- package/dist/components-csr/md-table-head.js +2 -0
- package/dist/components-csr/md-table-head.js.map +1 -0
- package/dist/components-csr/md-table-pagination.js +2 -0
- package/dist/components-csr/md-table-pagination.js.map +1 -0
- package/dist/components-csr/md-table-row.js +2 -0
- package/dist/components-csr/md-table-row.js.map +1 -0
- package/dist/components-csr/md-table-sort-label.js +2 -0
- package/dist/components-csr/md-table-sort-label.js.map +1 -0
- package/dist/components-csr/md-table-toolbar.js +2 -0
- package/dist/components-csr/md-table-toolbar.js.map +1 -0
- package/dist/components-csr/md-table.js +2 -0
- package/dist/components-csr/md-table.js.map +1 -0
- package/dist/components-csr/md-tabs.js +2 -0
- package/dist/components-csr/md-tabs.js.map +1 -0
- package/dist/components-csr/md-text-field.js +2 -0
- package/dist/components-csr/md-text-field.js.map +1 -0
- package/dist/components-csr/md-time-picker.js +2 -0
- package/dist/components-csr/md-time-picker.js.map +1 -0
- package/dist/components-csr/md-toolbar.js +2 -0
- package/dist/components-csr/md-toolbar.js.map +1 -0
- package/dist/components-csr/md-tooltip.js +2 -0
- package/dist/components-csr/md-tooltip.js.map +1 -0
- package/dist/components-csr/md-transfer-list.js +2 -0
- package/dist/components-csr/md-transfer-list.js.map +1 -0
- package/dist/components-csr/p-6WgHjhDg.js +2 -0
- package/dist/components-csr/p-6WgHjhDg.js.map +1 -0
- package/dist/{components/p-uTEkf0sE.js → components-csr/p-BEmwDSzw.js} +2 -2
- package/dist/{components/p-C8EP4S21.js → components-csr/p-BQKzjYcY.js} +2 -2
- package/dist/{components/p-BwXpiUsu.js → components-csr/p-BWMwewtY.js} +2 -2
- package/dist/{components/p-DXXUoRSH.js → components-csr/p-BZakoRau.js} +2 -2
- package/dist/components-csr/p-BZakoRau.js.map +1 -0
- package/dist/{md3/p-BjYKc1Ge.js → components-csr/p-BdEoSBtL.js} +2 -2
- package/dist/components-csr/p-BdEoSBtL.js.map +1 -0
- package/dist/{components/p-B0Opn6dK.js → components-csr/p-Bkt_X-6v.js} +2 -2
- package/dist/components-csr/p-Bx6--dQF.js.map +1 -0
- package/dist/components-csr/p-Bz-JaJcA.js +2 -0
- package/dist/components-csr/p-Bz-JaJcA.js.map +1 -0
- package/dist/{components/p-stybaFzj.js → components-csr/p-C3vB0Hd9.js} +2 -2
- package/dist/{components/p-B3MWYEEJ.js → components-csr/p-CF7mq5T7.js} +2 -2
- package/dist/{components/p-7fN_yCXW.js → components-csr/p-CVMM-tdC.js} +2 -2
- package/dist/components-csr/p-C_ogF68H.js.map +1 -0
- package/dist/components-csr/p-Cch_V1vi.js +2 -0
- package/dist/components-csr/p-Cch_V1vi.js.map +1 -0
- package/dist/components-csr/p-CfBPnYW7.js +2 -0
- package/dist/components-csr/p-CfBPnYW7.js.map +1 -0
- package/dist/components-csr/p-CxhZdOPw.js +2 -0
- package/dist/components-csr/p-CxhZdOPw.js.map +1 -0
- package/dist/{components/p-Ch2-tttM.js → components-csr/p-DMQ-6aj8.js} +2 -2
- package/dist/components-csr/p-DWxN44zD.js +2 -0
- package/dist/components-csr/p-DWxN44zD.js.map +1 -0
- package/dist/components-csr/p-DYBUr7K_.js +2 -0
- package/dist/components-csr/p-DYBUr7K_.js.map +1 -0
- package/dist/{components/p-e2HRV63Y.js → components-csr/p-DfcpeJAu.js} +2 -2
- package/dist/{components/p-Dp-w93ot.js → components-csr/p-DjKPc5EU.js} +2 -2
- package/dist/components-csr/p-DvOKnoqK.js.map +1 -0
- package/dist/components-csr/p-DzPKu-Ma.js.map +1 -0
- package/dist/{components/p-UdGDg2oJ.js → components-csr/p-If0JHsYV.js} +2 -2
- package/dist/components-csr/p-If0JHsYV.js.map +1 -0
- package/dist/components-csr/p-RLxbNqRv.js.map +1 -0
- package/dist/{components/p-6wZSqm_2.js → components-csr/p-R_guULjT.js} +2 -2
- package/dist/components-csr/p-bSpXNc5J.js +2 -0
- package/dist/components-csr/p-bSpXNc5J.js.map +1 -0
- package/dist/{components/p-Ddiw2Kjw.js → components-csr/p-uSMrgqAy.js} +2 -2
- package/dist/components-csr/package.json +3 -0
- package/dist/esm/{a11y-C6CRqodW.js → a11y-BckJ95d7.js} +3 -3
- package/dist/esm/{a11y-C6CRqodW.js.map → a11y-BckJ95d7.js.map} +1 -1
- package/dist/esm/app-globals-DQuL1Twl.js +6 -0
- package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
- package/dist/esm/{bar-chart-ZZrajEkM.js → bar-chart-BuTyuCbt.js} +4 -4
- package/dist/esm/{bar-chart-ZZrajEkM.js.map → bar-chart-BuTyuCbt.js.map} +1 -1
- package/dist/esm/{chart-32olae06.js → chart-ByIhkqsG.js} +4 -4
- package/dist/esm/{chart-32olae06.js.map → chart-ByIhkqsG.js.map} +1 -1
- package/dist/esm/engine.wasm-CfBPnYW7.js +10 -0
- package/dist/esm/engine.wasm-CfBPnYW7.js.map +1 -0
- package/dist/esm/{hit-test-DHldf5Lm.js → hit-test-c_hI-yCX.js} +3 -3
- package/dist/esm/{hit-test-DHldf5Lm.js.map → hit-test-c_hI-yCX.js.map} +1 -1
- package/dist/esm/{index-DTaX19_O.js → index-WmvQpZnM.js} +5 -15
- package/dist/esm/index-WmvQpZnM.js.map +1 -0
- package/dist/esm/lazy-loading-indicator-BWFcjJiK.js +67 -0
- package/dist/esm/lazy-loading-indicator-BWFcjJiK.js.map +1 -0
- package/dist/esm/loader.js +4 -3
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/md-accordion-item.entry.js +4 -4
- package/dist/esm/md-accordion.entry.js +1 -1
- package/dist/esm/md-app-bar.entry.js +2 -2
- package/dist/esm/md-area-chart.entry.js +7 -7
- package/dist/esm/md-autocomplete.entry.js +6 -5
- package/dist/esm/md-autocomplete.entry.js.map +1 -1
- package/dist/esm/md-avatar_2.entry.js +4 -4
- package/dist/esm/md-badge.entry.js +3 -3
- package/dist/esm/md-bar-chart.entry.js +7 -7
- package/dist/esm/md-bottom-sheet.entry.js +5 -5
- package/dist/esm/md-breadcrumb-item.entry.js +2 -2
- package/dist/esm/md-breadcrumbs.entry.js +3 -3
- package/dist/esm/md-button-group.entry.js +3 -3
- package/dist/esm/{md-button_7.entry.js → md-button_6.entry.js} +16 -40
- package/dist/esm/md-button_6.entry.js.map +1 -0
- package/dist/esm/md-checkbox.entry.js +3 -3
- package/dist/esm/md-chip.entry.js +3 -3
- package/dist/esm/md-color-picker.entry.js +1 -1
- package/dist/esm/md-date-picker.entry.js +2 -2
- package/dist/esm/md-dialog.entry.js +3 -3
- package/dist/esm/md-divider.entry.js +3 -3
- package/dist/esm/md-fab-menu-item.entry.js +3 -3
- package/dist/esm/md-fab-menu.entry.js +3 -3
- package/dist/esm/md-fab.entry.js +3 -3
- package/dist/esm/md-line-chart.entry.js +7 -7
- package/dist/esm/md-list-item.entry.js +5 -5
- package/dist/esm/md-list.entry.js +4 -4
- package/dist/esm/md-loading-indicator-Bf-Pt29l.js +31 -0
- package/dist/esm/md-loading-indicator-Bf-Pt29l.js.map +1 -0
- package/dist/esm/md-loading-indicator.entry.js +5 -0
- package/dist/esm/md-loading-indicator.entry.js.map +1 -0
- package/dist/esm/md-menu-item-group.entry.js +1 -1
- package/dist/esm/md-menu_2.entry.js +6 -6
- package/dist/esm/md-meter.entry.js +1 -1
- package/dist/esm/md-multi-select.entry.js +7 -6
- package/dist/esm/md-multi-select.entry.js.map +1 -1
- package/dist/esm/md-navigation-bar.entry.js +2 -2
- package/dist/esm/md-navigation-rail-tab.entry.js +2 -2
- package/dist/esm/md-navigation-rail.entry.js +1 -1
- package/dist/esm/md-navigation-tab.entry.js +4 -4
- package/dist/esm/md-number-field.entry.js +3 -3
- package/dist/esm/md-organization-chart.entry.js +3 -3
- package/dist/esm/md-otp-field.entry.js +4 -4
- package/dist/esm/md-pie-chart.entry.js +3 -3
- package/dist/esm/md-progress-indicator.entry.js +1 -1
- package/dist/esm/md-rating.entry.js +1 -1
- package/dist/esm/md-search.entry.js +8 -7
- package/dist/esm/md-search.entry.js.map +1 -1
- package/dist/esm/md-segmented-button-set.entry.js +1 -1
- package/dist/esm/md-segmented-button.entry.js +1 -1
- package/dist/esm/md-select-option.entry.js +2 -2
- package/dist/esm/md-select.entry.js +7 -6
- package/dist/esm/md-select.entry.js.map +1 -1
- package/dist/esm/md-side-sheet.entry.js +1 -1
- package/dist/esm/md-skeleton.entry.js +1 -1
- package/dist/esm/md-slider.entry.js +3 -3
- package/dist/esm/md-sparkline.entry.js +7 -7
- package/dist/esm/md-split-button.entry.js +1 -1
- package/dist/esm/md-status-dot.entry.js +2 -2
- package/dist/esm/md-step.entry.js +1 -1
- package/dist/esm/md-stepper.entry.js +1 -1
- package/dist/esm/md-sub-menu-item.entry.js +1 -1
- package/dist/esm/md-switch.entry.js +1 -1
- package/dist/esm/md-tab-panel.entry.js +1 -1
- package/dist/esm/md-tab-panels.entry.js +1 -1
- package/dist/esm/md-tab.entry.js +1 -1
- package/dist/esm/md-table-body.entry.js +1 -1
- package/dist/esm/md-table-cell.entry.js +1 -1
- package/dist/esm/md-table-container.entry.js +1 -1
- package/dist/esm/md-table-expand-toggle.entry.js +1 -1
- package/dist/esm/md-table-foot.entry.js +1 -1
- package/dist/esm/md-table-head.entry.js +1 -1
- package/dist/esm/md-table-pagination.entry.js +1 -1
- package/dist/esm/md-table-row.entry.js +1 -1
- package/dist/esm/md-table-sort-label.entry.js +1 -1
- package/dist/esm/md-table-toolbar.entry.js +1 -1
- package/dist/esm/md-table.entry.js +4 -4
- package/dist/esm/md-tabs.entry.js +1 -1
- package/dist/esm/md-text-field.entry.js +8 -8
- package/dist/esm/md-time-picker.entry.js +2 -2
- package/dist/esm/md-toolbar.entry.js +1 -1
- package/dist/esm/md-transfer-list.entry.js +2 -2
- package/dist/esm/md3.js +4 -3
- package/dist/esm/md3.js.map +1 -1
- package/dist/esm/{rtl-DvOKnoqK.js → rtl-CVFH1DkU.js} +3 -3
- package/dist/esm/{rtl-DvOKnoqK.js.map → rtl-CVFH1DkU.js.map} +1 -1
- package/dist/esm/{url-BjYKc1Ge.js → url-BdEoSBtL.js} +3 -3
- package/dist/esm/{url-BjYKc1Ge.js.map → url-BdEoSBtL.js.map} +1 -1
- package/dist/esm/{virtual-select-controller-BEWIC0pC.js → virtual-select-controller-CR60w6DO.js} +10 -9
- package/dist/esm/virtual-select-controller-CR60w6DO.js.map +1 -0
- package/dist/md3/md3.css +1 -1
- package/dist/md3/md3.esm.js +1 -1
- package/dist/md3/md3.esm.js.map +1 -1
- package/dist/md3/p-08f1c469.entry.js +2 -0
- package/dist/md3/{p-4d82132d.entry.js.map → p-08f1c469.entry.js.map} +1 -1
- package/dist/md3/{p-9ddbf247.entry.js → p-108f89d7.entry.js} +2 -2
- package/dist/md3/p-1112bffc.entry.js +2 -0
- package/dist/md3/{p-cf07e761.entry.js.map → p-1112bffc.entry.js.map} +1 -1
- package/dist/md3/{p-c6a12344.entry.js → p-114c270b.entry.js} +2 -2
- package/dist/md3/p-1835fe36.entry.js +2 -0
- package/dist/md3/{p-a3308c40.entry.js.map → p-1835fe36.entry.js.map} +1 -1
- package/dist/md3/{p-396089fd.entry.js → p-1edb5a0d.entry.js} +2 -2
- package/dist/md3/p-2ba2db3b.entry.js +2 -0
- package/dist/md3/{p-6b2871a0.entry.js.map → p-2ba2db3b.entry.js.map} +1 -1
- package/dist/md3/p-3508d0e0.entry.js +2 -0
- package/dist/md3/{p-f31ab454.entry.js.map → p-3508d0e0.entry.js.map} +1 -1
- package/dist/md3/{p-b34d385b.entry.js → p-35b05b45.entry.js} +2 -2
- package/dist/md3/{p-c2dd8c8c.entry.js → p-38e9a583.entry.js} +2 -2
- package/dist/md3/{p-be02624e.entry.js → p-3c0469aa.entry.js} +2 -2
- package/dist/md3/p-3f64a27d.entry.js +2 -0
- package/dist/md3/{p-fb61868c.entry.js.map → p-3f64a27d.entry.js.map} +1 -1
- package/dist/md3/{p-63b8c8d1.entry.js → p-408ee4be.entry.js} +2 -2
- package/dist/md3/{p-edb34a6d.entry.js → p-43c708ad.entry.js} +2 -2
- package/dist/md3/{p-3015c7e3.entry.js → p-4770b534.entry.js} +2 -2
- package/dist/md3/{p-c861d774.entry.js → p-4b7cf934.entry.js} +2 -2
- package/dist/md3/{p-2e09a7b7.entry.js → p-4f26bd60.entry.js} +2 -2
- package/dist/md3/{p-7b463fbe.entry.js → p-4f2e82cb.entry.js} +2 -2
- package/dist/md3/{p-be412e3f.entry.js → p-501bf161.entry.js} +2 -2
- package/dist/md3/{p-c063c823.entry.js → p-56c7c570.entry.js} +2 -2
- package/dist/md3/{p-2e9503d7.entry.js → p-56ca0c3c.entry.js} +2 -2
- package/dist/md3/{p-ac8762e5.entry.js → p-5b63149a.entry.js} +2 -2
- package/dist/md3/{p-c5af701b.entry.js → p-5f668b0a.entry.js} +2 -2
- package/dist/md3/p-6237ddac.entry.js +2 -0
- package/dist/md3/{p-e7dc5a32.entry.js.map → p-6237ddac.entry.js.map} +1 -1
- package/dist/md3/{p-8eb0b6a4.entry.js → p-6d65fc6a.entry.js} +2 -2
- package/dist/md3/{p-e3124e1e.entry.js → p-707b6d7c.entry.js} +2 -2
- package/dist/md3/{p-a5fee424.entry.js → p-71f1660b.entry.js} +2 -2
- package/dist/md3/{p-1a8ec5bc.entry.js → p-7501170f.entry.js} +2 -2
- package/dist/md3/p-7c8842bf.entry.js +2 -0
- package/dist/md3/{p-ba2ebde1.entry.js.map → p-7c8842bf.entry.js.map} +1 -1
- package/dist/md3/{p-4e3d6e40.entry.js → p-7d1686a7.entry.js} +2 -2
- package/dist/md3/p-7e7f0e45.entry.js +2 -0
- package/dist/md3/p-7e7f0e45.entry.js.map +1 -0
- package/dist/md3/p-80379565.entry.js +2 -0
- package/dist/md3/{p-6c44cf13.entry.js.map → p-80379565.entry.js.map} +1 -1
- package/dist/md3/p-830724e4.entry.js +2 -0
- package/dist/md3/p-830724e4.entry.js.map +1 -0
- package/dist/md3/{p-4dda4cb0.entry.js → p-845ca9cc.entry.js} +2 -2
- package/dist/md3/{p-77a01bcc.entry.js → p-87f88d62.entry.js} +2 -2
- package/dist/md3/{p-5b74694e.entry.js → p-89d47130.entry.js} +2 -2
- package/dist/md3/p-8a6fed13.entry.js +2 -0
- package/dist/md3/{p-a803da99.entry.js.map → p-8a6fed13.entry.js.map} +1 -1
- package/dist/md3/p-8a7e0297.entry.js +2 -0
- package/dist/md3/p-8a7e0297.entry.js.map +1 -0
- package/dist/md3/{p-b0431a5c.entry.js → p-8bdcda53.entry.js} +2 -2
- package/dist/md3/{p-c10a33c2.entry.js → p-8e7df348.entry.js} +2 -2
- package/dist/md3/p-9003a7d4.entry.js +2 -0
- package/dist/md3/p-9003a7d4.entry.js.map +1 -0
- package/dist/md3/{p-05ae91b6.entry.js → p-90ccf4c3.entry.js} +2 -2
- package/dist/md3/p-BdEoSBtL.js +2 -0
- package/dist/md3/{p-BjYKc1Ge.js.map → p-BdEoSBtL.js.map} +1 -1
- package/dist/md3/p-Bz-JaJcA.js +2 -0
- package/dist/md3/p-Bz-JaJcA.js.map +1 -0
- package/dist/md3/p-CGqeEMjY.js +2 -0
- package/dist/md3/{p-DzPKu-Ma.js.map → p-CGqeEMjY.js.map} +1 -1
- package/dist/md3/p-CVFH1DkU.js +2 -0
- package/dist/md3/{p-DvOKnoqK.js.map → p-CVFH1DkU.js.map} +1 -1
- package/dist/md3/p-Cch92tDM.js +2 -0
- package/dist/md3/{p-RLxbNqRv.js.map → p-Cch92tDM.js.map} +1 -1
- package/dist/md3/p-CfBPnYW7.js +2 -0
- package/dist/md3/p-CfBPnYW7.js.map +1 -0
- package/dist/md3/p-D17cVKxS.js +2 -0
- package/dist/md3/p-D17cVKxS.js.map +1 -0
- package/dist/md3/p-DGtztV3K.js +2 -0
- package/dist/md3/{p-Bx6--dQF.js.map → p-DGtztV3K.js.map} +1 -1
- package/dist/md3/p-DQuL1Twl.js +2 -0
- package/dist/md3/p-DQuL1Twl.js.map +1 -0
- package/dist/md3/p-DnKDoE8K.js +2 -0
- package/dist/md3/p-DnKDoE8K.js.map +1 -0
- package/dist/md3/p-WmvQpZnM.js +3 -0
- package/dist/md3/p-WmvQpZnM.js.map +1 -0
- package/dist/md3/p-a3623653.entry.js +2 -0
- package/dist/md3/{p-19ee9c33.entry.js.map → p-a3623653.entry.js.map} +1 -1
- package/dist/md3/{p-da4e27d4.entry.js → p-a4d4cfed.entry.js} +2 -2
- package/dist/md3/{p-5394254f.entry.js → p-a976498b.entry.js} +2 -2
- package/dist/md3/{p-6038b907.entry.js → p-ab568d1c.entry.js} +2 -2
- package/dist/md3/{p-bf7842f8.entry.js → p-adf8a415.entry.js} +2 -2
- package/dist/md3/p-ae30e899.entry.js +2 -0
- package/dist/md3/p-ae30e899.entry.js.map +1 -0
- package/dist/md3/{p-45280bf4.entry.js → p-b2d88292.entry.js} +2 -2
- package/dist/md3/{p-796f79f8.entry.js → p-b3b5247b.entry.js} +2 -2
- package/dist/md3/{p-5b799707.entry.js → p-b4266f6b.entry.js} +2 -2
- package/dist/md3/p-b54bbf88.entry.js +2 -0
- package/dist/md3/p-b54bbf88.entry.js.map +1 -0
- package/dist/md3/{p-c00f7514.entry.js → p-ba011453.entry.js} +2 -2
- package/dist/md3/{p-6ba63c73.entry.js → p-bc24f0c9.entry.js} +2 -2
- package/dist/md3/{p-0c2e824d.entry.js → p-c20fbb9e.entry.js} +2 -2
- package/dist/md3/{p-fc0b325d.entry.js → p-c2944c87.entry.js} +2 -2
- package/dist/md3/{p-4e45b2ff.entry.js → p-c58c68d0.entry.js} +2 -2
- package/dist/md3/p-cc6e8afd.entry.js +2 -0
- package/dist/md3/{p-72457a85.entry.js.map → p-cc6e8afd.entry.js.map} +1 -1
- package/dist/md3/{p-0f764a1e.entry.js → p-d2e39c6e.entry.js} +2 -2
- package/dist/md3/{p-50555bb7.entry.js → p-d8885f53.entry.js} +2 -2
- package/dist/md3/{p-c1ca6f6c.entry.js → p-db6fb4e1.entry.js} +2 -2
- package/dist/md3/{p-81843ff7.entry.js → p-dcba2857.entry.js} +2 -2
- package/dist/md3/{p-65195996.entry.js → p-e357e8ac.entry.js} +2 -2
- package/dist/md3/{p-39cb7c24.entry.js → p-e5c6795e.entry.js} +2 -2
- package/dist/md3/p-e871663b.entry.js +2 -0
- package/dist/md3/{p-aaec2698.entry.js.map → p-e871663b.entry.js.map} +1 -1
- package/dist/md3/p-f1b69181.entry.js +2 -0
- package/dist/md3/{p-a986fd24.entry.js.map → p-f1b69181.entry.js.map} +1 -1
- package/dist/md3/p-f297d786.entry.js +2 -0
- package/dist/md3/{p-3cce1de3.entry.js.map → p-f297d786.entry.js.map} +1 -1
- package/dist/md3/{p-e6d7f0ff.entry.js → p-f403ad20.entry.js} +2 -2
- package/dist/md3/p-f5399b73.entry.js +2 -0
- package/dist/md3/{p-04e97f5d.entry.js.map → p-f5399b73.entry.js.map} +1 -1
- package/dist/md3/{p-708a9313.entry.js → p-f5fd9a0b.entry.js} +2 -2
- package/dist/md3/{p-aa0e7d4d.entry.js → p-f71af38f.entry.js} +2 -2
- package/dist/md3/{p-757e3aaf.entry.js → p-fac6da4c.entry.js} +2 -2
- package/dist/md3/{p-134b670a.entry.js → p-fc864f96.entry.js} +2 -2
- package/dist/md3/{p-32bdd439.entry.js → p-fd686966.entry.js} +2 -2
- package/dist/md3/p-nhfFYWzy.js +2 -0
- package/dist/md3/{p-C_ogF68H.js.map → p-nhfFYWzy.js.map} +1 -1
- package/dist/types/utils/lazy-loading-indicator.d.ts +7 -0
- package/dist/types/wasm/engine-abi.d.ts +14 -0
- package/hydrate/index.js +191 -113
- package/hydrate/index.mjs +191 -113
- package/package.json +30 -5
- package/dist/cjs/index-DlQ_5_Mv.js.map +0 -1
- package/dist/cjs/md-button_7.cjs.entry.js.map +0 -1
- package/dist/cjs/virtual-select-controller-CqriaZgm.js.map +0 -1
- package/dist/components/p-BEWIC0pC.js +0 -2
- package/dist/components/p-BEWIC0pC.js.map +0 -1
- package/dist/components/p-DXXUoRSH.js.map +0 -1
- package/dist/components/p-MWBNn6Lj.js +0 -2
- package/dist/components/p-MWBNn6Lj.js.map +0 -1
- package/dist/components/p-UdGDg2oJ.js.map +0 -1
- package/dist/esm/index-DTaX19_O.js.map +0 -1
- package/dist/esm/md-button_7.entry.js.map +0 -1
- package/dist/esm/virtual-select-controller-BEWIC0pC.js.map +0 -1
- package/dist/md3/p-04e97f5d.entry.js +0 -2
- package/dist/md3/p-19ee9c33.entry.js +0 -2
- package/dist/md3/p-21772851.entry.js +0 -2
- package/dist/md3/p-21772851.entry.js.map +0 -1
- package/dist/md3/p-3cce1de3.entry.js +0 -2
- package/dist/md3/p-47af9819.entry.js +0 -2
- package/dist/md3/p-47af9819.entry.js.map +0 -1
- package/dist/md3/p-4d82132d.entry.js +0 -2
- package/dist/md3/p-6b2871a0.entry.js +0 -2
- package/dist/md3/p-6c44cf13.entry.js +0 -2
- package/dist/md3/p-72457a85.entry.js +0 -2
- package/dist/md3/p-BEWIC0pC.js +0 -2
- package/dist/md3/p-BEWIC0pC.js.map +0 -1
- package/dist/md3/p-DTaX19_O.js +0 -3
- package/dist/md3/p-DTaX19_O.js.map +0 -1
- package/dist/md3/p-a3308c40.entry.js +0 -2
- package/dist/md3/p-a7ffb779.entry.js +0 -2
- package/dist/md3/p-a7ffb779.entry.js.map +0 -1
- package/dist/md3/p-a803da99.entry.js +0 -2
- package/dist/md3/p-a986fd24.entry.js +0 -2
- package/dist/md3/p-aaec2698.entry.js +0 -2
- package/dist/md3/p-ac35ac5f.entry.js +0 -2
- package/dist/md3/p-ac35ac5f.entry.js.map +0 -1
- package/dist/md3/p-b4631a55.entry.js +0 -2
- package/dist/md3/p-b4631a55.entry.js.map +0 -1
- package/dist/md3/p-ba2ebde1.entry.js +0 -2
- package/dist/md3/p-cf07e761.entry.js +0 -2
- package/dist/md3/p-e7dc5a32.entry.js +0 -2
- package/dist/md3/p-f31ab454.entry.js +0 -2
- package/dist/md3/p-fb61868c.entry.js +0 -2
- /package/dist/{components/p-uTEkf0sE.js.map → components-csr/p-BEmwDSzw.js.map} +0 -0
- /package/dist/{components/p-C8EP4S21.js.map → components-csr/p-BQKzjYcY.js.map} +0 -0
- /package/dist/{components/p-BwXpiUsu.js.map → components-csr/p-BWMwewtY.js.map} +0 -0
- /package/dist/{components/p-B0Opn6dK.js.map → components-csr/p-Bkt_X-6v.js.map} +0 -0
- /package/dist/{md3 → components-csr}/p-Bx6--dQF.js +0 -0
- /package/dist/{components/p-stybaFzj.js.map → components-csr/p-C3vB0Hd9.js.map} +0 -0
- /package/dist/{components/p-B3MWYEEJ.js.map → components-csr/p-CF7mq5T7.js.map} +0 -0
- /package/dist/{components/p-7fN_yCXW.js.map → components-csr/p-CVMM-tdC.js.map} +0 -0
- /package/dist/{md3 → components-csr}/p-C_ogF68H.js +0 -0
- /package/dist/{components/p-Ch2-tttM.js.map → components-csr/p-DMQ-6aj8.js.map} +0 -0
- /package/dist/{components/p-e2HRV63Y.js.map → components-csr/p-DfcpeJAu.js.map} +0 -0
- /package/dist/{components/p-Dp-w93ot.js.map → components-csr/p-DjKPc5EU.js.map} +0 -0
- /package/dist/{md3 → components-csr}/p-DvOKnoqK.js +0 -0
- /package/dist/{md3 → components-csr}/p-DzPKu-Ma.js +0 -0
- /package/dist/{md3 → components-csr}/p-RLxbNqRv.js +0 -0
- /package/dist/{components/p-6wZSqm_2.js.map → components-csr/p-R_guULjT.js.map} +0 -0
- /package/dist/{components/p-Ddiw2Kjw.js.map → components-csr/p-uSMrgqAy.js.map} +0 -0
- /package/dist/md3/{p-9ddbf247.entry.js.map → p-108f89d7.entry.js.map} +0 -0
- /package/dist/md3/{p-c6a12344.entry.js.map → p-114c270b.entry.js.map} +0 -0
- /package/dist/md3/{p-396089fd.entry.js.map → p-1edb5a0d.entry.js.map} +0 -0
- /package/dist/md3/{p-b34d385b.entry.js.map → p-35b05b45.entry.js.map} +0 -0
- /package/dist/md3/{p-c2dd8c8c.entry.js.map → p-38e9a583.entry.js.map} +0 -0
- /package/dist/md3/{p-be02624e.entry.js.map → p-3c0469aa.entry.js.map} +0 -0
- /package/dist/md3/{p-63b8c8d1.entry.js.map → p-408ee4be.entry.js.map} +0 -0
- /package/dist/md3/{p-edb34a6d.entry.js.map → p-43c708ad.entry.js.map} +0 -0
- /package/dist/md3/{p-3015c7e3.entry.js.map → p-4770b534.entry.js.map} +0 -0
- /package/dist/md3/{p-c861d774.entry.js.map → p-4b7cf934.entry.js.map} +0 -0
- /package/dist/md3/{p-2e09a7b7.entry.js.map → p-4f26bd60.entry.js.map} +0 -0
- /package/dist/md3/{p-7b463fbe.entry.js.map → p-4f2e82cb.entry.js.map} +0 -0
- /package/dist/md3/{p-be412e3f.entry.js.map → p-501bf161.entry.js.map} +0 -0
- /package/dist/md3/{p-c063c823.entry.js.map → p-56c7c570.entry.js.map} +0 -0
- /package/dist/md3/{p-2e9503d7.entry.js.map → p-56ca0c3c.entry.js.map} +0 -0
- /package/dist/md3/{p-ac8762e5.entry.js.map → p-5b63149a.entry.js.map} +0 -0
- /package/dist/md3/{p-c5af701b.entry.js.map → p-5f668b0a.entry.js.map} +0 -0
- /package/dist/md3/{p-8eb0b6a4.entry.js.map → p-6d65fc6a.entry.js.map} +0 -0
- /package/dist/md3/{p-e3124e1e.entry.js.map → p-707b6d7c.entry.js.map} +0 -0
- /package/dist/md3/{p-a5fee424.entry.js.map → p-71f1660b.entry.js.map} +0 -0
- /package/dist/md3/{p-1a8ec5bc.entry.js.map → p-7501170f.entry.js.map} +0 -0
- /package/dist/md3/{p-4e3d6e40.entry.js.map → p-7d1686a7.entry.js.map} +0 -0
- /package/dist/md3/{p-4dda4cb0.entry.js.map → p-845ca9cc.entry.js.map} +0 -0
- /package/dist/md3/{p-77a01bcc.entry.js.map → p-87f88d62.entry.js.map} +0 -0
- /package/dist/md3/{p-5b74694e.entry.js.map → p-89d47130.entry.js.map} +0 -0
- /package/dist/md3/{p-b0431a5c.entry.js.map → p-8bdcda53.entry.js.map} +0 -0
- /package/dist/md3/{p-c10a33c2.entry.js.map → p-8e7df348.entry.js.map} +0 -0
- /package/dist/md3/{p-05ae91b6.entry.js.map → p-90ccf4c3.entry.js.map} +0 -0
- /package/dist/md3/{p-da4e27d4.entry.js.map → p-a4d4cfed.entry.js.map} +0 -0
- /package/dist/md3/{p-5394254f.entry.js.map → p-a976498b.entry.js.map} +0 -0
- /package/dist/md3/{p-6038b907.entry.js.map → p-ab568d1c.entry.js.map} +0 -0
- /package/dist/md3/{p-bf7842f8.entry.js.map → p-adf8a415.entry.js.map} +0 -0
- /package/dist/md3/{p-45280bf4.entry.js.map → p-b2d88292.entry.js.map} +0 -0
- /package/dist/md3/{p-796f79f8.entry.js.map → p-b3b5247b.entry.js.map} +0 -0
- /package/dist/md3/{p-5b799707.entry.js.map → p-b4266f6b.entry.js.map} +0 -0
- /package/dist/md3/{p-c00f7514.entry.js.map → p-ba011453.entry.js.map} +0 -0
- /package/dist/md3/{p-6ba63c73.entry.js.map → p-bc24f0c9.entry.js.map} +0 -0
- /package/dist/md3/{p-0c2e824d.entry.js.map → p-c20fbb9e.entry.js.map} +0 -0
- /package/dist/md3/{p-fc0b325d.entry.js.map → p-c2944c87.entry.js.map} +0 -0
- /package/dist/md3/{p-4e45b2ff.entry.js.map → p-c58c68d0.entry.js.map} +0 -0
- /package/dist/md3/{p-0f764a1e.entry.js.map → p-d2e39c6e.entry.js.map} +0 -0
- /package/dist/md3/{p-50555bb7.entry.js.map → p-d8885f53.entry.js.map} +0 -0
- /package/dist/md3/{p-c1ca6f6c.entry.js.map → p-db6fb4e1.entry.js.map} +0 -0
- /package/dist/md3/{p-81843ff7.entry.js.map → p-dcba2857.entry.js.map} +0 -0
- /package/dist/md3/{p-65195996.entry.js.map → p-e357e8ac.entry.js.map} +0 -0
- /package/dist/md3/{p-39cb7c24.entry.js.map → p-e5c6795e.entry.js.map} +0 -0
- /package/dist/md3/{p-e6d7f0ff.entry.js.map → p-f403ad20.entry.js.map} +0 -0
- /package/dist/md3/{p-708a9313.entry.js.map → p-f5fd9a0b.entry.js.map} +0 -0
- /package/dist/md3/{p-aa0e7d4d.entry.js.map → p-f71af38f.entry.js.map} +0 -0
- /package/dist/md3/{p-757e3aaf.entry.js.map → p-fac6da4c.entry.js.map} +0 -0
- /package/dist/md3/{p-134b670a.entry.js.map → p-fc864f96.entry.js.map} +0 -0
- /package/dist/md3/{p-32bdd439.entry.js.map → p-fd686966.entry.js.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as t,H as i,c as s,h as e,d as r,t as a}from"./p-BR6gfOQH.js";import{s as n}from"./p-DWxN44zD.js";const l=()=>`:host{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;cursor:pointer;user-select:none;inline-size:100%;min-block-size:var(--_surface-min-block);overflow:visible;--md-slider-track-length:200px;--md-slider-active-color:var(--md-sys-color-primary);--md-slider-inactive-color:var(--md-sys-color-secondary-container);--md-slider-tick-active-color:var(--md-sys-color-primary);--md-slider-tick-filled-color:var(--md-sys-color-on-primary);--md-slider-tick-inactive-color:var(--md-sys-color-on-secondary-container);--md-slider-thumb-color:var(--md-sys-color-primary);--md-slider-value-bg:var(--md-sys-color-inverse-surface);--md-slider-value-color:var(--md-sys-color-inverse-on-surface);--md-slider-inset-icon-color:var(--md-slider-tick-inactive-color);--md-slider-inset-icon-active-color:var(--md-slider-tick-filled-color);--_value-pct:50%;--_center-pct:50%;--_active-start-pct:0%;--_active-width-pct:50%;--_start-pct:0%;--_end-pct:100%;--_center-gap:4px;--_active-track:var(--md-slider-active-color);--_inactive-track:var(--md-slider-inactive-color);--_thumb-fill:var(--md-slider-thumb-color);--_tick-active:var(--md-slider-tick-active-color);--_tick-filled:var(--md-slider-tick-filled-color);--_tick-inactive:var(--md-slider-tick-inactive-color)}:host(.md-slider--vertical){flex-direction:column;align-items:stretch;inline-size:auto;min-inline-size:var(--_vertical-min-inline);min-block-size:var(--md-slider-track-length)}:host([full-height].md-slider--vertical){block-size:100%;min-block-size:var(--md-slider-min-track-length, 88px)}:host(.md-slider--size-xs){--_track-thickness-default:16px;--_thumb-block-default:max(24px, calc(44px + var(--md-sys-density-scale, 0) * 4px));--_thumb-inline-default:4px;--_track-radius-default:8px;--_track-thumb-gap:6px;--_track-inside-corner:2px;--_inset-icon-size:0px}:host(.md-slider--size-sm){--_track-thickness-default:24px;--_thumb-block-default:max(24px, calc(44px + var(--md-sys-density-scale, 0) * 4px));--_thumb-inline-default:4px;--_track-radius-default:8px;--_track-thumb-gap:6px;--_track-inside-corner:2px;--_inset-icon-size:0px}:host(.md-slider--size-md){--_track-thickness-default:40px;--_thumb-block-default:max(24px, calc(52px + var(--md-sys-density-scale, 0) * 4px));--_thumb-inline-default:4px;--_track-radius-default:12px;--_track-thumb-gap:6px;--_track-inside-corner:2px;--_inset-icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px))}:host(.md-slider--size-lg){--_track-thickness-default:56px;--_thumb-block-default:max(24px, calc(68px + var(--md-sys-density-scale, 0) * 4px));--_thumb-inline-default:4px;--_track-radius-default:16px;--_track-thumb-gap:6px;--_track-inside-corner:2px;--_inset-icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px))}:host(.md-slider--size-xl){--_track-thickness-default:96px;--_thumb-block-default:max(24px, calc(108px + var(--md-sys-density-scale, 0) * 4px));--_thumb-inline-default:4px;--_track-radius-default:28px;--_track-thumb-gap:6px;--_track-inside-corner:2px;--_inset-icon-size:32px}:host{--_track-thickness:var(--md-slider-track-height, max(8px, calc(var(--_track-thickness-default) + var(--md-sys-density-scale, 0) * 4px)));--_track-radius:var(--md-slider-track-shape, var(--_track-radius-default));--_thumb-block:var(--md-slider-thumb-height, var(--_thumb-block-default));--_thumb-inline:var(--md-slider-thumb-width, var(--_thumb-inline-default));--_tick-size:max(4px, calc(var(--_track-thickness) * 0.12));--_tick-pad:calc(4px + var(--_tick-size) / 2)}:host(.md-slider--horizontal){--_surface-min-block:var(--_thumb-block)}:host(.md-slider--vertical){--_surface-min-block:var(--md-slider-track-length);--_vertical-min-inline:max(var(--_track-thickness), var(--_thumb-block))}.md-slider__inset{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;pointer-events:none;color:var(--md-slider-inset-icon-color);inline-size:var(--_inset-icon-size, 24px);block-size:var(--_inset-icon-size, 24px)}:host(.md-slider--horizontal) .md-slider__inset{inset-inline-start:8px;inset-block-start:50%;transform:translateY(-50%)}:host(.md-slider--vertical) .md-slider__inset{inset-block-end:8px;inset-inline-start:50%;margin-inline-start:calc(-0.5 * var(--_inset-icon-size, 24px))}.md-slider__inset--on-active{color:var(--md-slider-inset-icon-active-color)}.md-slider__inset-font{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons'), sans-serif;font-size:var(--_inset-icon-size, 24px);font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;overflow-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;pointer-events:none}::slotted([slot='inset-icon']){display:inline-flex;align-items:center;justify-content:center;inline-size:var(--_inset-icon-size, 24px);block-size:var(--_inset-icon-size, 24px);font-size:var(--_inset-icon-size, 24px);color:inherit;fill:currentColor;pointer-events:none}.md-slider__surface{position:relative;display:flex;flex:1;flex-direction:row;align-items:center;min-inline-size:0;min-block-size:var(--_surface-min-block);overflow:visible}:host(.md-slider--vertical) .md-slider__surface{flex-direction:column;flex:1;align-items:center;justify-content:center;min-block-size:var(--md-slider-track-length)}.md-slider__rail{position:relative;flex:1;min-inline-size:0;min-block-size:var(--_surface-min-block);overflow:visible}:host(.md-slider--range) .md-slider__rail,:host(.md-slider--vertical) .md-slider__rail{touch-action:none;cursor:pointer}:host(.md-slider--range) .md-slider__input,:host(.md-slider--vertical) .md-slider__input{pointer-events:none}:host(.md-slider--vertical) .md-slider__rail{inline-size:max(var(--_track-thickness), var(--_thumb-block));block-size:var(--md-slider-track-length);flex:none}:host([full-height].md-slider--vertical) .md-slider__surface{min-block-size:0}:host([full-height].md-slider--vertical) .md-slider__rail{block-size:auto;flex:1 1 auto;min-block-size:0}:host([full-height].md-slider--vertical) .md-slider__input{position:absolute;inset:0;inline-size:100%;block-size:100%;transform:none}.md-slider__track{position:absolute;pointer-events:none;border-radius:var(--_track-radius);overflow:hidden}:host(.md-slider--horizontal) .md-slider__track{inset-inline:0;inset-block-start:50%;transform:translateY(-50%);block-size:var(--_track-thickness);inline-size:100%}:host(.md-slider--vertical) .md-slider__track{inset-block:0;inset-inline-start:50%;margin-inline-start:calc(-0.5 * var(--_track-thickness));inline-size:var(--_track-thickness);block-size:100%}.md-slider__track-inactive{position:absolute;background-color:var(--_inactive-track)}.md-slider__track-active{position:absolute;background-color:var(--_active-track)}:host(.md-slider--horizontal:not(.md-slider--centered):not(.md-slider--range)) .md-slider__track-active{inset-inline-start:0;inset-block:0;inline-size:max(0px, calc(var(--_value-pct) - var(--_track-thumb-gap)));block-size:100%;border-start-end-radius:var(--_track-inside-corner);border-end-end-radius:var(--_track-inside-corner)}:host(.md-slider--horizontal:not(.md-slider--centered):not(.md-slider--range)) .md-slider__track-inactive{inset-block:0;inset-inline-start:calc(var(--_value-pct) + var(--_track-thumb-gap));inset-inline-end:0;border-start-start-radius:var(--_track-inside-corner);border-end-start-radius:var(--_track-inside-corner)}:host(.md-slider--vertical:not(.md-slider--centered):not(.md-slider--range)) .md-slider__track-active{inset-inline:0;inset-block-end:0;block-size:max(0px, calc(var(--_value-pct) - var(--_track-thumb-gap)));inline-size:100%;border-start-start-radius:var(--_track-inside-corner);border-start-end-radius:var(--_track-inside-corner)}:host(.md-slider--vertical:not(.md-slider--centered):not(.md-slider--range)) .md-slider__track-inactive{inset-inline:0;inset-block-start:0;block-size:max(0px, calc(100% - var(--_value-pct) - var(--_track-thumb-gap)));border-end-start-radius:var(--_track-inside-corner);border-end-end-radius:var(--_track-inside-corner)}:host(.md-slider--horizontal.md-slider--centered) .md-slider__track-inactive{inset-block:0;inset-inline-start:0;inline-size:max(0px, calc(var(--_active-start-pct) - var(--_centered-start-gap)));border-start-end-radius:var(--_track-inside-corner);border-end-end-radius:var(--_track-inside-corner)}:host(.md-slider--horizontal.md-slider--centered) .md-slider__track::after{content:'';position:absolute;inset-block:0;inset-inline-start:calc(var(--_active-start-pct) + var(--_active-width-pct) + var(--_centered-end-gap));inset-inline-end:0;background-color:var(--_inactive-track);border-start-start-radius:var(--_track-inside-corner);border-end-start-radius:var(--_track-inside-corner)}:host(.md-slider--horizontal.md-slider--centered) .md-slider__track-active{inset-inline-start:calc(var(--_active-start-pct) + var(--_centered-start-gap));inset-block:0;inline-size:max(0px, calc(var(--_active-width-pct) - var(--_centered-start-gap) - var(--_centered-end-gap)));block-size:100%;border-radius:var(--_track-inside-corner)}:host(.md-slider--vertical.md-slider--centered) .md-slider__track-inactive{inset-inline:0;inset-block-end:0;block-size:max(0px, calc(var(--_active-start-pct) - var(--_centered-start-gap)));border-start-start-radius:var(--_track-inside-corner);border-start-end-radius:var(--_track-inside-corner)}:host(.md-slider--vertical.md-slider--centered) .md-slider__track::after{content:'';position:absolute;inset-inline:0;inset-block-start:0;block-size:max(0px, calc(100% - var(--_active-start-pct) - var(--_active-width-pct) - var(--_centered-end-gap)));background-color:var(--_inactive-track);border-end-start-radius:var(--_track-inside-corner);border-end-end-radius:var(--_track-inside-corner)}:host(.md-slider--vertical.md-slider--centered) .md-slider__track-active{inset-inline:0;inset-block-end:calc(var(--_active-start-pct) + var(--_centered-start-gap));block-size:max(0px, calc(var(--_active-width-pct) - var(--_centered-start-gap) - var(--_centered-end-gap)));inline-size:100%;border-radius:var(--_track-inside-corner)}:host(.md-slider--horizontal.md-slider--range) .md-slider__track-inactive{inset-block:0;inset-inline-start:0;inline-size:max(0px, calc(var(--_start-pct) - var(--_track-thumb-gap)));border-start-end-radius:var(--_track-inside-corner);border-end-end-radius:var(--_track-inside-corner)}:host(.md-slider--horizontal.md-slider--range) .md-slider__track::after{content:'';position:absolute;inset-block:0;inset-inline-start:calc(var(--_end-pct) + var(--_track-thumb-gap));inset-inline-end:0;background-color:var(--_inactive-track);border-start-start-radius:var(--_track-inside-corner);border-end-start-radius:var(--_track-inside-corner)}:host(.md-slider--horizontal.md-slider--range) .md-slider__track-active{inset-inline-start:calc(var(--_start-pct) + var(--_track-thumb-gap));inset-block:0;inline-size:max(0px, calc(var(--_end-pct) - var(--_start-pct) - 2 * var(--_track-thumb-gap)));block-size:100%;border-radius:var(--_track-inside-corner)}:host(.md-slider--vertical.md-slider--range) .md-slider__track-inactive{inset-inline:0;inset-block-end:0;block-size:max(0px, calc(var(--_start-pct) - var(--_track-thumb-gap)));border-start-start-radius:var(--_track-inside-corner);border-start-end-radius:var(--_track-inside-corner)}:host(.md-slider--vertical.md-slider--range) .md-slider__track::after{content:'';position:absolute;inset-inline:0;inset-block-start:0;block-size:max(0px, calc(100% - var(--_end-pct) - var(--_track-thumb-gap)));background-color:var(--_inactive-track);border-end-start-radius:var(--_track-inside-corner);border-end-end-radius:var(--_track-inside-corner)}:host(.md-slider--vertical.md-slider--range) .md-slider__track-active{inset-inline:0;inset-block-end:calc(var(--_start-pct) + var(--_track-thumb-gap));block-size:max(0px, calc(var(--_end-pct) - var(--_start-pct) - 2 * var(--_track-thumb-gap)));inline-size:100%;border-radius:var(--_track-inside-corner)}.md-slider__ticks{position:absolute;inset:0;pointer-events:none;z-index:1}:host(.md-slider--horizontal) .md-slider__tick{position:absolute;inset-block-start:50%;margin-inline-start:calc(-0.5 * var(--_tick-size));margin-block-start:calc(-0.5 * var(--_tick-size));inset-inline-start:0}:host(.md-slider--vertical) .md-slider__tick{position:absolute;inset-inline-start:50%;margin-inline-start:calc(-0.5 * var(--_tick-size));margin-block-end:calc(-0.5 * var(--_tick-size))}.md-slider__tick{inline-size:var(--_tick-size);block-size:var(--_tick-size);border-radius:50%}.md-slider__tick--on-active{background-color:var(--_tick-active);opacity:0}.md-slider__tick--on-filled{background-color:var(--_tick-filled)}.md-slider__tick--on-inactive{background-color:var(--_tick-inactive)}.md-slider__thumb{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2;pointer-events:none;inline-size:var(--_thumb-inline);block-size:var(--_thumb-block);overflow:visible}:host(.md-slider--horizontal) .md-slider__thumb{inset-block-start:50%;transform:translateY(-50%);margin-inline-start:calc(-0.5 * var(--_thumb-inline));inset-inline-start:var(--_value-pct)}:host(.md-slider--horizontal) .md-slider__thumb--start{inset-inline-start:var(--_start-pct)}:host(.md-slider--horizontal) .md-slider__thumb--end{inset-inline-start:var(--_end-pct)}:host(.md-slider--vertical) .md-slider__thumb{inline-size:var(--_thumb-block);block-size:var(--_thumb-inline);inset-inline-start:50%;inset-block-end:calc(var(--_value-pct) - var(--_thumb-inline) / 2);inset-block-start:auto;margin-inline-start:calc(-0.5 * var(--_thumb-block))}:host(.md-slider--vertical) .md-slider__thumb--start{inset-block-end:calc(var(--_start-pct) - var(--_thumb-inline) / 2)}:host(.md-slider--vertical) .md-slider__thumb--end{inset-block-end:calc(var(--_end-pct) - var(--_thumb-inline) / 2)}.md-slider__thumb-knob{display:block;inline-size:var(--_thumb-inline);block-size:var(--_thumb-block);border-radius:var(--md-sys-shape-corner-full, 9999px);background-color:var(--_thumb-fill);box-shadow:none;flex-shrink:0;transition:inline-size var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard), block-size var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard)}:host(.md-slider--vertical) .md-slider__thumb-knob{inline-size:var(--_thumb-block);block-size:var(--_thumb-inline)}:host(:not(.md-slider--disabled)) .md-slider__thumb--pressing>.md-slider__thumb-knob{inline-size:2px;block-size:calc(var(--_thumb-block) * 1.05)}:host(.md-slider--vertical:not(.md-slider--disabled)) .md-slider__thumb--pressing>.md-slider__thumb-knob{inline-size:calc(var(--_thumb-block) * 1.05);block-size:2px}.md-slider__state-layer{display:none}.md-slider__thumb--focus-visible>.md-slider__thumb-knob{outline:3px solid var(--md-sys-color-secondary);outline-offset:2px}.md-slider__value-indicator{position:absolute;z-index:3;min-inline-size:max(28px, calc(48px + var(--md-sys-density-scale, 0) * 4px));min-block-size:max(24px, calc(44px + var(--md-sys-density-scale, 0) * 4px));display:inline-flex;align-items:center;justify-content:center;padding-block:var(--md-slider-value-padding-block, var(--md-sys-spacing-inset-md, 12px));padding-inline:var(--md-slider-value-padding-inline, var(--md-sys-spacing-inset-lg, 16px));box-sizing:border-box;background-color:var(--md-slider-value-bg);color:var(--md-slider-value-color);border-radius:var(--md-slider-value-shape, var(--md-sys-shape-corner-full, 9999px));font-family:var(--md-slider-value-font-family, var(--md-sys-typescale-label-medium-font-family, Roboto, sans-serif));font-size:var(--md-slider-value-font-size, var(--md-sys-typescale-label-medium-size, 12px));font-weight:var(--md-slider-value-font-weight, var(--md-sys-typescale-label-medium-weight, 500));line-height:var(--md-slider-value-line-height, var(--md-sys-typescale-label-medium-line-height, 16px));letter-spacing:var(--md-sys-typescale-label-medium-letter-spacing, 0.5px);white-space:nowrap;pointer-events:none}:host(.md-slider--horizontal) .md-slider__value-indicator{inset-block-end:calc(100% + 4px);left:50%;transform:translateX(-50%)}:host(.md-slider--vertical) .md-slider__value-indicator{inset-inline-start:calc(100% + 4px);inset-block-end:50%;transform:translateY(50%)}.md-slider__input-shell{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.md-slider__input{position:absolute;inset:0;inline-size:100%;block-size:100%;margin:0;padding:0;opacity:0;cursor:pointer;pointer-events:auto;box-sizing:border-box}:host(.md-slider--vertical) .md-slider__input-shell{align-items:center;justify-content:center}:host(.md-slider--vertical) .md-slider__input{position:relative;inset:auto;inline-size:var(--md-slider-track-length);block-size:max(44px, var(--_state-layer-size));transform:rotate(-90deg);transform-origin:center center}.md-slider__input--start,.md-slider__input--end{inline-size:100%;block-size:100%}:host(.md-slider--disabled){cursor:not-allowed;pointer-events:none;opacity:var(--md-sys-state-disabled-content-opacity)}:host(.md-slider--disabled) .md-slider__track-inactive{background-color:color-mix( in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), var(--md-sys-color-surface) )}:host(.md-slider--disabled) .md-slider__track-active,:host(.md-slider--disabled) .md-slider__thumb-knob{background-color:color-mix( in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent );box-shadow:none}:host(:focus-visible){outline:none}:host(.md-slider--stops) .md-slider__track-active{transition:inline-size var(--md-sys-motion-spring-spatial-fast-duration, 350ms) var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.90)), block-size var(--md-sys-motion-spring-spatial-fast-duration, 350ms) var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.90)), inset-inline-start var(--md-sys-motion-spring-spatial-fast-duration, 350ms) var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.90)), inset-block-end var(--md-sys-motion-spring-spatial-fast-duration, 350ms) var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.90))}:host(.md-slider--stops) .md-slider__tick{transition:opacity var(--md-sys-motion-spring-effects-default-duration, 200ms) var(--md-sys-motion-spring-effects-default-easing, cubic-bezier(0.34, 0.80, 0.34, 1.00)), background-color var(--md-sys-motion-spring-effects-default-duration, 200ms) var(--md-sys-motion-spring-effects-default-easing, cubic-bezier(0.34, 0.80, 0.34, 1.00))}: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=t(class t extends i{constructor(i){super();if(i!==false){this.__registerHost()}this.__attachShadow();this.mdInput=s(this,"mdInput",7);this.mdChange=s(this,"mdChange",7);this.mdFocus=s(this,"mdFocus",7);this.mdBlur=s(this,"mdBlur",7);this.mdDragStart=s(this,"mdDragStart",7);this.mdDragEnd=s(this,"mdDragEnd",7);this.internals=this.attachInternals();this.min=0;this.max=100;this.value=50;this.step=1;this.disabled=false;this.name="";this.nameStart="";this.nameEnd="";this.variant="standard";this.range=false;this.stops=false;this.valueStart=0;this.valueEnd=100;this.size="xs";this.orientation="horizontal";this.fullHeight=false;this.valueIndicator=false;this.labeled=false;this.insetIcon=false;this.icon="";this.sliderAriaLabel="";this.ariaLabelStart="";this.ariaLabelEnd="";this.valueText="";this.valueStartText="";this.valueEndText="";this.controlled=false;this.density=0;this.keyFocusedThumb=null;this.pressingThumb=null;this._liveValue=null;this._liveStart=null;this._liveEnd=null;this.rangeDragThumb=null;this.verticalDragging=false;this.initialValue=0;this.initialStart=0;this.initialEnd=0;this.handleInput=(t,i)=>{const s=t.target;const e=Number(s.value);if(this.range){if(i){if(e>this.displayEnd){this.setEnd(e);this.setStart(e)}else{this.setStart(e)}}else{if(e<this.displayStart){this.setStart(e);this.setEnd(e)}else{this.setEnd(e)}}this.syncCssVars();this.mdInput.emit(this.rangeDetail())}else{this.setSingle(e);this.syncCssVars();this.mdInput.emit(this.singleDetail())}};this.handleChange=(t,i)=>{const s=t.target;const e=Number(s.value);if(this.range){if(i){if(e>this.displayEnd){this.setEnd(e);this.setStart(e)}else{this.setStart(e)}}else{if(e<this.displayStart){this.setStart(e);this.setEnd(e)}else{this.setEnd(e)}}this.syncCssVars();this.mdChange.emit(this.rangeDetail())}else{this.setSingle(e);this.syncCssVars();this.mdChange.emit(this.singleDetail())}this.commit()};this.onRangeRailPointerDown=t=>{if(!this.range||this.disabled)return;const i=t.currentTarget;const s=this.pointerToValue(t.clientX,t.clientY);const e=Math.abs(s-this.displayStart);const r=Math.abs(s-this.displayEnd);if(e===r){this.rangeDragThumb=s>=this.displayEnd?"end":"start"}else{this.rangeDragThumb=e<r?"start":"end"}this.pressingThumb=this.rangeDragThumb;this.mdDragStart.emit({thumb:this.rangeDragThumb,value:this.rangeDragThumb==="start"?this.displayStart:this.displayEnd,valueStart:this.displayStart,valueEnd:this.displayEnd});this.applyRangePointerValue(s);try{i.setPointerCapture(t.pointerId)}catch{}t.preventDefault()};this.onRangeRailPointerMove=t=>{if(!this.range||this.disabled||!this.rangeDragThumb)return;this.applyRangePointerValue(this.pointerToValue(t.clientX,t.clientY));t.preventDefault()};this.onRangeRailPointerUp=t=>{if(!this.range)return;this.endRangePointerGesture(t)};this.onRangeRailLostPointerCapture=()=>{if(!this.rangeDragThumb)return;const t=this.rangeDragThumb;const i=this.rangeDetail();this.rangeDragThumb=null;this.pressingThumb=null;this.mdChange.emit(i);this.mdDragEnd.emit({thumb:t,...i});this.commit();this.syncCssVars()};this.onVerticalRailPointerDown=t=>{if(this.range||this.disabled||this.orientation!=="vertical")return;const i=t.currentTarget;this.verticalDragging=true;this.pressingThumb="single";const s=this.pointerToValue(t.clientX,t.clientY);this.setSingle(s);this.syncCssVars();this.mdDragStart.emit({thumb:"single",value:this.displayValue});this.mdInput.emit(this.singleDetail());try{i.setPointerCapture(t.pointerId)}catch{}t.preventDefault()};this.onVerticalRailPointerMove=t=>{if(!this.verticalDragging)return;const i=this.pointerToValue(t.clientX,t.clientY);this.setSingle(i);this.syncCssVars();this.mdInput.emit(this.singleDetail());t.preventDefault()};this.onVerticalRailPointerUp=t=>{if(!this.verticalDragging)return;this.verticalDragging=false;this.pressingThumb=null;try{t.currentTarget.releasePointerCapture(t.pointerId)}catch{}const i=this.singleDetail();this.mdChange.emit(i);this.mdDragEnd.emit({thumb:"single",...i});this.commit();this.syncCssVars()};this.onVerticalRailLostPointerCapture=()=>{if(!this.verticalDragging)return;this.verticalDragging=false;this.pressingThumb=null;const t=this.singleDetail();this.mdChange.emit(t);this.mdDragEnd.emit({thumb:"single",...t});this.commit();this.syncCssVars()};this.onInputFocus=t=>i=>{const s=i.target;try{if(s.matches(":focus-visible")){this.keyFocusedThumb=t}}catch{this.keyFocusedThumb=t}this.mdFocus.emit({thumb:t})};this.onInputBlur=t=>()=>{this.keyFocusedThumb=null;this.mdBlur.emit({thumb:t})};this.onInputKeyDown=i=>s=>{if(!t.SLIDER_KEYS.has(s.key))return;if(!this.pressingThumb){this.pressingThumb=i;const t=this.range?{thumb:i,value:i==="start"?this.displayStart:this.displayEnd,valueStart:this.displayStart,valueEnd:this.displayEnd}:{thumb:"single",value:this.displayValue};this.mdDragStart.emit(t)}};this.onInputKeyUp=i=>s=>{if(!t.SLIDER_KEYS.has(s.key))return;this.pressingThumb=null;const e=this.range?{thumb:i,value:i==="start"?this.displayStart:this.displayEnd,valueStart:this.displayStart,valueEnd:this.displayEnd}:{thumb:"single",value:this.displayValue};this.mdDragEnd.emit(e)};this.onInputPointerDown=t=>()=>{this.pressingThumb=t;const i=this.range?{thumb:t,value:t==="start"?this.displayStart:this.displayEnd,valueStart:this.displayStart,valueEnd:this.displayEnd}:{thumb:"single",value:this.displayValue};this.mdDragStart.emit(i)};this.onInputPointerUp=t=>()=>{this.pressingThumb=null;const i=this.range?{thumb:t,value:t==="start"?this.displayStart:this.displayEnd,valueStart:this.displayStart,valueEnd:this.displayEnd}:{thumb:"single",value:this.displayValue};this.mdDragEnd.emit(i)}}get displayValue(){return this._liveValue??this.value}get displayStart(){return this._liveStart??this.valueStart}get displayEnd(){return this._liveEnd??this.valueEnd}setSingle(t){if(this.controlled){this._liveValue=t}else{this.value=t}}setStart(t){if(this.controlled){this._liveStart=t}else{this.valueStart=t}}setEnd(t){if(this.controlled){this._liveEnd=t}else{this.valueEnd=t}}commit(){if(this.controlled){this._liveValue=null;this._liveStart=null;this._liveEnd=null}else{if(this._liveValue!==null){this.value=this._liveValue;this._liveValue=null}if(this._liveStart!==null){this.valueStart=this._liveStart;this._liveStart=null}if(this._liveEnd!==null){this.valueEnd=this._liveEnd;this._liveEnd=null}}}connectedCallback(){this.initialValue=this.value;this.initialStart=this.valueStart;this.initialEnd=this.valueEnd}componentDidLoad(){this.clampValues();this.syncCssVars();this.syncFormValue()}syncFormValue(){if(!this.name&&!this.nameStart&&!this.nameEnd){n(this.internals,null);return}if(!this.range){n(this.internals,String(this.value));return}const t=new FormData;t.append(this.nameStart||this.name,String(this.valueStart));t.append(this.nameEnd||this.name,String(this.valueEnd));n(this.internals,t)}formResetCallback(){this.value=this.initialValue;this.valueStart=this.initialStart;this.valueEnd=this.initialEnd;this.syncFormValue()}formStateRestoreCallback(t){if(t==null)return;if(typeof t==="string"){const i=Number(t);if(Number.isFinite(i))this.value=i;return}const i=[...t.values()].map(Number).filter((t=>Number.isFinite(t)));if(i.length===2){this.valueStart=i[0];this.valueEnd=i[1]}}clampValues(){this.value=Math.min(this.max,Math.max(this.min,this.value));if(this.range){this.valueStart=Math.min(this.max,Math.max(this.min,this.valueStart));this.valueEnd=Math.min(this.max,Math.max(this.min,this.valueEnd))}}pct(t){if(this.max===this.min)return 0;return(t-this.min)/(this.max-this.min)*100}syncCssVars(){const t=this.el;const i=this.displayValue;const s=this.displayStart;const e=this.displayEnd;const r=t=>`${this.pct(t)}%`;t.style.setProperty("--_value-pct",r(i));const a=(this.min+this.max)/2;const n=this.pct(a);const l=this.pct(i);const d=Math.min(n,l);const c=Math.max(n,l);t.style.setProperty("--_center-pct",`${n}%`);t.style.setProperty("--_active-start-pct",`${d}%`);t.style.setProperty("--_active-width-pct",`${c-d}%`);const o=l<=n;t.style.setProperty("--_centered-start-gap",o?"var(--_track-thumb-gap)":"var(--_center-gap)");t.style.setProperty("--_centered-end-gap",o?"var(--_center-gap)":"var(--_track-thumb-gap)");if(this.range){t.style.setProperty("--_start-pct",r(s));t.style.setProperty("--_end-pct",r(e))}}onValuePropChange(){this._liveValue=null;this.syncCssVars();this.syncFormValue()}onValueStartPropChange(){this._liveStart=null;this.syncCssVars();this.syncFormValue()}onValueEndPropChange(){this._liveEnd=null;this.syncCssVars();this.syncFormValue()}onFormIdentityChange(){this.syncFormValue()}onLayoutDeps(){this.syncCssVars()}onBoundsChange(){this.clampValues();this.syncCssVars()}get showStops(){return this.stops}get isCentered(){return!this.range&&this.variant==="centered"}get showBubble(){return this.valueIndicator||this.labeled}formatValue(t){if(this.step>0){const i=(`${this.step}`.split(".")[1]||"").length;return t.toFixed(i)}return String(Math.round(t))}get insetArea(){return this.insetIcon&&!this.range&&this.size!=="xs"&&this.size!=="sm"}get insetOnActive(){if(!this.insetArea)return false;if(this.isCentered){const t=(this.min+this.max)/2;return this.displayValue<t}return this.displayValue>this.min}singleDetail(){return{value:this.displayValue}}rangeDetail(){return{value:this.rangeDragThumb==="start"?this.displayStart:this.displayEnd,valueStart:this.displayStart,valueEnd:this.displayEnd}}snapToStep(t){const i=this.step;if(i<=0)return Math.min(this.max,Math.max(this.min,t));const s=Math.round((t-this.min)/i);return Math.min(this.max,Math.max(this.min,this.min+s*i))}pointerToValue(t,i){const s=this.el.shadowRoot?.querySelector(".md-slider__rail");if(!s)return this.min;const e=s.getBoundingClientRect();const r=this.orientation==="vertical";let a;if(r){a=e.height>0?(e.bottom-i)/e.height:0}else{const i=getComputedStyle(this.el).direction==="rtl";a=e.width>0?i?(e.right-t)/e.width:(t-e.left)/e.width:0}a=Math.min(1,Math.max(0,a));const n=this.min+a*(this.max-this.min);return this.snapToStep(n)}applyRangePointerValue(t){if(this.rangeDragThumb==="start"){if(t>this.displayEnd){this.rangeDragThumb="end";this.pressingThumb="end";this.setEnd(t)}else{this.setStart(t)}}else if(this.rangeDragThumb==="end"){if(t<this.displayStart){this.rangeDragThumb="start";this.pressingThumb="start";this.setStart(t)}else{this.setEnd(t)}}this.syncCssVars();this.mdInput.emit(this.rangeDetail())}endRangePointerGesture(t){if(!this.rangeDragThumb)return;const i=this.rangeDragThumb;const s=this.rangeDetail();this.rangeDragThumb=null;this.pressingThumb=null;if(t){try{t.currentTarget.releasePointerCapture(t.pointerId)}catch{}}this.mdChange.emit(s);this.mdDragEnd.emit({thumb:i,...s});this.commit();this.syncCssVars()}getTickMarks(){if(!this.showStops||this.step<=0)return null;const t=this.max-this.min;const i=Math.floor(t/this.step)+1;if(i<2)return null;const s=this.orientation==="vertical";const r=this.step*.001;const a=(t,i)=>Math.abs(t-i)<r;const n=t=>{const s=t/(i-1);return`calc(var(--_tick-pad) + (100% - 2 * var(--_tick-pad)) * ${s})`};const l=(this.min+this.max)/2;const d=this.displayValue;const c=this.displayStart;const o=this.displayEnd;const h=t=>{if(this.range)return t>=c&&t<=o;if(this.isCentered){const i=Math.min(l,d);const s=Math.max(l,d);return t>=i&&t<=s}return t<=d};return Array.from({length:i},((t,i)=>{const r=this.min+i*this.step;const l=this.range?a(r,c)||a(r,o):a(r,d);const m=h(r);const u={"md-slider__tick":true,"md-slider__tick--on-active":l,"md-slider__tick--on-filled":m&&!l,"md-slider__tick--on-inactive":!m&&!l};return s?e("span",{class:u,style:{bottom:n(i)}}):e("span",{class:u,style:{insetInlineStart:n(i)}})}))}inputAriaLabel(t,i){if(t)return this.sliderAriaLabel||"slider";if(i==="start")return this.ariaLabelStart||this.sliderAriaLabel||"range start";return this.ariaLabelEnd||this.sliderAriaLabel||"range end"}wrapInputShell(t,i){return t?e("div",{class:"md-slider__input-shell"},i):i}render(){const t=this.orientation==="vertical";const i=this.showBubble;const s=this.insetArea;const a=t?{orient:"vertical"}:{};const n=this.displayValue;const l=this.displayStart;const d=this.displayEnd;return e(r,{key:"e083d8312d9628f2ff406ce1431f1be7d5e4ec16",class:{"md-slider":true,[`md-slider--size-${this.size}`]:true,"md-slider--vertical":t,"md-slider--horizontal":!t,"md-slider--centered":this.isCentered,"md-slider--range":this.range,"md-slider--stops":this.showStops,"md-slider--inset":s,"md-slider--disabled":this.disabled},"aria-orientation":t?"vertical":"horizontal"},e("div",{key:"a3e39c6f960d7c20019a7780984366b8bf6ed6ea",class:"md-slider__surface",part:"surface"},e("div",{key:"d6a85e9ae5b6ec29a6ca40c8b76d1f054bb6e994",class:"md-slider__rail",onPointerDown:this.range?this.onRangeRailPointerDown:t?this.onVerticalRailPointerDown:undefined,onPointerMove:this.range?this.onRangeRailPointerMove:t?this.onVerticalRailPointerMove:undefined,onPointerUp:this.range?this.onRangeRailPointerUp:t?this.onVerticalRailPointerUp:undefined,onPointerCancel:this.range?this.onRangeRailPointerUp:t?this.onVerticalRailPointerUp:undefined,onLostPointerCapture:this.range?this.onRangeRailLostPointerCapture:t?this.onVerticalRailLostPointerCapture:undefined},e("div",{key:"f2f38bd2557c276a92c169293ff1a0be4d09222a",class:"md-slider__track",part:"track"},e("div",{key:"4f09b81bdeac65cb21b19a95ec34f795d2d4cf06",class:"md-slider__track-inactive",part:"track-inactive"}),e("div",{key:"2642c070960a6b33c6d44437af69dbbe21653af6",class:"md-slider__track-active",part:"track-active"}),this.showStops&&e("div",{key:"6e3f6899c6f91480a592f71b1d96a457bbe351ac",class:"md-slider__ticks"},this.getTickMarks()),s&&e("span",{key:"cc8cb71c31eb7db47946d38ae42c6156cc4a150e",class:{"md-slider__inset":true,"md-slider__inset--on-active":this.insetOnActive},part:"inset","aria-hidden":"true"},e("slot",{key:"7b65cd157de7e2bd782a68a8100711f2843412e7",name:"inset-icon"},this.icon?e("span",{class:"md-slider__inset-font material-symbols-outlined"},this.icon):null))),this.range?[e("div",{class:{"md-slider__thumb":true,"md-slider__thumb--start":true,"md-slider__thumb--focus-visible":this.keyFocusedThumb==="start","md-slider__thumb--pressing":this.pressingThumb==="start"},style:{...!t?{insetInlineStart:"var(--_start-pct)"}:{}}},e("span",{class:"md-slider__thumb-knob",part:"thumb-knob"}),e("span",{class:"md-slider__state-layer",part:"state-layer","aria-hidden":"true"}),i&&e("span",{class:"md-slider__value-indicator",part:"value-indicator"},this.formatValue(l))),e("div",{class:{"md-slider__thumb":true,"md-slider__thumb--end":true,"md-slider__thumb--focus-visible":this.keyFocusedThumb==="end","md-slider__thumb--pressing":this.pressingThumb==="end"},style:{...!t?{insetInlineStart:"var(--_end-pct)"}:{}}},e("span",{class:"md-slider__thumb-knob",part:"thumb-knob"}),e("span",{class:"md-slider__state-layer",part:"state-layer","aria-hidden":"true"}),i&&e("span",{class:"md-slider__value-indicator",part:"value-indicator"},this.formatValue(d))),this.wrapInputShell(t,e("input",{type:"range",class:"md-slider__input md-slider__input--start",min:this.min,max:this.max,step:this.step,value:l,disabled:this.disabled,"aria-label":this.inputAriaLabel(false,"start"),"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":l,"aria-valuetext":this.valueStartText||undefined,"aria-orientation":t?"vertical":"horizontal",...a,onInput:t=>this.handleInput(t,true),onChange:t=>this.handleChange(t,true),onFocus:this.onInputFocus("start"),onBlur:this.onInputBlur("start"),onKeyDown:this.onInputKeyDown("start"),onKeyUp:this.onInputKeyUp("start"),onPointerDown:this.onInputPointerDown("start"),onPointerUp:this.onInputPointerUp("start")})),this.wrapInputShell(t,e("input",{type:"range",class:"md-slider__input md-slider__input--end",min:this.min,max:this.max,step:this.step,value:d,disabled:this.disabled,"aria-label":this.inputAriaLabel(false,"end"),"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":d,"aria-valuetext":this.valueEndText||undefined,"aria-orientation":t?"vertical":"horizontal",...a,onInput:t=>this.handleInput(t,false),onChange:t=>this.handleChange(t,false),onFocus:this.onInputFocus("end"),onBlur:this.onInputBlur("end"),onKeyDown:this.onInputKeyDown("end"),onKeyUp:this.onInputKeyUp("end"),onPointerDown:this.onInputPointerDown("end"),onPointerUp:this.onInputPointerUp("end")}))]:[e("div",{class:{"md-slider__thumb":true,"md-slider__thumb--focus-visible":this.keyFocusedThumb==="single","md-slider__thumb--pressing":this.pressingThumb==="single"},style:{...!t?{insetInlineStart:"var(--_value-pct)"}:{}}},e("span",{class:"md-slider__thumb-knob",part:"thumb-knob"}),e("span",{class:"md-slider__state-layer",part:"state-layer","aria-hidden":"true"}),i&&e("span",{class:"md-slider__value-indicator",part:"value-indicator"},this.formatValue(n))),this.wrapInputShell(t,e("input",{type:"range",class:"md-slider__input",min:this.min,max:this.max,step:this.step,value:n,disabled:this.disabled,"aria-label":this.inputAriaLabel(true),"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":n,"aria-valuetext":this.valueText||undefined,"aria-orientation":t?"vertical":"horizontal",...a,onInput:t=>this.handleInput(t),onChange:t=>this.handleChange(t),onFocus:this.onInputFocus("single"),onBlur:this.onInputBlur("single"),onKeyDown:this.onInputKeyDown("single"),onKeyUp:this.onInputKeyUp("single"),onPointerDown:this.onInputPointerDown("single"),onPointerUp:this.onInputPointerUp("single")}))])))}static get formAssociated(){return true}get el(){return this}static get watchers(){return{value:[{onValuePropChange:0}],valueStart:[{onValueStartPropChange:0}],valueEnd:[{onValueEndPropChange:0}],name:[{onFormIdentityChange:0}],nameStart:[{onFormIdentityChange:0}],nameEnd:[{onFormIdentityChange:0}],range:[{onFormIdentityChange:0},{onLayoutDeps:0}],variant:[{onLayoutDeps:0}],min:[{onBoundsChange:0}],max:[{onBoundsChange:0}]}}static get style(){return l()}},[321,"md-slider",{min:[2],max:[2],value:[1026],step:[2],disabled:[516],name:[513],nameStart:[1,"name-start"],nameEnd:[1,"name-end"],variant:[513],range:[516],stops:[516],valueStart:[1026,"value-start"],valueEnd:[1026,"value-end"],size:[513],orientation:[513],fullHeight:[516,"full-height"],valueIndicator:[516,"value-indicator"],labeled:[516],insetIcon:[516,"inset-icon"],icon:[1],sliderAriaLabel:[1,"aria-label"],ariaLabelStart:[1,"label-start"],ariaLabelEnd:[1,"label-end"],valueText:[1,"value-text"],valueStartText:[1,"value-start-text"],valueEndText:[1,"value-end-text"],controlled:[516],density:[514],keyFocusedThumb:[32],pressingThumb:[32],_liveValue:[32],_liveStart:[32],_liveEnd:[32]},undefined,{value:[{onValuePropChange:0}],valueStart:[{onValueStartPropChange:0}],valueEnd:[{onValueEndPropChange:0}],name:[{onFormIdentityChange:0}],nameStart:[{onFormIdentityChange:0}],nameEnd:[{onFormIdentityChange:0}],range:[{onFormIdentityChange:0},{onLayoutDeps:0}],variant:[{onLayoutDeps:0}],min:[{onBoundsChange:0}],max:[{onBoundsChange:0}]}]);d.SLIDER_KEYS=new Set(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown"]);function c(){if(typeof customElements==="undefined"){return}const t=["md-slider"];t.forEach((t=>{switch(t){case"md-slider":if(!customElements.get(a(t))){customElements.define(a(t),d)}break}}))}c();export{d as M,c as d};
|
|
2
|
+
//# sourceMappingURL=p-Dz3R-2Wn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdSliderCss","MdSlider","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","min","max","value","step","disabled","name","nameStart","nameEnd","variant","range","stops","valueStart","valueEnd","size","orientation","fullHeight","valueIndicator","labeled","insetIcon","icon","sliderAriaLabel","ariaLabelStart","ariaLabelEnd","valueText","valueStartText","valueEndText","controlled","density","keyFocusedThumb","pressingThumb","_liveValue","_liveStart","_liveEnd","rangeDragThumb","verticalDragging","initialValue","initialStart","initialEnd","handleInput","e","isStart","input","target","val","Number","displayEnd","setEnd","setStart","displayStart","syncCssVars","mdInput","emit","rangeDetail","setSingle","singleDetail","handleChange","mdChange","commit","onRangeRailPointerDown","rail","currentTarget","v","pointerToValue","clientX","clientY","dStart","Math","abs","dEnd","mdDragStart","thumb","applyRangePointerValue","setPointerCapture","pointerId","preventDefault","onRangeRailPointerMove","onRangeRailPointerUp","endRangePointerGesture","onRangeRailLostPointerCapture","detail","mdDragEnd","onVerticalRailPointerDown","displayValue","onVerticalRailPointerMove","onVerticalRailPointerUp","releasePointerCapture","onVerticalRailLostPointerCapture","onInputFocus","which","matches","mdFocus","onInputBlur","mdBlur","onInputKeyDown","SLIDER_KEYS","has","key","onInputKeyUp","onInputPointerDown","onInputPointerUp","connectedCallback","componentDidLoad","clampValues","syncFormValue","setFormValue","internals","String","data","FormData","append","formResetCallback","formStateRestoreCallback","state","n","isFinite","values","map","filter","length","pct","el","vs","ve","p","style","setProperty","mid","c","vp","lo","hi","thumbBelow","onValuePropChange","onValueStartPropChange","onValueEndPropChange","onFormIdentityChange","onLayoutDeps","onBoundsChange","showStops","isCentered","showBubble","formatValue","decimals","split","toFixed","round","insetArea","insetOnActive","snapToStep","raw","s","q","shadowRoot","querySelector","rect","getBoundingClientRect","vertical","ratio","height","bottom","rtl","getComputedStyle","direction","width","right","left","getTickMarks","span","count","floor","isVertical","eps","near","a","b","pos","i","frac","isOnActive","Array","from","_","tickVal","hidden","onFilled","cls","h","class","insetInlineStart","inputAriaLabel","single","wrapInputShell","node","render","bubble","orientVertical","orient","Host","part","onPointerDown","undefined","onPointerMove","onPointerUp","onPointerCancel","onLostPointerCapture","type","onInput","onChange","onFocus","onBlur","onKeyDown","onKeyUp","Set"],"sources":["src/components/md-slider/md-slider.css?tag=md-slider&encapsulation=shadow","src/components/md-slider/md-slider.tsx"],"sourcesContent":["/* ==========================================================\n md-slider — Material Design 3 Expressive Slider\n Spec: https://m3.material.io/components/sliders/specs\n\n PUBLIC CSS CUSTOM PROPERTIES (override per-instance):\n --md-slider-track-length Vertical track length (block axis)\n --md-slider-active-color Active track fill\n --md-slider-inactive-color Inactive track fill\n --md-slider-track-shape Track border-radius\n --md-slider-track-height Track cross-axis thickness\n --md-slider-tick-active-color Stop dot under thumb (hidden)\n --md-slider-tick-filled-color Stop dots on filled (active) track\n --md-slider-tick-inactive-color Stop dots on empty (inactive) track\n --md-slider-thumb-color Thumb knob fill\n --md-slider-thumb-width Thumb inline size\n --md-slider-thumb-height Thumb block size\n --md-slider-value-bg Value indicator background\n --md-slider-value-color Value indicator text\n --md-slider-value-shape Value indicator border-radius\n --md-slider-value-font-family Value indicator font family\n --md-slider-value-font-size Value indicator font size\n --md-slider-value-font-weight Value indicator font weight\n --md-slider-value-line-height Value indicator line height\n --md-slider-value-padding-inline Value indicator horizontal padding\n --md-slider-value-padding-block Value indicator vertical padding\n --md-slider-inset-icon-color Inset icon color (defaults to tick-inactive-color)\n --md-slider-inset-icon-active-color Inset icon color when over the active track segment\n\n CSS PARTS:\n surface Outer container\n track Track container (clips corners)\n track-inactive Inactive track segment\n track-active Active (filled) track segment\n thumb-knob Thumb knob element\n state-layer State layer overlay\n value-indicator Value label bubble\n inset Inset icon area\n\n SLOTS:\n inset-icon — Custom icon (standard slider only; use with inset-icon)\n ========================================================== */\n\n:host {\n display: flex;\n flex-direction: row;\n align-items: center;\n box-sizing: border-box;\n position: relative;\n cursor: pointer;\n user-select: none;\n inline-size: 100%;\n min-block-size: var(--_surface-min-block);\n overflow: visible;\n\n --md-slider-track-length: 200px;\n --md-slider-active-color: var(--md-sys-color-primary);\n --md-slider-inactive-color: var(--md-sys-color-secondary-container);\n --md-slider-tick-active-color: var(--md-sys-color-primary);\n --md-slider-tick-filled-color: var(--md-sys-color-on-primary);\n --md-slider-tick-inactive-color: var(--md-sys-color-on-secondary-container);\n --md-slider-thumb-color: var(--md-sys-color-primary);\n --md-slider-value-bg: var(--md-sys-color-inverse-surface);\n --md-slider-value-color: var(--md-sys-color-inverse-on-surface);\n --md-slider-inset-icon-color: var(--md-slider-tick-inactive-color);\n --md-slider-inset-icon-active-color: var(--md-slider-tick-filled-color);\n\n --_value-pct: 50%;\n --_center-pct: 50%;\n --_active-start-pct: 0%;\n --_active-width-pct: 50%;\n --_start-pct: 0%;\n --_end-pct: 100%;\n\n --_center-gap: 4px;\n\n --_active-track: var(--md-slider-active-color);\n --_inactive-track: var(--md-slider-inactive-color);\n --_thumb-fill: var(--md-slider-thumb-color);\n --_tick-active: var(--md-slider-tick-active-color);\n --_tick-filled: var(--md-slider-tick-filled-color);\n --_tick-inactive: var(--md-slider-tick-inactive-color);\n}\n\n:host(.md-slider--vertical) {\n flex-direction: column;\n align-items: stretch;\n inline-size: auto;\n min-inline-size: var(--_vertical-min-inline);\n min-block-size: var(--md-slider-track-length);\n}\n\n/* Responsive height: a vertical slider fills its parent's block size and, unlike\n the fixed-length default, SHRINKS to fit a small container instead of\n overflowing (which previously clipped the thumb at the bottom). A small floor\n keeps it usable / prevents collapse in an unsized parent. */\n:host([full-height].md-slider--vertical) {\n block-size: 100%;\n min-block-size: var(--md-slider-min-track-length, 88px);\n}\n\n/* ----- Size tokens (track thickness, thumb, shape, gap) ----- */\n:host(.md-slider--size-xs) {\n --_track-thickness-default: 16px;\n --_thumb-block-default: max(24px, calc(44px + var(--md-sys-density-scale, 0) * 4px));\n --_thumb-inline-default: 4px;\n --_track-radius-default: 8px;\n --_track-thumb-gap: 6px;\n --_track-inside-corner: 2px;\n --_inset-icon-size: 0px;\n}\n\n:host(.md-slider--size-sm) {\n --_track-thickness-default: 24px;\n --_thumb-block-default: max(24px, calc(44px + var(--md-sys-density-scale, 0) * 4px));\n --_thumb-inline-default: 4px;\n --_track-radius-default: 8px;\n --_track-thumb-gap: 6px;\n --_track-inside-corner: 2px;\n --_inset-icon-size: 0px;\n}\n\n:host(.md-slider--size-md) {\n --_track-thickness-default: 40px;\n --_thumb-block-default: max(24px, calc(52px + var(--md-sys-density-scale, 0) * 4px));\n --_thumb-inline-default: 4px;\n --_track-radius-default: 12px;\n --_track-thumb-gap: 6px;\n --_track-inside-corner: 2px;\n --_inset-icon-size: max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));\n}\n\n:host(.md-slider--size-lg) {\n --_track-thickness-default: 56px;\n --_thumb-block-default: max(24px, calc(68px + var(--md-sys-density-scale, 0) * 4px));\n --_thumb-inline-default: 4px;\n --_track-radius-default: 16px;\n --_track-thumb-gap: 6px;\n --_track-inside-corner: 2px;\n --_inset-icon-size: max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));\n}\n\n:host(.md-slider--size-xl) {\n --_track-thickness-default: 96px;\n --_thumb-block-default: max(24px, calc(108px + var(--md-sys-density-scale, 0) * 4px));\n --_thumb-inline-default: 4px;\n --_track-radius-default: 28px;\n --_track-thumb-gap: 6px;\n --_track-inside-corner: 2px;\n --_inset-icon-size: 32px;\n}\n\n/* Public overrides → resolved internal vars */\n:host {\n --_track-thickness: var(--md-slider-track-height, max(8px, calc(var(--_track-thickness-default) + var(--md-sys-density-scale, 0) * 4px)));\n --_track-radius: var(--md-slider-track-shape, var(--_track-radius-default));\n --_thumb-block: var(--md-slider-thumb-height, var(--_thumb-block-default));\n --_thumb-inline: var(--md-slider-thumb-width, var(--_thumb-inline-default));\n --_tick-size: max(4px, calc(var(--_track-thickness) * 0.12));\n --_tick-pad: calc(4px + var(--_tick-size) / 2);\n}\n\n:host(.md-slider--horizontal) {\n --_surface-min-block: var(--_thumb-block);\n}\n\n:host(.md-slider--vertical) {\n --_surface-min-block: var(--md-slider-track-length);\n --_vertical-min-inline: max(var(--_track-thickness), var(--_thumb-block));\n}\n\n/* ----- Inset icon (inside track, standard only; md/lg 24px, xl 32px) ----- */\n.md-slider__inset {\n position: absolute;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n color: var(--md-slider-inset-icon-color);\n inline-size: var(--_inset-icon-size, 24px);\n block-size: var(--_inset-icon-size, 24px);\n}\n\n:host(.md-slider--horizontal) .md-slider__inset {\n inset-inline-start: 8px;\n inset-block-start: 50%;\n transform: translateY(-50%);\n}\n\n:host(.md-slider--vertical) .md-slider__inset {\n inset-block-end: 8px;\n inset-inline-start: 50%;\n margin-inline-start: calc(-0.5 * var(--_inset-icon-size, 24px));\n}\n\n.md-slider__inset--on-active {\n color: var(--md-slider-inset-icon-active-color);\n}\n\n.md-slider__inset-font {\n font-family: var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons'), sans-serif;\n font-size: var(--_inset-icon-size, 24px);\n font-weight: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n white-space: nowrap;\n overflow-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n pointer-events: none;\n}\n\n::slotted([slot='inset-icon']) {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: var(--_inset-icon-size, 24px);\n block-size: var(--_inset-icon-size, 24px);\n font-size: var(--_inset-icon-size, 24px);\n color: inherit;\n fill: currentColor;\n pointer-events: none;\n}\n\n/* ----- Surface & rail ----- */\n.md-slider__surface {\n position: relative;\n display: flex;\n flex: 1;\n flex-direction: row;\n align-items: center;\n min-inline-size: 0;\n min-block-size: var(--_surface-min-block);\n overflow: visible;\n}\n\n:host(.md-slider--vertical) .md-slider__surface {\n flex-direction: column;\n flex: 1;\n align-items: center;\n justify-content: center;\n min-block-size: var(--md-slider-track-length);\n}\n\n.md-slider__rail {\n position: relative;\n flex: 1;\n min-inline-size: 0;\n min-block-size: var(--_surface-min-block);\n overflow: visible;\n}\n\n/* Range & vertical: native input can't track correctly; rail handles pointer instead. */\n:host(.md-slider--range) .md-slider__rail,\n:host(.md-slider--vertical) .md-slider__rail {\n touch-action: none;\n cursor: pointer;\n}\n\n:host(.md-slider--range) .md-slider__input,\n:host(.md-slider--vertical) .md-slider__input {\n pointer-events: none;\n}\n\n:host(.md-slider--vertical) .md-slider__rail {\n inline-size: max(var(--_track-thickness), var(--_thumb-block));\n block-size: var(--md-slider-track-length);\n flex: none;\n}\n\n/* Responsive vertical: the surface + rail drop the fixed track-length floor so\n they shrink with the container (no overflow/clipping); the rail flexes to fill\n the surface, so the visible track grows and shrinks with the box. */\n:host([full-height].md-slider--vertical) .md-slider__surface {\n min-block-size: 0;\n}\n:host([full-height].md-slider--vertical) .md-slider__rail {\n block-size: auto;\n flex: 1 1 auto;\n min-block-size: 0;\n}\n\n/* The vertical native input is fixed at the (200px) track length and rotated,\n which — even though it's invisible (opacity:0) and pointer-events:none here —\n keeps a 200px box that drives scroll overflow and clips the thumb in a smaller\n responsive container. Let it fill the rail instead (the rail owns pointer +\n visuals in vertical, so dropping the rotation is purely a box-size change). */\n:host([full-height].md-slider--vertical) .md-slider__input {\n position: absolute;\n inset: 0;\n inline-size: 100%;\n block-size: 100%;\n transform: none;\n}\n\n/* ----- Track (container clips outer corners; segments handle gap + inside corners) ----- */\n.md-slider__track {\n position: absolute;\n pointer-events: none;\n border-radius: var(--_track-radius);\n overflow: hidden;\n}\n\n:host(.md-slider--horizontal) .md-slider__track {\n inset-inline: 0;\n inset-block-start: 50%;\n transform: translateY(-50%);\n block-size: var(--_track-thickness);\n inline-size: 100%;\n}\n\n:host(.md-slider--vertical) .md-slider__track {\n inset-block: 0;\n inset-inline-start: 50%;\n margin-inline-start: calc(-0.5 * var(--_track-thickness));\n inline-size: var(--_track-thickness);\n block-size: 100%;\n}\n\n.md-slider__track-inactive {\n position: absolute;\n background-color: var(--_inactive-track);\n}\n\n.md-slider__track-active {\n position: absolute;\n background-color: var(--_active-track);\n}\n\n/* ===== STANDARD HORIZONTAL ===== */\n:host(.md-slider--horizontal:not(.md-slider--centered):not(.md-slider--range)) .md-slider__track-active {\n inset-inline-start: 0;\n inset-block: 0;\n inline-size: max(0px, calc(var(--_value-pct) - var(--_track-thumb-gap)));\n block-size: 100%;\n border-start-end-radius: var(--_track-inside-corner);\n border-end-end-radius: var(--_track-inside-corner);\n}\n\n:host(.md-slider--horizontal:not(.md-slider--centered):not(.md-slider--range)) .md-slider__track-inactive {\n inset-block: 0;\n inset-inline-start: calc(var(--_value-pct) + var(--_track-thumb-gap));\n inset-inline-end: 0;\n border-start-start-radius: var(--_track-inside-corner);\n border-end-start-radius: var(--_track-inside-corner);\n}\n\n/* ===== STANDARD VERTICAL ===== */\n:host(.md-slider--vertical:not(.md-slider--centered):not(.md-slider--range)) .md-slider__track-active {\n inset-inline: 0;\n inset-block-end: 0;\n block-size: max(0px, calc(var(--_value-pct) - var(--_track-thumb-gap)));\n inline-size: 100%;\n border-start-start-radius: var(--_track-inside-corner);\n border-start-end-radius: var(--_track-inside-corner);\n}\n\n:host(.md-slider--vertical:not(.md-slider--centered):not(.md-slider--range)) .md-slider__track-inactive {\n inset-inline: 0;\n inset-block-start: 0;\n block-size: max(0px, calc(100% - var(--_value-pct) - var(--_track-thumb-gap)));\n border-end-start-radius: var(--_track-inside-corner);\n border-end-end-radius: var(--_track-inside-corner);\n}\n\n/* ===== CENTERED HORIZONTAL ===== */\n/* Left inactive */\n:host(.md-slider--horizontal.md-slider--centered) .md-slider__track-inactive {\n inset-block: 0;\n inset-inline-start: 0;\n inline-size: max(0px, calc(var(--_active-start-pct) - var(--_centered-start-gap)));\n border-start-end-radius: var(--_track-inside-corner);\n border-end-end-radius: var(--_track-inside-corner);\n}\n\n/* Right inactive (pseudo) */\n:host(.md-slider--horizontal.md-slider--centered) .md-slider__track::after {\n content: '';\n position: absolute;\n inset-block: 0;\n inset-inline-start: calc(var(--_active-start-pct) + var(--_active-width-pct) + var(--_centered-end-gap));\n inset-inline-end: 0;\n background-color: var(--_inactive-track);\n border-start-start-radius: var(--_track-inside-corner);\n border-end-start-radius: var(--_track-inside-corner);\n}\n\n/* Active */\n:host(.md-slider--horizontal.md-slider--centered) .md-slider__track-active {\n inset-inline-start: calc(var(--_active-start-pct) + var(--_centered-start-gap));\n inset-block: 0;\n inline-size: max(0px, calc(var(--_active-width-pct) - var(--_centered-start-gap) - var(--_centered-end-gap)));\n block-size: 100%;\n border-radius: var(--_track-inside-corner);\n}\n\n/* ===== CENTERED VERTICAL ===== */\n/* Bottom inactive */\n:host(.md-slider--vertical.md-slider--centered) .md-slider__track-inactive {\n inset-inline: 0;\n inset-block-end: 0;\n block-size: max(0px, calc(var(--_active-start-pct) - var(--_centered-start-gap)));\n border-start-start-radius: var(--_track-inside-corner);\n border-start-end-radius: var(--_track-inside-corner);\n}\n\n/* Top inactive (pseudo) */\n:host(.md-slider--vertical.md-slider--centered) .md-slider__track::after {\n content: '';\n position: absolute;\n inset-inline: 0;\n inset-block-start: 0;\n block-size: max(0px, calc(100% - var(--_active-start-pct) - var(--_active-width-pct) - var(--_centered-end-gap)));\n background-color: var(--_inactive-track);\n border-end-start-radius: var(--_track-inside-corner);\n border-end-end-radius: var(--_track-inside-corner);\n}\n\n/* Active */\n:host(.md-slider--vertical.md-slider--centered) .md-slider__track-active {\n inset-inline: 0;\n inset-block-end: calc(var(--_active-start-pct) + var(--_centered-start-gap));\n block-size: max(0px, calc(var(--_active-width-pct) - var(--_centered-start-gap) - var(--_centered-end-gap)));\n inline-size: 100%;\n border-radius: var(--_track-inside-corner);\n}\n\n/* ===== RANGE HORIZONTAL ===== */\n/* Left inactive */\n:host(.md-slider--horizontal.md-slider--range) .md-slider__track-inactive {\n inset-block: 0;\n inset-inline-start: 0;\n inline-size: max(0px, calc(var(--_start-pct) - var(--_track-thumb-gap)));\n border-start-end-radius: var(--_track-inside-corner);\n border-end-end-radius: var(--_track-inside-corner);\n}\n\n/* Right inactive (pseudo) */\n:host(.md-slider--horizontal.md-slider--range) .md-slider__track::after {\n content: '';\n position: absolute;\n inset-block: 0;\n inset-inline-start: calc(var(--_end-pct) + var(--_track-thumb-gap));\n inset-inline-end: 0;\n background-color: var(--_inactive-track);\n border-start-start-radius: var(--_track-inside-corner);\n border-end-start-radius: var(--_track-inside-corner);\n}\n\n/* Active */\n:host(.md-slider--horizontal.md-slider--range) .md-slider__track-active {\n inset-inline-start: calc(var(--_start-pct) + var(--_track-thumb-gap));\n inset-block: 0;\n inline-size: max(0px, calc(var(--_end-pct) - var(--_start-pct) - 2 * var(--_track-thumb-gap)));\n block-size: 100%;\n border-radius: var(--_track-inside-corner);\n}\n\n/* ===== RANGE VERTICAL ===== */\n/* Bottom inactive */\n:host(.md-slider--vertical.md-slider--range) .md-slider__track-inactive {\n inset-inline: 0;\n inset-block-end: 0;\n block-size: max(0px, calc(var(--_start-pct) - var(--_track-thumb-gap)));\n border-start-start-radius: var(--_track-inside-corner);\n border-start-end-radius: var(--_track-inside-corner);\n}\n\n/* Top inactive (pseudo) */\n:host(.md-slider--vertical.md-slider--range) .md-slider__track::after {\n content: '';\n position: absolute;\n inset-inline: 0;\n inset-block-start: 0;\n block-size: max(0px, calc(100% - var(--_end-pct) - var(--_track-thumb-gap)));\n background-color: var(--_inactive-track);\n border-end-start-radius: var(--_track-inside-corner);\n border-end-end-radius: var(--_track-inside-corner);\n}\n\n/* Active */\n:host(.md-slider--vertical.md-slider--range) .md-slider__track-active {\n inset-inline: 0;\n inset-block-end: calc(var(--_start-pct) + var(--_track-thumb-gap));\n block-size: max(0px, calc(var(--_end-pct) - var(--_start-pct) - 2 * var(--_track-thumb-gap)));\n inline-size: 100%;\n border-radius: var(--_track-inside-corner);\n}\n\n/* ----- Ticks ----- */\n.md-slider__ticks {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 1;\n}\n\n:host(.md-slider--horizontal) .md-slider__tick {\n position: absolute;\n inset-block-start: 50%;\n margin-inline-start: calc(-0.5 * var(--_tick-size));\n margin-block-start: calc(-0.5 * var(--_tick-size));\n inset-inline-start: 0;\n}\n\n:host(.md-slider--vertical) .md-slider__tick {\n position: absolute;\n inset-inline-start: 50%;\n margin-inline-start: calc(-0.5 * var(--_tick-size));\n margin-block-end: calc(-0.5 * var(--_tick-size));\n}\n\n.md-slider__tick {\n inline-size: var(--_tick-size);\n block-size: var(--_tick-size);\n border-radius: 50%;\n}\n\n.md-slider__tick--on-active {\n background-color: var(--_tick-active);\n opacity: 0;\n}\n\n.md-slider__tick--on-filled {\n background-color: var(--_tick-filled);\n}\n\n.md-slider__tick--on-inactive {\n background-color: var(--_tick-inactive);\n}\n\n/* ----- Thumb ----- */\n.md-slider__thumb {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n pointer-events: none;\n inline-size: var(--_thumb-inline);\n block-size: var(--_thumb-block);\n overflow: visible;\n}\n\n:host(.md-slider--horizontal) .md-slider__thumb {\n inset-block-start: 50%;\n transform: translateY(-50%);\n margin-inline-start: calc(-0.5 * var(--_thumb-inline));\n inset-inline-start: var(--_value-pct);\n}\n\n:host(.md-slider--horizontal) .md-slider__thumb--start {\n inset-inline-start: var(--_start-pct);\n}\n\n:host(.md-slider--horizontal) .md-slider__thumb--end {\n inset-inline-start: var(--_end-pct);\n}\n\n:host(.md-slider--vertical) .md-slider__thumb {\n inline-size: var(--_thumb-block);\n block-size: var(--_thumb-inline);\n inset-inline-start: 50%;\n inset-block-end: calc(var(--_value-pct) - var(--_thumb-inline) / 2);\n inset-block-start: auto;\n margin-inline-start: calc(-0.5 * var(--_thumb-block));\n}\n\n:host(.md-slider--vertical) .md-slider__thumb--start {\n inset-block-end: calc(var(--_start-pct) - var(--_thumb-inline) / 2);\n}\n\n:host(.md-slider--vertical) .md-slider__thumb--end {\n inset-block-end: calc(var(--_end-pct) - var(--_thumb-inline) / 2);\n}\n\n.md-slider__thumb-knob {\n display: block;\n inline-size: var(--_thumb-inline);\n block-size: var(--_thumb-block);\n border-radius: var(--md-sys-shape-corner-full, 9999px);\n background-color: var(--_thumb-fill);\n box-shadow: none;\n flex-shrink: 0;\n transition:\n inline-size var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard),\n block-size var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard);\n}\n\n:host(.md-slider--vertical) .md-slider__thumb-knob {\n inline-size: var(--_thumb-block);\n block-size: var(--_thumb-inline);\n}\n\n:host(:not(.md-slider--disabled)) .md-slider__thumb--pressing > .md-slider__thumb-knob {\n inline-size: 2px;\n block-size: calc(var(--_thumb-block) * 1.05);\n}\n\n:host(.md-slider--vertical:not(.md-slider--disabled)) .md-slider__thumb--pressing > .md-slider__thumb-knob {\n inline-size: calc(var(--_thumb-block) * 1.05);\n block-size: 2px;\n}\n\n.md-slider__state-layer {\n display: none;\n}\n\n.md-slider__thumb--focus-visible > .md-slider__thumb-knob {\n outline: 3px solid var(--md-sys-color-secondary);\n outline-offset: 2px;\n}\n\n/* ----- Value indicator ----- */\n.md-slider__value-indicator {\n position: absolute;\n z-index: 3;\n /* The value bubble shrinks with density (48x44 at 0 -> 32x28 at -4). */\n min-inline-size: max(28px, calc(48px + var(--md-sys-density-scale, 0) * 4px));\n min-block-size: max(24px, calc(44px + var(--md-sys-density-scale, 0) * 4px));\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding-block: var(--md-slider-value-padding-block, var(--md-sys-spacing-inset-md, 12px));\n padding-inline: var(--md-slider-value-padding-inline, var(--md-sys-spacing-inset-lg, 16px));\n box-sizing: border-box;\n background-color: var(--md-slider-value-bg);\n color: var(--md-slider-value-color);\n border-radius: var(--md-slider-value-shape, var(--md-sys-shape-corner-full, 9999px));\n font-family: var(--md-slider-value-font-family, var(--md-sys-typescale-label-medium-font-family, Roboto, sans-serif));\n font-size: var(--md-slider-value-font-size, var(--md-sys-typescale-label-medium-size, 12px));\n font-weight: var(--md-slider-value-font-weight, var(--md-sys-typescale-label-medium-weight, 500));\n line-height: var(--md-slider-value-line-height, var(--md-sys-typescale-label-medium-line-height, 16px));\n letter-spacing: var(--md-sys-typescale-label-medium-letter-spacing, 0.5px);\n white-space: nowrap;\n pointer-events: none;\n}\n\n:host(.md-slider--horizontal) .md-slider__value-indicator {\n inset-block-end: calc(100% + 4px);\n /* Physical left + translateX intentional: centering within the thumb box\n is direction-independent (the thumb is already positioned logically). */\n left: 50%;\n transform: translateX(-50%);\n}\n\n:host(.md-slider--vertical) .md-slider__value-indicator {\n inset-inline-start: calc(100% + 4px);\n inset-block-end: 50%;\n transform: translateY(50%);\n}\n\n/* ----- Native inputs ----- */\n.md-slider__input-shell {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n}\n\n.md-slider__input {\n position: absolute;\n inset: 0;\n inline-size: 100%;\n block-size: 100%;\n margin: 0;\n padding: 0;\n opacity: 0;\n cursor: pointer;\n pointer-events: auto;\n box-sizing: border-box;\n}\n\n:host(.md-slider--vertical) .md-slider__input-shell {\n align-items: center;\n justify-content: center;\n}\n\n:host(.md-slider--vertical) .md-slider__input {\n position: relative;\n inset: auto;\n inline-size: var(--md-slider-track-length);\n block-size: max(44px, var(--_state-layer-size));\n transform: rotate(-90deg);\n transform-origin: center center;\n}\n\n.md-slider__input--start,\n.md-slider__input--end {\n inline-size: 100%;\n block-size: 100%;\n}\n\n:host(.md-slider--disabled) {\n cursor: not-allowed;\n pointer-events: none;\n opacity: var(--md-sys-state-disabled-content-opacity);\n}\n\n:host(.md-slider--disabled) .md-slider__track-inactive {\n background-color: color-mix(\n in srgb,\n var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%),\n var(--md-sys-color-surface)\n );\n}\n\n:host(.md-slider--disabled) .md-slider__track-active,\n:host(.md-slider--disabled) .md-slider__thumb-knob {\n background-color: color-mix(\n in srgb,\n var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%),\n transparent\n );\n box-shadow: none;\n}\n\n:host(:focus-visible) {\n outline: none;\n}\n\n/* ----- Expressive spring animation on the active track fill -----\n Only for stepped (`stops`) sliders, where the value snaps between ticks and\n the spring makes the snap feel intentional. A continuous slider must track the\n thumb 1:1 — the thumb position isn't transitioned, so animating the fill would\n make it lag behind the thumb while dragging. */\n:host(.md-slider--stops) .md-slider__track-active {\n transition:\n inline-size var(--md-sys-motion-spring-spatial-fast-duration, 350ms) var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.90)),\n block-size var(--md-sys-motion-spring-spatial-fast-duration, 350ms) var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.90)),\n inset-inline-start var(--md-sys-motion-spring-spatial-fast-duration, 350ms) var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.90)),\n inset-block-end var(--md-sys-motion-spring-spatial-fast-duration, 350ms) var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.90));\n}\n\n:host(.md-slider--stops) .md-slider__tick {\n transition:\n opacity var(--md-sys-motion-spring-effects-default-duration, 200ms) var(--md-sys-motion-spring-effects-default-easing, cubic-bezier(0.34, 0.80, 0.34, 1.00)),\n background-color var(--md-sys-motion-spring-effects-default-duration, 200ms) var(--md-sys-motion-spring-effects-default-easing, cubic-bezier(0.34, 0.80, 0.34, 1.00));\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 AttachInternals,\n} from '@stencil/core';\nimport type { VNode } from '@stencil/core';\nimport { setFormValue } from '../../utils/form';\n\nexport interface MdSliderValueDetail {\n value: number;\n valueStart?: number;\n valueEnd?: number;\n}\n\nexport interface MdSliderThumbDetail {\n thumb: 'single' | 'start' | 'end';\n}\n\nexport interface MdSliderDragDetail {\n thumb: 'single' | 'start' | 'end';\n value: number;\n valueStart?: number;\n valueEnd?: number;\n}\n\n/**\n * MD3 Expressive slider: standard (from edge), centered (from midpoint), or range (dual thumb).\n *\n * **Uncontrolled (default)** — the slider manages its own value. Listen to `mdChange` to observe commits.\n *\n * **Controlled** (`controlled`) — the slider never mutates `value`/`valueStart`/`valueEnd`.\n * Listen to events and set the props yourself. During drag the slider uses internal live\n * state for smooth visuals; on commit it snaps to the prop values.\n *\n * @slot inset-icon - Custom icon inside track (standard only; use with `inset-icon`)\n */\n@Component({\n tag: 'md-slider',\n styleUrl: 'md-slider.css',\n shadow: true,\n formAssociated: true,\n})\nexport class MdSlider {\n @Element() el!: HTMLElement;\n\n // ── Public API ──────────────────────────────────────────\n\n @Prop() min: number = 0;\n @Prop() max: number = 100;\n @Prop({ mutable: true }) value: number = 50;\n @Prop() step: number = 1;\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Form-association handle. The slider submits its value under `name` via\n * `setFormValue`, exactly as a native `<input type=\"range\">` does — a hidden\n * input in the shadow root would be invisible to `FormData`.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * Form field name. Without it the slider still works, it just submits\n * nothing — same as a native input with no `name`.\n */\n @Prop({ reflect: true }) name: string = '';\n\n /**\n * Range mode submits TWO values, which one name cannot express. By default\n * both go under `name` (read them with `formData.getAll(name)`); set these to\n * give each end its own key. Ignored outside `range`.\n */\n @Prop({ attribute: 'name-start' }) nameStart: string = '';\n\n /** See `nameStart`. */\n @Prop({ attribute: 'name-end' }) nameEnd: string = '';\n\n /** Single-thumb layout: `standard` fills from min; `centered` fills from range midpoint to value. */\n @Prop({ reflect: true }) variant: 'standard' | 'centered' = 'standard';\n\n /** Dual-thumb range */\n @Prop({ reflect: true }) range: boolean = false;\n\n /** Stop / tick marks at each step. */\n @Prop({ reflect: true }) stops: boolean = false;\n\n @Prop({ mutable: true }) valueStart: number = 0;\n @Prop({ mutable: true }) valueEnd: number = 100;\n\n /** Expressive size (default XS per MD3 spec) */\n @Prop({ reflect: true }) size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'xs';\n\n @Prop({ reflect: true }) orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Make a **vertical** slider fill its parent's block size (responsive height)\n * instead of the fixed `--md-slider-track-length`. The parent needs a definite\n * height; otherwise it falls back to the track-length floor so it never\n * collapses. (Horizontal sliders are already full-width by default.)\n */\n @Prop({ attribute: 'full-height', reflect: true }) fullHeight: boolean = false;\n\n /** Show value label at thumb(s) */\n @Prop({ reflect: true, attribute: 'value-indicator' }) valueIndicator: boolean = false;\n\n /** @deprecated Use `value-indicator` */\n @Prop({ reflect: true }) labeled: boolean = false;\n\n /** Standard slider only: inset icon area (use `icon` or `inset-icon` slot) */\n @Prop({ reflect: true, attribute: 'inset-icon' }) insetIcon: boolean = false;\n\n /** Material Symbols name when `inset-icon` and no slotted icon */\n @Prop() icon: string = '';\n\n @Prop({ attribute: 'aria-label' }) sliderAriaLabel: string = '';\n\n /**\n * Accessible label for the range-start thumb (becomes the thumb input's\n * `aria-label`; overrides `aria-label`). NB: a plain (non-`aria-`) attribute\n * name — `aria-label-start` is not a valid ARIA attribute and would just\n * pollute the host with an invalid `aria-*`.\n */\n @Prop({ attribute: 'label-start' }) ariaLabelStart: string = '';\n\n /** Accessible label for the range-end thumb (becomes the thumb input's `aria-label`). */\n @Prop({ attribute: 'label-end' }) ariaLabelEnd: string = '';\n\n /** Human-readable text alternative for the current value (single slider). Mapped to `aria-valuetext`. */\n @Prop({ attribute: 'value-text' }) valueText: string = '';\n\n /** Human-readable text for the range-start value. Mapped to `aria-valuetext` on the start thumb. */\n @Prop({ attribute: 'value-start-text' }) valueStartText: string = '';\n\n /** Human-readable text for the range-end value. Mapped to `aria-valuetext` on the end thumb. */\n @Prop({ attribute: 'value-end-text' }) valueEndText: string = '';\n\n /**\n * When `true`, the slider never mutates `value` / `valueStart` / `valueEnd` on user interaction.\n * Listen to `mdInput` (continuous) and `mdChange` (committed) events and write the props back yourself.\n * During a drag gesture the slider uses internal live state for smooth visuals.\n */\n @Prop({ reflect: true }) controlled: boolean = false;\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 // ── Events ──────────────────────────────────────────────\n\n /** Fires continuously while the user drags or presses arrow keys. */\n @Event() mdInput: EventEmitter<MdSliderValueDetail>;\n\n /** Fires once when the user commits a value (pointer up, keyboard release, change event). */\n @Event() mdChange: EventEmitter<MdSliderValueDetail>;\n\n /** Fires when a slider thumb receives focus. */\n @Event() mdFocus: EventEmitter<MdSliderThumbDetail>;\n\n /** Fires when a slider thumb loses focus. */\n @Event() mdBlur: EventEmitter<MdSliderThumbDetail>;\n\n /** Fires when a drag/keyboard interaction begins. */\n @Event() mdDragStart: EventEmitter<MdSliderDragDetail>;\n\n /** Fires when a drag/keyboard interaction ends. */\n @Event() mdDragEnd: EventEmitter<MdSliderDragDetail>;\n\n // ── Internal state ──────────────────────────────────────\n\n @State() private keyFocusedThumb: 'single' | 'start' | 'end' | null = null;\n @State() private pressingThumb: 'single' | 'start' | 'end' | null = null;\n\n /** Live value during active interaction (controlled mode visual feedback). */\n @State() private _liveValue: number | null = null;\n @State() private _liveStart: number | null = null;\n @State() private _liveEnd: number | null = null;\n\n private rangeDragThumb: 'start' | 'end' | null = null;\n private verticalDragging = false;\n\n // ── Display getters (live state during drag, prop otherwise) ──\n\n private get displayValue(): number { return this._liveValue ?? this.value; }\n private get displayStart(): number { return this._liveStart ?? this.valueStart; }\n private get displayEnd(): number { return this._liveEnd ?? this.valueEnd; }\n\n // ── Value update helpers ────────────────────────────────\n\n private setSingle(v: number) {\n if (this.controlled) {\n this._liveValue = v;\n } else {\n this.value = v;\n }\n }\n\n private setStart(v: number) {\n if (this.controlled) {\n this._liveStart = v;\n } else {\n this.valueStart = v;\n }\n }\n\n private setEnd(v: number) {\n if (this.controlled) {\n this._liveEnd = v;\n } else {\n this.valueEnd = v;\n }\n }\n\n /** Commit live values to props (uncontrolled) or clear live state (controlled). */\n private commit() {\n if (this.controlled) {\n this._liveValue = null;\n this._liveStart = null;\n this._liveEnd = null;\n } else {\n if (this._liveValue !== null) { this.value = this._liveValue; this._liveValue = null; }\n if (this._liveStart !== null) { this.valueStart = this._liveStart; this._liveStart = null; }\n if (this._liveEnd !== null) { this.valueEnd = this._liveEnd; this._liveEnd = null; }\n }\n }\n\n // ── Lifecycle ───────────────────────────────────────────\n\n /** Baseline for `formResetCallback` — the values the markup was authored with. */\n private initialValue = 0;\n private initialStart = 0;\n private initialEnd = 0;\n\n connectedCallback() {\n this.initialValue = this.value;\n this.initialStart = this.valueStart;\n this.initialEnd = this.valueEnd;\n }\n\n componentDidLoad() {\n this.clampValues();\n this.syncCssVars();\n this.syncFormValue();\n }\n\n /**\n * Publish the current reading to the owning form.\n *\n * A range slider carries two numbers, which a single name/value pair cannot\n * express, so it submits a `FormData` instead: one entry per thumb, under\n * `name-start`/`name-end` when given and both under `name` otherwise (read\n * them back with `formData.getAll(name)`).\n *\n * With no `name` there is nothing to submit under — the same no-op a native\n * input without a name performs.\n */\n private syncFormValue() {\n if (!this.name && !this.nameStart && !this.nameEnd) {\n setFormValue(this.internals, null);\n return;\n }\n\n if (!this.range) {\n setFormValue(this.internals, String(this.value));\n return;\n }\n\n const data = new FormData();\n data.append(this.nameStart || this.name, String(this.valueStart));\n data.append(this.nameEnd || this.name, String(this.valueEnd));\n setFormValue(this.internals, data);\n }\n\n /** Restore the authored values when the owning form is reset. */\n formResetCallback() {\n this.value = this.initialValue;\n this.valueStart = this.initialStart;\n this.valueEnd = this.initialEnd;\n this.syncFormValue();\n }\n\n /**\n * Re-apply a value the browser restored (back/forward navigation, session\n * restore). Range state arrives as the FormData entries we submitted.\n */\n formStateRestoreCallback(state: string | FormData | null) {\n if (state == null) return;\n if (typeof state === 'string') {\n const n = Number(state);\n if (Number.isFinite(n)) this.value = n;\n return;\n }\n const values = [...state.values()].map(Number).filter((n) => Number.isFinite(n));\n if (values.length === 2) {\n this.valueStart = values[0];\n this.valueEnd = values[1];\n }\n }\n\n private clampValues() {\n this.value = Math.min(this.max, Math.max(this.min, this.value));\n if (this.range) {\n this.valueStart = Math.min(this.max, Math.max(this.min, this.valueStart));\n this.valueEnd = Math.min(this.max, Math.max(this.min, this.valueEnd));\n }\n }\n\n // ── CSS variable sync ───────────────────────────────────\n\n private pct(v: number): number {\n if (this.max === this.min) return 0;\n return ((v - this.min) / (this.max - this.min)) * 100;\n }\n\n private syncCssVars() {\n const el = this.el;\n const val = this.displayValue;\n const vs = this.displayStart;\n const ve = this.displayEnd;\n const p = (v: number) => `${this.pct(v)}%`;\n\n el.style.setProperty('--_value-pct', p(val));\n\n const mid = (this.min + this.max) / 2;\n const c = this.pct(mid);\n const vp = this.pct(val);\n const lo = Math.min(c, vp);\n const hi = Math.max(c, vp);\n el.style.setProperty('--_center-pct', `${c}%`);\n el.style.setProperty('--_active-start-pct', `${lo}%`);\n el.style.setProperty('--_active-width-pct', `${hi - lo}%`);\n\n const thumbBelow = vp <= c;\n el.style.setProperty('--_centered-start-gap', thumbBelow ? 'var(--_track-thumb-gap)' : 'var(--_center-gap)');\n el.style.setProperty('--_centered-end-gap', thumbBelow ? 'var(--_center-gap)' : 'var(--_track-thumb-gap)');\n\n if (this.range) {\n el.style.setProperty('--_start-pct', p(vs));\n el.style.setProperty('--_end-pct', p(ve));\n }\n }\n\n // ── Watchers ────────────────────────────────────────────\n\n @Watch('value')\n onValuePropChange() {\n this._liveValue = null;\n this.syncCssVars();\n this.syncFormValue();\n }\n\n @Watch('valueStart')\n onValueStartPropChange() {\n this._liveStart = null;\n this.syncCssVars();\n this.syncFormValue();\n }\n\n @Watch('valueEnd')\n onValueEndPropChange() {\n this._liveEnd = null;\n this.syncCssVars();\n this.syncFormValue();\n }\n\n @Watch('name')\n @Watch('nameStart')\n @Watch('nameEnd')\n @Watch('range')\n onFormIdentityChange() {\n this.syncFormValue();\n }\n\n @Watch('variant')\n @Watch('range')\n onLayoutDeps() {\n this.syncCssVars();\n }\n\n @Watch('min')\n @Watch('max')\n onBoundsChange() {\n this.clampValues();\n this.syncCssVars();\n }\n\n // ── Derived getters ─────────────────────────────────────\n\n private get showStops(): boolean {\n return this.stops;\n }\n\n private get isCentered(): boolean {\n return !this.range && this.variant === 'centered';\n }\n\n private get showBubble(): boolean {\n return this.valueIndicator || this.labeled;\n }\n\n private formatValue(v: number): string {\n if (this.step > 0) {\n const decimals = (`${this.step}`.split('.')[1] || '').length;\n return v.toFixed(decimals);\n }\n return String(Math.round(v));\n }\n\n private get insetArea(): boolean {\n return this.insetIcon && !this.range && this.size !== 'xs' && this.size !== 'sm';\n }\n\n private get insetOnActive(): boolean {\n if (!this.insetArea) return false;\n if (this.isCentered) {\n const mid = (this.min + this.max) / 2;\n return this.displayValue < mid;\n }\n return this.displayValue > this.min;\n }\n\n // ── Event detail builders ───────────────────────────────\n\n private singleDetail(): MdSliderValueDetail {\n return { value: this.displayValue };\n }\n\n private rangeDetail(): MdSliderValueDetail {\n return {\n value: this.rangeDragThumb === 'start' ? this.displayStart : this.displayEnd,\n valueStart: this.displayStart,\n valueEnd: this.displayEnd,\n };\n }\n\n // ── Native input handlers ───────────────────────────────\n\n private handleInput = (e: Event, isStart?: boolean) => {\n const input = e.target as HTMLInputElement;\n const val = Number(input.value);\n if (this.range) {\n if (isStart) {\n if (val > this.displayEnd) {\n this.setEnd(val);\n this.setStart(val);\n } else {\n this.setStart(val);\n }\n } else {\n if (val < this.displayStart) {\n this.setStart(val);\n this.setEnd(val);\n } else {\n this.setEnd(val);\n }\n }\n this.syncCssVars();\n this.mdInput.emit(this.rangeDetail());\n } else {\n this.setSingle(val);\n this.syncCssVars();\n this.mdInput.emit(this.singleDetail());\n }\n };\n\n private handleChange = (e: Event, isStart?: boolean) => {\n const input = e.target as HTMLInputElement;\n const val = Number(input.value);\n if (this.range) {\n if (isStart) {\n if (val > this.displayEnd) {\n this.setEnd(val);\n this.setStart(val);\n } else {\n this.setStart(val);\n }\n } else {\n if (val < this.displayStart) {\n this.setStart(val);\n this.setEnd(val);\n } else {\n this.setEnd(val);\n }\n }\n this.syncCssVars();\n this.mdChange.emit(this.rangeDetail());\n } else {\n this.setSingle(val);\n this.syncCssVars();\n this.mdChange.emit(this.singleDetail());\n }\n this.commit();\n };\n\n // ── Pointer helpers ─────────────────────────────────────\n\n private snapToStep(raw: number): number {\n const s = this.step;\n if (s <= 0) return Math.min(this.max, Math.max(this.min, raw));\n const q = Math.round((raw - this.min) / s);\n return Math.min(this.max, Math.max(this.min, this.min + q * s));\n }\n\n private pointerToValue(clientX: number, clientY: number): number {\n const rail = this.el.shadowRoot?.querySelector('.md-slider__rail') as HTMLElement | null;\n if (!rail) return this.min;\n const rect = rail.getBoundingClientRect();\n const vertical = this.orientation === 'vertical';\n let ratio: number;\n if (vertical) {\n ratio = rect.height > 0 ? (rect.bottom - clientY) / rect.height : 0;\n } else {\n const rtl = getComputedStyle(this.el).direction === 'rtl';\n ratio =\n rect.width > 0\n ? rtl\n ? (rect.right - clientX) / rect.width\n : (clientX - rect.left) / rect.width\n : 0;\n }\n ratio = Math.min(1, Math.max(0, ratio));\n const raw = this.min + ratio * (this.max - this.min);\n return this.snapToStep(raw);\n }\n\n // ── Range pointer interaction ───────────────────────────\n\n private applyRangePointerValue(v: number) {\n if (this.rangeDragThumb === 'start') {\n if (v > this.displayEnd) {\n this.rangeDragThumb = 'end';\n this.pressingThumb = 'end';\n this.setEnd(v);\n } else {\n this.setStart(v);\n }\n } else if (this.rangeDragThumb === 'end') {\n if (v < this.displayStart) {\n this.rangeDragThumb = 'start';\n this.pressingThumb = 'start';\n this.setStart(v);\n } else {\n this.setEnd(v);\n }\n }\n this.syncCssVars();\n this.mdInput.emit(this.rangeDetail());\n }\n\n private onRangeRailPointerDown = (e: PointerEvent) => {\n if (!this.range || this.disabled) return;\n const rail = e.currentTarget as HTMLElement;\n const v = this.pointerToValue(e.clientX, e.clientY);\n const dStart = Math.abs(v - this.displayStart);\n const dEnd = Math.abs(v - this.displayEnd);\n if (dStart === dEnd) {\n this.rangeDragThumb = v >= this.displayEnd ? 'end' : 'start';\n } else {\n this.rangeDragThumb = dStart < dEnd ? 'start' : 'end';\n }\n this.pressingThumb = this.rangeDragThumb;\n this.mdDragStart.emit({\n thumb: this.rangeDragThumb,\n value: this.rangeDragThumb === 'start' ? this.displayStart : this.displayEnd,\n valueStart: this.displayStart,\n valueEnd: this.displayEnd,\n });\n this.applyRangePointerValue(v);\n try { rail.setPointerCapture(e.pointerId); } catch { /* noop */ }\n e.preventDefault();\n };\n\n private onRangeRailPointerMove = (e: PointerEvent) => {\n if (!this.range || this.disabled || !this.rangeDragThumb) return;\n this.applyRangePointerValue(this.pointerToValue(e.clientX, e.clientY));\n e.preventDefault();\n };\n\n private endRangePointerGesture(e: PointerEvent | null) {\n if (!this.rangeDragThumb) return;\n const thumb = this.rangeDragThumb;\n const detail = this.rangeDetail();\n this.rangeDragThumb = null;\n this.pressingThumb = null;\n if (e) {\n try { (e.currentTarget as HTMLElement).releasePointerCapture(e.pointerId); } catch { /* noop */ }\n }\n this.mdChange.emit(detail);\n this.mdDragEnd.emit({ thumb, ...detail });\n this.commit();\n this.syncCssVars();\n }\n\n private onRangeRailPointerUp = (e: PointerEvent) => {\n if (!this.range) return;\n this.endRangePointerGesture(e);\n };\n\n private onRangeRailLostPointerCapture = () => {\n if (!this.rangeDragThumb) return;\n const thumb = this.rangeDragThumb;\n const detail = this.rangeDetail();\n this.rangeDragThumb = null;\n this.pressingThumb = null;\n this.mdChange.emit(detail);\n this.mdDragEnd.emit({ thumb, ...detail });\n this.commit();\n this.syncCssVars();\n };\n\n // ── Vertical pointer interaction ────────────────────────\n\n private onVerticalRailPointerDown = (e: PointerEvent) => {\n if (this.range || this.disabled || this.orientation !== 'vertical') return;\n const rail = e.currentTarget as HTMLElement;\n this.verticalDragging = true;\n this.pressingThumb = 'single';\n const v = this.pointerToValue(e.clientX, e.clientY);\n this.setSingle(v);\n this.syncCssVars();\n this.mdDragStart.emit({ thumb: 'single', value: this.displayValue });\n this.mdInput.emit(this.singleDetail());\n try { rail.setPointerCapture(e.pointerId); } catch { /* noop */ }\n e.preventDefault();\n };\n\n private onVerticalRailPointerMove = (e: PointerEvent) => {\n if (!this.verticalDragging) return;\n const v = this.pointerToValue(e.clientX, e.clientY);\n this.setSingle(v);\n this.syncCssVars();\n this.mdInput.emit(this.singleDetail());\n e.preventDefault();\n };\n\n private onVerticalRailPointerUp = (e: PointerEvent) => {\n if (!this.verticalDragging) return;\n this.verticalDragging = false;\n this.pressingThumb = null;\n try { (e.currentTarget as HTMLElement).releasePointerCapture(e.pointerId); } catch { /* noop */ }\n const detail = this.singleDetail();\n this.mdChange.emit(detail);\n this.mdDragEnd.emit({ thumb: 'single', ...detail });\n this.commit();\n this.syncCssVars();\n };\n\n private onVerticalRailLostPointerCapture = () => {\n if (!this.verticalDragging) return;\n this.verticalDragging = false;\n this.pressingThumb = null;\n const detail = this.singleDetail();\n this.mdChange.emit(detail);\n this.mdDragEnd.emit({ thumb: 'single', ...detail });\n this.commit();\n this.syncCssVars();\n };\n\n // ── Tick marks ──────────────────────────────────────────\n\n private getTickMarks() {\n if (!this.showStops || this.step <= 0) return null;\n const span = this.max - this.min;\n const count = Math.floor(span / this.step) + 1;\n if (count < 2) return null;\n const isVertical = this.orientation === 'vertical';\n const eps = this.step * 0.001;\n const near = (a: number, b: number) => Math.abs(a - b) < eps;\n const pos = (i: number) => {\n const frac = i / (count - 1);\n return `calc(var(--_tick-pad) + (100% - 2 * var(--_tick-pad)) * ${frac})`;\n };\n const mid = (this.min + this.max) / 2;\n const val = this.displayValue;\n const vs = this.displayStart;\n const ve = this.displayEnd;\n const isOnActive = (v: number): boolean => {\n if (this.range) return v >= vs && v <= ve;\n if (this.isCentered) {\n const lo = Math.min(mid, val);\n const hi = Math.max(mid, val);\n return v >= lo && v <= hi;\n }\n return v <= val;\n };\n\n return Array.from({ length: count }, (_, i) => {\n const tickVal = this.min + i * this.step;\n const hidden = this.range\n ? near(tickVal, vs) || near(tickVal, ve)\n : near(tickVal, val);\n const onFilled = isOnActive(tickVal);\n const cls = {\n 'md-slider__tick': true,\n 'md-slider__tick--on-active': hidden,\n 'md-slider__tick--on-filled': onFilled && !hidden,\n 'md-slider__tick--on-inactive': !onFilled && !hidden,\n };\n return isVertical ? (\n <span class={cls} style={{ bottom: pos(i) }} />\n ) : (\n <span class={cls} style={{ insetInlineStart: pos(i) }} />\n );\n });\n }\n\n // ── Focus / keyboard handlers ───────────────────────────\n\n private onInputFocus = (which: 'single' | 'start' | 'end') => (e: FocusEvent) => {\n const input = e.target as HTMLElement;\n try {\n if (input.matches(':focus-visible')) {\n this.keyFocusedThumb = which;\n }\n } catch {\n this.keyFocusedThumb = which;\n }\n this.mdFocus.emit({ thumb: which });\n };\n\n private onInputBlur = (which: 'single' | 'start' | 'end') => () => {\n this.keyFocusedThumb = null;\n this.mdBlur.emit({ thumb: which });\n };\n\n private static SLIDER_KEYS = new Set([\n 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown',\n 'Home', 'End', 'PageUp', 'PageDown',\n ]);\n\n private onInputKeyDown = (which: 'single' | 'start' | 'end') => (e: KeyboardEvent) => {\n if (!MdSlider.SLIDER_KEYS.has(e.key)) return;\n if (!this.pressingThumb) {\n this.pressingThumb = which;\n const detail: MdSliderDragDetail = this.range\n ? { thumb: which, value: which === 'start' ? this.displayStart : this.displayEnd, valueStart: this.displayStart, valueEnd: this.displayEnd }\n : { thumb: 'single', value: this.displayValue };\n this.mdDragStart.emit(detail);\n }\n };\n\n private onInputKeyUp = (which: 'single' | 'start' | 'end') => (e: KeyboardEvent) => {\n if (!MdSlider.SLIDER_KEYS.has(e.key)) return;\n this.pressingThumb = null;\n const detail: MdSliderDragDetail = this.range\n ? { thumb: which, value: which === 'start' ? this.displayStart : this.displayEnd, valueStart: this.displayStart, valueEnd: this.displayEnd }\n : { thumb: 'single', value: this.displayValue };\n this.mdDragEnd.emit(detail);\n };\n\n private onInputPointerDown = (which: 'single' | 'start' | 'end') => () => {\n this.pressingThumb = which;\n const detail: MdSliderDragDetail = this.range\n ? { thumb: which, value: which === 'start' ? this.displayStart : this.displayEnd, valueStart: this.displayStart, valueEnd: this.displayEnd }\n : { thumb: 'single', value: this.displayValue };\n this.mdDragStart.emit(detail);\n };\n\n private onInputPointerUp = (which: 'single' | 'start' | 'end') => () => {\n this.pressingThumb = null;\n const detail: MdSliderDragDetail = this.range\n ? { thumb: which, value: which === 'start' ? this.displayStart : this.displayEnd, valueStart: this.displayStart, valueEnd: this.displayEnd }\n : { thumb: 'single', value: this.displayValue };\n this.mdDragEnd.emit(detail);\n };\n\n // ── Helpers ─────────────────────────────────────────────\n\n private inputAriaLabel(single: boolean, which?: 'start' | 'end'): string {\n if (single) return this.sliderAriaLabel || 'slider';\n if (which === 'start') return this.ariaLabelStart || this.sliderAriaLabel || 'range start';\n return this.ariaLabelEnd || this.sliderAriaLabel || 'range end';\n }\n\n private wrapInputShell(vertical: boolean, node: VNode) {\n return vertical ? <div class=\"md-slider__input-shell\">{node}</div> : node;\n }\n\n // ── Render ──────────────────────────────────────────────\n\n render() {\n const vertical = this.orientation === 'vertical';\n const bubble = this.showBubble;\n const insetArea = this.insetArea;\n const orientVertical = vertical ? { orient: 'vertical' as const } : {};\n\n const val = this.displayValue;\n const vs = this.displayStart;\n const ve = this.displayEnd;\n\n return (\n <Host\n class={{\n 'md-slider': true,\n [`md-slider--size-${this.size}`]: true,\n 'md-slider--vertical': vertical,\n 'md-slider--horizontal': !vertical,\n 'md-slider--centered': this.isCentered,\n 'md-slider--range': this.range,\n 'md-slider--stops': this.showStops,\n 'md-slider--inset': insetArea,\n 'md-slider--disabled': this.disabled,\n }}\n aria-orientation={vertical ? 'vertical' : 'horizontal'}\n >\n <div class=\"md-slider__surface\" part=\"surface\">\n <div\n class=\"md-slider__rail\"\n onPointerDown={this.range ? this.onRangeRailPointerDown : vertical ? this.onVerticalRailPointerDown : undefined}\n onPointerMove={this.range ? this.onRangeRailPointerMove : vertical ? this.onVerticalRailPointerMove : undefined}\n onPointerUp={this.range ? this.onRangeRailPointerUp : vertical ? this.onVerticalRailPointerUp : undefined}\n onPointerCancel={this.range ? this.onRangeRailPointerUp : vertical ? this.onVerticalRailPointerUp : undefined}\n onLostPointerCapture={this.range ? this.onRangeRailLostPointerCapture : vertical ? this.onVerticalRailLostPointerCapture : undefined}\n >\n <div class=\"md-slider__track\" part=\"track\">\n <div class=\"md-slider__track-inactive\" part=\"track-inactive\"></div>\n <div class=\"md-slider__track-active\" part=\"track-active\"></div>\n {this.showStops && <div class=\"md-slider__ticks\">{this.getTickMarks()}</div>}\n {insetArea && (\n <span\n class={{ 'md-slider__inset': true, 'md-slider__inset--on-active': this.insetOnActive }}\n part=\"inset\"\n aria-hidden=\"true\"\n >\n <slot name=\"inset-icon\">\n {this.icon ? (\n <span class=\"md-slider__inset-font material-symbols-outlined\">{this.icon}</span>\n ) : null}\n </slot>\n </span>\n )}\n </div>\n\n {this.range\n ? [\n <div\n class={{\n 'md-slider__thumb': true,\n 'md-slider__thumb--start': true,\n 'md-slider__thumb--focus-visible': this.keyFocusedThumb === 'start',\n 'md-slider__thumb--pressing': this.pressingThumb === 'start',\n }}\n style={{\n ...(!vertical ? { insetInlineStart: 'var(--_start-pct)' } : {}),\n }}\n >\n <span class=\"md-slider__thumb-knob\" part=\"thumb-knob\"></span>\n <span class=\"md-slider__state-layer\" part=\"state-layer\" aria-hidden=\"true\"></span>\n {bubble && (\n <span class=\"md-slider__value-indicator\" part=\"value-indicator\">\n {this.formatValue(vs)}\n </span>\n )}\n </div>,\n <div\n class={{\n 'md-slider__thumb': true,\n 'md-slider__thumb--end': true,\n 'md-slider__thumb--focus-visible': this.keyFocusedThumb === 'end',\n 'md-slider__thumb--pressing': this.pressingThumb === 'end',\n }}\n style={{\n ...(!vertical ? { insetInlineStart: 'var(--_end-pct)' } : {}),\n }}\n >\n <span class=\"md-slider__thumb-knob\" part=\"thumb-knob\"></span>\n <span class=\"md-slider__state-layer\" part=\"state-layer\" aria-hidden=\"true\"></span>\n {bubble && (\n <span class=\"md-slider__value-indicator\" part=\"value-indicator\">\n {this.formatValue(ve)}\n </span>\n )}\n </div>,\n this.wrapInputShell(\n vertical,\n <input\n type=\"range\"\n class=\"md-slider__input md-slider__input--start\"\n min={this.min}\n max={this.max}\n step={this.step}\n value={vs}\n disabled={this.disabled}\n aria-label={this.inputAriaLabel(false, 'start')}\n aria-valuemin={this.min}\n aria-valuemax={this.max}\n aria-valuenow={vs}\n aria-valuetext={this.valueStartText || undefined}\n aria-orientation={vertical ? 'vertical' : 'horizontal'}\n {...orientVertical}\n onInput={(e) => this.handleInput(e, true)}\n onChange={(e) => this.handleChange(e, true)}\n onFocus={this.onInputFocus('start')}\n onBlur={this.onInputBlur('start')}\n onKeyDown={this.onInputKeyDown('start')}\n onKeyUp={this.onInputKeyUp('start')}\n onPointerDown={this.onInputPointerDown('start')}\n onPointerUp={this.onInputPointerUp('start')}\n />,\n ),\n this.wrapInputShell(\n vertical,\n <input\n type=\"range\"\n class=\"md-slider__input md-slider__input--end\"\n min={this.min}\n max={this.max}\n step={this.step}\n value={ve}\n disabled={this.disabled}\n aria-label={this.inputAriaLabel(false, 'end')}\n aria-valuemin={this.min}\n aria-valuemax={this.max}\n aria-valuenow={ve}\n aria-valuetext={this.valueEndText || undefined}\n aria-orientation={vertical ? 'vertical' : 'horizontal'}\n {...orientVertical}\n onInput={(e) => this.handleInput(e, false)}\n onChange={(e) => this.handleChange(e, false)}\n onFocus={this.onInputFocus('end')}\n onBlur={this.onInputBlur('end')}\n onKeyDown={this.onInputKeyDown('end')}\n onKeyUp={this.onInputKeyUp('end')}\n onPointerDown={this.onInputPointerDown('end')}\n onPointerUp={this.onInputPointerUp('end')}\n />,\n ),\n ]\n : [\n <div\n class={{\n 'md-slider__thumb': true,\n 'md-slider__thumb--focus-visible': this.keyFocusedThumb === 'single',\n 'md-slider__thumb--pressing': this.pressingThumb === 'single',\n }}\n style={{\n ...(!vertical ? { insetInlineStart: 'var(--_value-pct)' } : {}),\n }}\n >\n <span class=\"md-slider__thumb-knob\" part=\"thumb-knob\"></span>\n <span class=\"md-slider__state-layer\" part=\"state-layer\" aria-hidden=\"true\"></span>\n {bubble && (\n <span class=\"md-slider__value-indicator\" part=\"value-indicator\">\n {this.formatValue(val)}\n </span>\n )}\n </div>,\n this.wrapInputShell(\n vertical,\n <input\n type=\"range\"\n class=\"md-slider__input\"\n min={this.min}\n max={this.max}\n step={this.step}\n value={val}\n disabled={this.disabled}\n aria-label={this.inputAriaLabel(true)}\n aria-valuemin={this.min}\n aria-valuemax={this.max}\n aria-valuenow={val}\n aria-valuetext={this.valueText || undefined}\n aria-orientation={vertical ? 'vertical' : 'horizontal'}\n {...orientVertical}\n onInput={(e) => this.handleInput(e)}\n onChange={(e) => this.handleChange(e)}\n onFocus={this.onInputFocus('single')}\n onBlur={this.onInputBlur('single')}\n onKeyDown={this.onInputKeyDown('single')}\n onKeyUp={this.onInputKeyUp('single')}\n onPointerDown={this.onInputPointerDown('single')}\n onPointerUp={this.onInputPointerUp('single')}\n />,\n ),\n ]}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as i,H as a,h as o,d as n,t as e}from"./p-BR6gfOQH.js";const t=()=>`:host{--_color:var(--md-loading-indicator-color, var(--md-sys-color-primary, #6750A4));--_size:var(--md-loading-indicator-size, max(32px, calc(48px + var(--md-sys-density-scale, 0) * 4px)));--_shape-size:var(--md-loading-indicator-shape-size, calc(var(--_size) * 0.792));--_container-color:var(--md-loading-indicator-container-color, var(--md-sys-color-primary-container, #EADDFF));--_container-shape:var(--md-loading-indicator-container-shape, var(--md-sys-shape-corner-full, 50%));display:inline-flex;align-items:center;justify-content:center;inline-size:var(--_size);block-size:var(--_size);flex-shrink:0;box-sizing:border-box;overflow:hidden}:host(.md-loading-indicator--contained){--_color:var(--md-loading-indicator-color, var(--md-sys-color-on-primary-container, #21005D));background-color:var(--_container-color);border-radius:var(--_container-shape)}.md-loading-indicator__shape{display:block;inline-size:var(--_shape-size);block-size:var(--_shape-size);background-color:var(--_color);will-change:clip-path, transform;animation:md-loading-morph 4.55s infinite}@keyframes md-loading-morph{0%{clip-path:polygon( 50% 5.3%, 55.4% 9.1%, 59.3% 15.3%, 64% 16.1%, 71.2% 13.3%, 77.1% 14.7%, 78.3% 21.7%, 78.1% 28.4%, 82.6% 31.2%, 90% 33.4%, 92.6% 38.6%, 88.4% 44.9%, 85.3% 50%, 88.4% 55.1%, 92.6% 61.4%, 90% 66.6%, 82.6% 68.8%, 78.1% 71.6%, 78.3% 78.3%, 77.1% 85.3%, 71.2% 86.7%, 64% 83.9%, 59.3% 84.7%, 55.4% 90.9%, 50% 94.7%, 44.6% 90.9%, 40.7% 84.7%, 36% 83.9%, 28.8% 86.7%, 22.9% 85.3%, 21.7% 78.3%, 21.9% 71.6%, 17.4% 68.8%, 10% 66.6%, 7.4% 61.4%, 11.6% 55.1%, 14.7% 50%, 11.6% 44.9%, 7.4% 38.6%, 10% 33.4%, 17.4% 31.2%, 21.9% 28.4%, 21.7% 21.7%, 22.9% 14.7%, 28.8% 13.3%, 36% 16.1%, 40.7% 15.3%, 44.6% 9.1% );transform:rotate(0deg);animation-timing-function:cubic-bezier(0.34, 1.45, 0.4, 1)}14.3%{clip-path:polygon( 50% 6.8%, 55.4% 9.1%, 59.8% 13.6%, 64.2% 15.8%, 70% 15.4%, 76.2% 15.9%, 79.9% 20.1%, 80.8% 26.4%, 81.8% 31.6%, 85.8% 35.2%, 90.8% 39.1%, 92.6% 44.4%, 90% 50%, 86.7% 54.8%, 86.4% 59.8%, 88.1% 65.8%, 87.4% 71.6%, 82.7% 75.1%, 76.7% 76.7%, 72.5% 79.4%, 70% 84.6%, 66.4% 89.7%, 60.9% 90.8%, 55.1% 88.4%, 50% 86.8%, 44.9% 88.4%, 39.1% 90.8%, 33.6% 89.7%, 30% 84.6%, 27.5% 79.4%, 23.3% 76.7%, 17.3% 75.1%, 12.6% 71.6%, 11.9% 65.8%, 13.6% 59.8%, 13.3% 54.8%, 10% 50%, 7.4% 44.4%, 9.2% 39.1%, 14.2% 35.2%, 18.2% 31.6%, 19.2% 26.4%, 20.1% 20.1%, 23.8% 15.9%, 30% 15.4%, 35.8% 15.8%, 40.2% 13.6%, 44.6% 9.1% );transform:rotate(154deg);animation-timing-function:cubic-bezier(0.34, 1.45, 0.4, 1)}28.6%{clip-path:polygon( 50% 6.8%, 55.4% 8.9%, 60% 12.7%, 63.9% 16.4%, 67.5% 19.7%, 71.1% 22.5%, 75% 25%, 79.5% 27.4%, 84.4% 30.1%, 89.3% 33.7%, 91.4% 38.9%, 90% 44.7%, 87.6% 50%, 85.4% 54.7%, 83.5% 59%, 82.1% 63.3%, 81.2% 68%, 80.2% 73.2%, 78.9% 78.9%, 76.3% 84.2%, 71% 86.4%, 65% 86.2%, 59.5% 85.5%, 54.6% 84.8%, 50% 84.6%, 45.4% 84.8%, 40.5% 85.5%, 35% 86.2%, 29% 86.4%, 23.7% 84.2%, 21.1% 78.9%, 19.8% 73.2%, 18.8% 68%, 17.9% 63.3%, 16.5% 59%, 14.6% 54.7%, 12.4% 50%, 10% 44.7%, 8.6% 38.9%, 10.7% 33.7%, 15.6% 30.1%, 20.5% 27.4%, 25% 25%, 28.9% 22.5%, 32.5% 19.7%, 36.1% 16.4%, 40% 12.7%, 44.6% 8.9% );transform:rotate(309deg);animation-timing-function:cubic-bezier(0.34, 1.45, 0.4, 1)}42.9%{clip-path:polygon( 50% 5.1%, 55.8% 5.6%, 61.5% 7.3%, 66.6% 9.9%, 71.1% 13.4%, 74.8% 17.6%, 77.6% 22.4%, 79.5% 27.4%, 80.3% 32.5%, 80.1% 37.5%, 79.1% 42.2%, 77.5% 46.4%, 76.4% 50%, 77.5% 53.6%, 79.1% 57.8%, 80.1% 62.5%, 80.3% 67.5%, 79.5% 72.6%, 77.6% 77.6%, 74.8% 82.4%, 71.1% 86.6%, 66.6% 90.1%, 61.5% 92.7%, 55.8% 94.4%, 50% 94.9%, 44.2% 94.4%, 38.5% 92.7%, 33.4% 90.1%, 28.9% 86.6%, 25.2% 82.4%, 22.4% 77.6%, 20.5% 72.6%, 19.7% 67.5%, 19.9% 62.5%, 20.9% 57.8%, 22.5% 53.6%, 23.6% 50%, 22.5% 46.4%, 20.9% 42.2%, 19.9% 37.5%, 19.7% 32.5%, 20.5% 27.4%, 22.4% 22.4%, 25.2% 17.6%, 28.9% 13.4%, 33.4% 9.9%, 38.5% 7.3%, 44.2% 5.6% );transform:rotate(463deg);animation-timing-function:cubic-bezier(0.34, 1.45, 0.4, 1)}57.1%{clip-path:polygon( 50% 3.4%, 55.7% 7.1%, 59.5% 14.5%, 62.8% 19.1%, 68.4% 18.2%, 76.4% 15.7%, 82.9% 17.1%, 84.3% 23.6%, 81.8% 31.6%, 80.9% 37.2%, 85.5% 40.5%, 92.9% 44.3%, 96.6% 50%, 92.9% 55.7%, 85.5% 59.5%, 80.9% 62.8%, 81.8% 68.4%, 84.3% 76.4%, 82.9% 82.9%, 76.4% 84.3%, 68.4% 81.8%, 62.8% 80.9%, 59.5% 85.5%, 55.7% 92.9%, 50% 96.6%, 44.3% 92.9%, 40.5% 85.5%, 37.2% 80.9%, 31.6% 81.8%, 23.6% 84.3%, 17.1% 82.9%, 15.7% 76.4%, 18.2% 68.4%, 19.1% 62.8%, 14.5% 59.5%, 7.1% 55.7%, 3.4% 50%, 7.1% 44.3%, 14.5% 40.5%, 19.1% 37.2%, 18.2% 31.6%, 15.7% 23.6%, 17.1% 17.1%, 23.6% 15.7%, 31.6% 18.2%, 37.2% 19.1%, 40.5% 14.5%, 44.3% 7.1% );transform:rotate(617deg);animation-timing-function:cubic-bezier(0.34, 1.45, 0.4, 1)}71.4%{clip-path:polygon( 50% 18.1%, 54.2% 17.7%, 58.9% 16.8%, 64.3% 15.5%, 70.5% 14.5%, 77% 14.8%, 82.4% 17.6%, 85.2% 23%, 85.5% 29.5%, 84.5% 35.7%, 83.2% 41.1%, 82.3% 45.8%, 81.9% 50%, 82.3% 54.2%, 83.2% 58.9%, 84.5% 64.3%, 85.5% 70.5%, 85.2% 77%, 82.4% 82.4%, 77% 85.2%, 70.5% 85.5%, 64.3% 84.5%, 58.9% 83.2%, 54.2% 82.3%, 50% 81.9%, 45.8% 82.3%, 41.1% 83.2%, 35.7% 84.5%, 29.5% 85.5%, 23% 85.2%, 17.6% 82.4%, 14.8% 77%, 14.5% 70.5%, 15.5% 64.3%, 16.8% 58.9%, 17.7% 54.2%, 18.1% 50%, 17.7% 45.8%, 16.8% 41.1%, 15.5% 35.7%, 14.5% 29.5%, 14.8% 23%, 17.6% 17.6%, 23% 14.8%, 29.5% 14.5%, 35.7% 15.5%, 41.1% 16.8%, 45.8% 17.7% );transform:rotate(771deg);animation-timing-function:cubic-bezier(0.34, 1.45, 0.4, 1)}85.7%{clip-path:polygon( 50% 14.5%, 54.9% 12.8%, 60.3% 11.6%, 66.1% 11.2%, 72% 11.9%, 77.7% 13.9%, 82.5% 17.5%, 86.1% 22.3%, 88.1% 28%, 88.8% 33.9%, 88.4% 39.7%, 87.2% 45.1%, 85.5% 50%, 83.5% 54.4%, 81.3% 58.4%, 79% 62%, 76.5% 65.3%, 73.9% 68.4%, 71.2% 71.2%, 68.4% 73.9%, 65.3% 76.5%, 62% 79%, 58.4% 81.3%, 54.4% 83.5%, 50% 85.5%, 45.1% 87.2%, 39.7% 88.4%, 33.9% 88.8%, 28% 88.1%, 22.3% 86.1%, 17.5% 82.5%, 13.9% 77.7%, 11.9% 72%, 11.2% 66.1%, 11.6% 60.3%, 12.8% 54.9%, 14.5% 50%, 16.5% 45.6%, 18.7% 41.6%, 21% 38%, 23.5% 34.7%, 26.1% 31.6%, 28.8% 28.8%, 31.6% 26.1%, 34.7% 23.5%, 38% 21%, 41.6% 18.7%, 45.6% 16.5% );transform:rotate(926deg);animation-timing-function:cubic-bezier(0.34, 1.45, 0.4, 1)}100%{clip-path:polygon( 50% 5.3%, 55.4% 9.1%, 59.3% 15.3%, 64% 16.1%, 71.2% 13.3%, 77.1% 14.7%, 78.3% 21.7%, 78.1% 28.4%, 82.6% 31.2%, 90% 33.4%, 92.6% 38.6%, 88.4% 44.9%, 85.3% 50%, 88.4% 55.1%, 92.6% 61.4%, 90% 66.6%, 82.6% 68.8%, 78.1% 71.6%, 78.3% 78.3%, 77.1% 85.3%, 71.2% 86.7%, 64% 83.9%, 59.3% 84.7%, 55.4% 90.9%, 50% 94.7%, 44.6% 90.9%, 40.7% 84.7%, 36% 83.9%, 28.8% 86.7%, 22.9% 85.3%, 21.7% 78.3%, 21.9% 71.6%, 17.4% 68.8%, 10% 66.6%, 7.4% 61.4%, 11.6% 55.1%, 14.7% 50%, 11.6% 44.9%, 7.4% 38.6%, 10% 33.4%, 17.4% 31.2%, 21.9% 28.4%, 21.7% 21.7%, 22.9% 14.7%, 28.8% 13.3%, 36% 16.1%, 40.7% 15.3%, 44.6% 9.1% );transform:rotate(1080deg)}}.md-loading-indicator__sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host(:focus-visible){outline:3px solid var(--md-sys-color-secondary, #625B71);outline-offset:2px;border-radius:var(--_container-shape)}@media (prefers-reduced-motion: reduce){.md-loading-indicator__shape{animation:md-loading-pulse 2s ease-in-out infinite;border-radius:50%;clip-path:none}}@keyframes md-loading-pulse{0%,100%{opacity:1}50%{opacity:0.4}}@media (forced-colors: active){.md-loading-indicator__shape{background-color:CanvasText}:host(.md-loading-indicator--contained){background-color:Canvas;outline:1px solid 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 r=i(class i extends a{constructor(i){super();if(i!==false){this.__registerHost()}this.__attachShadow();this.variant="uncontained";this.label="Loading";this.density=0}render(){return o(n,{key:"7283d7970401998bed6a0fba112756031f1ecdee",class:{"md-loading-indicator":true,[`md-loading-indicator--${this.variant}`]:true},role:"progressbar","aria-label":this.label,"aria-live":"polite"},o("span",{key:"b89f9b6f9eafd337fcf89af79771cee126ea7606",class:"md-loading-indicator__shape",part:"shape","aria-hidden":"true"}),o("span",{key:"5ff8ac5edfcb49334c22f3ac3b9d9be0edaf7b19",class:"md-loading-indicator__sr-only",role:"status"},this.label))}static get style(){return t()}},[1,"md-loading-indicator",{variant:[513],label:[1],density:[514]}]);function s(){if(typeof customElements==="undefined"){return}const i=["md-loading-indicator"];i.forEach((i=>{switch(i){case"md-loading-indicator":if(!customElements.get(e(i))){customElements.define(e(i),r)}break}}))}s();export{r as MdLoadingIndicator,s as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=p-Zjf9uhOr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdLoadingIndicatorCss","MdLoadingIndicator","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","variant","label","density","render","h","Host","key","class","role","part"],"sources":["src/components/md-loading-indicator/md-loading-indicator.css?tag=md-loading-indicator&encapsulation=shadow","src/components/md-loading-indicator/md-loading-indicator.tsx"],"sourcesContent":["/* ==========================================================\n md-loading-indicator — Material Design 3 Loading Indicator\n Spec: https://m3.material.io/components/loading-indicator/specs\n Ref: material-components-android LoadingIndicatorDrawingDelegate\n\n A looping shape-morph animation matching the Android M3\n implementation. Morphs through seven Material shapes:\n Soft Burst → Cookie 9 → Pentagon → Pill →\n Sunny → Cookie 4 → Oval → (repeat)\n\n Timing: 650 ms per shape, 4.55 s full cycle.\n Rotation: ~154° per shape (1080° / 7), 3 full turns per cycle.\n Easing: bouncy spring — each segment overshoots its target\n shape before settling, so the polygon morph and the\n rotation both gain a tactile \"rubber band\" feel.\n Curve sits between the project's spring-spatial-default\n (overshoot 1.21) and spring-spatial-fast (1.67) tokens.\n Shapes: 48-vertex polygons with Gaussian-smoothed corners\n matching Android CornerRounding parameters.\n\n PUBLIC CSS CUSTOM PROPERTIES (override per-instance):\n --md-loading-indicator-color Indicator shape color\n --md-loading-indicator-size Overall component size (default 48px)\n --md-loading-indicator-shape-size Morphing shape size (default 38px)\n --md-loading-indicator-container-color Container background (contained variant)\n --md-loading-indicator-container-shape Container border radius\n\n CSS PARTS:\n shape The morphing indicator shape\n\n SLOTS:\n (none)\n ========================================================== */\n\n:host {\n --_color: var(--md-loading-indicator-color, var(--md-sys-color-primary, #6750A4));\n --_size: var(--md-loading-indicator-size, max(32px, calc(48px + var(--md-sys-density-scale, 0) * 4px)));\n /* Derived from --_size, NOT sized independently. These are two public hooks\n over one shape: setting only `--md-loading-indicator-size` used to leave\n the polygon at its own 38px default, so shrinking the component crammed a\n 38px shape into a smaller container and the morph rendered as a clipped\n blob. 0.792 is the spec ratio (38/48), so the default is unchanged at\n density 0 and any override now scales both boxes together. */\n --_shape-size: var(--md-loading-indicator-shape-size, calc(var(--_size) * 0.792));\n --_container-color: var(--md-loading-indicator-container-color, var(--md-sys-color-primary-container, #EADDFF));\n --_container-shape: var(--md-loading-indicator-container-shape, var(--md-sys-shape-corner-full, 50%));\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: var(--_size);\n block-size: var(--_size);\n flex-shrink: 0;\n box-sizing: border-box;\n /* Belt-and-braces: an explicit shape-size larger than the container would\n otherwise spill the polygon past the (round) container edge. */\n overflow: hidden;\n}\n\n/* ==========================================================\n CONTAINED VARIANT\n Shape uses on-primary-container; background is primary-container.\n ========================================================== */\n\n:host(.md-loading-indicator--contained) {\n --_color: var(--md-loading-indicator-color, var(--md-sys-color-on-primary-container, #21005D));\n\n background-color: var(--_container-color);\n border-radius: var(--_container-shape);\n}\n\n/* ==========================================================\n MORPHING SHAPE\n 48-vertex clip-path polygon animated through 7 Material\n shapes with Gaussian-smoothed corners. Each shape is\n approximated by radial sampling at 7.5° intervals then\n smoothed to match Android CornerRounding values.\n ========================================================== */\n\n.md-loading-indicator__shape {\n display: block;\n inline-size: var(--_shape-size);\n block-size: var(--_shape-size);\n background-color: var(--_color);\n will-change: clip-path, transform;\n animation: md-loading-morph 4.55s infinite;\n}\n\n@keyframes md-loading-morph {\n /* ── Shape 1: Soft Burst — 10 rounded bumps ── */\n 0% {\n clip-path: polygon(\n 50% 5.3%, 55.4% 9.1%, 59.3% 15.3%, 64% 16.1%, 71.2% 13.3%, 77.1% 14.7%,\n 78.3% 21.7%, 78.1% 28.4%, 82.6% 31.2%, 90% 33.4%, 92.6% 38.6%, 88.4% 44.9%,\n 85.3% 50%, 88.4% 55.1%, 92.6% 61.4%, 90% 66.6%, 82.6% 68.8%, 78.1% 71.6%,\n 78.3% 78.3%, 77.1% 85.3%, 71.2% 86.7%, 64% 83.9%, 59.3% 84.7%, 55.4% 90.9%,\n 50% 94.7%, 44.6% 90.9%, 40.7% 84.7%, 36% 83.9%, 28.8% 86.7%, 22.9% 85.3%,\n 21.7% 78.3%, 21.9% 71.6%, 17.4% 68.8%, 10% 66.6%, 7.4% 61.4%, 11.6% 55.1%,\n 14.7% 50%, 11.6% 44.9%, 7.4% 38.6%, 10% 33.4%, 17.4% 31.2%, 21.9% 28.4%,\n 21.7% 21.7%, 22.9% 14.7%, 28.8% 13.3%, 36% 16.1%, 40.7% 15.3%, 44.6% 9.1%\n );\n transform: rotate(0deg);\n animation-timing-function: cubic-bezier(0.34, 1.45, 0.4, 1);\n }\n\n /* ── Shape 2: Cookie 9 — 9 rounded scallops ── */\n 14.3% {\n clip-path: polygon(\n 50% 6.8%, 55.4% 9.1%, 59.8% 13.6%, 64.2% 15.8%, 70% 15.4%, 76.2% 15.9%,\n 79.9% 20.1%, 80.8% 26.4%, 81.8% 31.6%, 85.8% 35.2%, 90.8% 39.1%, 92.6% 44.4%,\n 90% 50%, 86.7% 54.8%, 86.4% 59.8%, 88.1% 65.8%, 87.4% 71.6%, 82.7% 75.1%,\n 76.7% 76.7%, 72.5% 79.4%, 70% 84.6%, 66.4% 89.7%, 60.9% 90.8%, 55.1% 88.4%,\n 50% 86.8%, 44.9% 88.4%, 39.1% 90.8%, 33.6% 89.7%, 30% 84.6%, 27.5% 79.4%,\n 23.3% 76.7%, 17.3% 75.1%, 12.6% 71.6%, 11.9% 65.8%, 13.6% 59.8%, 13.3% 54.8%,\n 10% 50%, 7.4% 44.4%, 9.2% 39.1%, 14.2% 35.2%, 18.2% 31.6%, 19.2% 26.4%,\n 20.1% 20.1%, 23.8% 15.9%, 30% 15.4%, 35.8% 15.8%, 40.2% 13.6%, 44.6% 9.1%\n );\n transform: rotate(154deg);\n animation-timing-function: cubic-bezier(0.34, 1.45, 0.4, 1);\n }\n\n /* ── Shape 3: Pentagon — 5 rounded sides (fill ratio 0.80) ── */\n 28.6% {\n clip-path: polygon(\n 50% 6.8%, 55.4% 8.9%, 60% 12.7%, 63.9% 16.4%, 67.5% 19.7%, 71.1% 22.5%,\n 75% 25%, 79.5% 27.4%, 84.4% 30.1%, 89.3% 33.7%, 91.4% 38.9%, 90% 44.7%,\n 87.6% 50%, 85.4% 54.7%, 83.5% 59%, 82.1% 63.3%, 81.2% 68%, 80.2% 73.2%,\n 78.9% 78.9%, 76.3% 84.2%, 71% 86.4%, 65% 86.2%, 59.5% 85.5%, 54.6% 84.8%,\n 50% 84.6%, 45.4% 84.8%, 40.5% 85.5%, 35% 86.2%, 29% 86.4%, 23.7% 84.2%,\n 21.1% 78.9%, 19.8% 73.2%, 18.8% 68%, 17.9% 63.3%, 16.5% 59%, 14.6% 54.7%,\n 12.4% 50%, 10% 44.7%, 8.6% 38.9%, 10.7% 33.7%, 15.6% 30.1%, 20.5% 27.4%,\n 25% 25%, 28.9% 22.5%, 32.5% 19.7%, 36.1% 16.4%, 40% 12.7%, 44.6% 8.9%\n );\n transform: rotate(309deg);\n animation-timing-function: cubic-bezier(0.34, 1.45, 0.4, 1);\n }\n\n /* ── Shape 4: Pill — capsule with rounded ends ── */\n 42.9% {\n clip-path: polygon(\n 50% 5.1%, 55.8% 5.6%, 61.5% 7.3%, 66.6% 9.9%, 71.1% 13.4%, 74.8% 17.6%,\n 77.6% 22.4%, 79.5% 27.4%, 80.3% 32.5%, 80.1% 37.5%, 79.1% 42.2%, 77.5% 46.4%,\n 76.4% 50%, 77.5% 53.6%, 79.1% 57.8%, 80.1% 62.5%, 80.3% 67.5%, 79.5% 72.6%,\n 77.6% 77.6%, 74.8% 82.4%, 71.1% 86.6%, 66.6% 90.1%, 61.5% 92.7%, 55.8% 94.4%,\n 50% 94.9%, 44.2% 94.4%, 38.5% 92.7%, 33.4% 90.1%, 28.9% 86.6%, 25.2% 82.4%,\n 22.4% 77.6%, 20.5% 72.6%, 19.7% 67.5%, 19.9% 62.5%, 20.9% 57.8%, 22.5% 53.6%,\n 23.6% 50%, 22.5% 46.4%, 20.9% 42.2%, 19.9% 37.5%, 19.7% 32.5%, 20.5% 27.4%,\n 22.4% 22.4%, 25.2% 17.6%, 28.9% 13.4%, 33.4% 9.9%, 38.5% 7.3%, 44.2% 5.6%\n );\n transform: rotate(463deg);\n animation-timing-function: cubic-bezier(0.34, 1.45, 0.4, 1);\n }\n\n /* ── Shape 5: Sunny — 8 rounded rays ── */\n 57.1% {\n clip-path: polygon(\n 50% 3.4%, 55.7% 7.1%, 59.5% 14.5%, 62.8% 19.1%, 68.4% 18.2%, 76.4% 15.7%,\n 82.9% 17.1%, 84.3% 23.6%, 81.8% 31.6%, 80.9% 37.2%, 85.5% 40.5%, 92.9% 44.3%,\n 96.6% 50%, 92.9% 55.7%, 85.5% 59.5%, 80.9% 62.8%, 81.8% 68.4%, 84.3% 76.4%,\n 82.9% 82.9%, 76.4% 84.3%, 68.4% 81.8%, 62.8% 80.9%, 59.5% 85.5%, 55.7% 92.9%,\n 50% 96.6%, 44.3% 92.9%, 40.5% 85.5%, 37.2% 80.9%, 31.6% 81.8%, 23.6% 84.3%,\n 17.1% 82.9%, 15.7% 76.4%, 18.2% 68.4%, 19.1% 62.8%, 14.5% 59.5%, 7.1% 55.7%,\n 3.4% 50%, 7.1% 44.3%, 14.5% 40.5%, 19.1% 37.2%, 18.2% 31.6%, 15.7% 23.6%,\n 17.1% 17.1%, 23.6% 15.7%, 31.6% 18.2%, 37.2% 19.1%, 40.5% 14.5%, 44.3% 7.1%\n );\n transform: rotate(617deg);\n animation-timing-function: cubic-bezier(0.34, 1.45, 0.4, 1);\n }\n\n /* ── Shape 6: Cookie 4 — rounded diamond (fill ratio 0.70) ── */\n 71.4% {\n clip-path: polygon(\n 50% 18.1%, 54.2% 17.7%, 58.9% 16.8%, 64.3% 15.5%, 70.5% 14.5%, 77% 14.8%,\n 82.4% 17.6%, 85.2% 23%, 85.5% 29.5%, 84.5% 35.7%, 83.2% 41.1%, 82.3% 45.8%,\n 81.9% 50%, 82.3% 54.2%, 83.2% 58.9%, 84.5% 64.3%, 85.5% 70.5%, 85.2% 77%,\n 82.4% 82.4%, 77% 85.2%, 70.5% 85.5%, 64.3% 84.5%, 58.9% 83.2%, 54.2% 82.3%,\n 50% 81.9%, 45.8% 82.3%, 41.1% 83.2%, 35.7% 84.5%, 29.5% 85.5%, 23% 85.2%,\n 17.6% 82.4%, 14.8% 77%, 14.5% 70.5%, 15.5% 64.3%, 16.8% 58.9%, 17.7% 54.2%,\n 18.1% 50%, 17.7% 45.8%, 16.8% 41.1%, 15.5% 35.7%, 14.5% 29.5%, 14.8% 23%,\n 17.6% 17.6%, 23% 14.8%, 29.5% 14.5%, 35.7% 15.5%, 41.1% 16.8%, 45.8% 17.7%\n );\n transform: rotate(771deg);\n animation-timing-function: cubic-bezier(0.34, 1.45, 0.4, 1);\n }\n\n /* ── Shape 7: Oval — tilted ellipse (-45°) ── */\n 85.7% {\n clip-path: polygon(\n 50% 14.5%, 54.9% 12.8%, 60.3% 11.6%, 66.1% 11.2%, 72% 11.9%, 77.7% 13.9%,\n 82.5% 17.5%, 86.1% 22.3%, 88.1% 28%, 88.8% 33.9%, 88.4% 39.7%, 87.2% 45.1%,\n 85.5% 50%, 83.5% 54.4%, 81.3% 58.4%, 79% 62%, 76.5% 65.3%, 73.9% 68.4%,\n 71.2% 71.2%, 68.4% 73.9%, 65.3% 76.5%, 62% 79%, 58.4% 81.3%, 54.4% 83.5%,\n 50% 85.5%, 45.1% 87.2%, 39.7% 88.4%, 33.9% 88.8%, 28% 88.1%, 22.3% 86.1%,\n 17.5% 82.5%, 13.9% 77.7%, 11.9% 72%, 11.2% 66.1%, 11.6% 60.3%, 12.8% 54.9%,\n 14.5% 50%, 16.5% 45.6%, 18.7% 41.6%, 21% 38%, 23.5% 34.7%, 26.1% 31.6%,\n 28.8% 28.8%, 31.6% 26.1%, 34.7% 23.5%, 38% 21%, 41.6% 18.7%, 45.6% 16.5%\n );\n transform: rotate(926deg);\n animation-timing-function: cubic-bezier(0.34, 1.45, 0.4, 1);\n }\n\n /* ── Loop: back to Soft Burst ── */\n 100% {\n clip-path: polygon(\n 50% 5.3%, 55.4% 9.1%, 59.3% 15.3%, 64% 16.1%, 71.2% 13.3%, 77.1% 14.7%,\n 78.3% 21.7%, 78.1% 28.4%, 82.6% 31.2%, 90% 33.4%, 92.6% 38.6%, 88.4% 44.9%,\n 85.3% 50%, 88.4% 55.1%, 92.6% 61.4%, 90% 66.6%, 82.6% 68.8%, 78.1% 71.6%,\n 78.3% 78.3%, 77.1% 85.3%, 71.2% 86.7%, 64% 83.9%, 59.3% 84.7%, 55.4% 90.9%,\n 50% 94.7%, 44.6% 90.9%, 40.7% 84.7%, 36% 83.9%, 28.8% 86.7%, 22.9% 85.3%,\n 21.7% 78.3%, 21.9% 71.6%, 17.4% 68.8%, 10% 66.6%, 7.4% 61.4%, 11.6% 55.1%,\n 14.7% 50%, 11.6% 44.9%, 7.4% 38.6%, 10% 33.4%, 17.4% 31.2%, 21.9% 28.4%,\n 21.7% 21.7%, 22.9% 14.7%, 28.8% 13.3%, 36% 16.1%, 40.7% 15.3%, 44.6% 9.1%\n );\n transform: rotate(1080deg);\n }\n}\n\n/* ==========================================================\n VISUALLY HIDDEN (screen-reader-only status text)\n ========================================================== */\n\n.md-loading-indicator__sr-only {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n\n/* ==========================================================\n FOCUS RING\n Some assistive technologies can programmatically focus\n progressbar elements. Provide a visible ring when focused.\n ========================================================== */\n\n:host(:focus-visible) {\n outline: 3px solid var(--md-sys-color-secondary, #625B71);\n outline-offset: 2px;\n border-radius: var(--_container-shape);\n}\n\n/* ==========================================================\n REDUCED MOTION\n Replace the complex morph animation with a gentle opacity\n pulse so the \"loading\" intent is still communicated visually.\n ========================================================== */\n\n@media (prefers-reduced-motion: reduce) {\n .md-loading-indicator__shape {\n animation: md-loading-pulse 2s ease-in-out infinite;\n border-radius: 50%;\n clip-path: none;\n }\n}\n\n@keyframes md-loading-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n}\n\n/* ==========================================================\n FORCED COLORS (High Contrast)\n ========================================================== */\n\n@media (forced-colors: active) {\n .md-loading-indicator__shape {\n background-color: CanvasText;\n }\n\n :host(.md-loading-indicator--contained) {\n background-color: Canvas;\n outline: 1px solid CanvasText;\n }\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 { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'md-loading-indicator',\n styleUrl: 'md-loading-indicator.css',\n shadow: true,\n})\nexport class MdLoadingIndicator {\n /** Visual style: uncontained (default) or contained (with background container) */\n @Prop({ reflect: true }) variant: 'uncontained' | 'contained' = 'uncontained';\n\n /** Accessible label for screen readers */\n @Prop() label: string = 'Loading';\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 render() {\n return (\n <Host\n class={{\n 'md-loading-indicator': true,\n [`md-loading-indicator--${this.variant}`]: true,\n }}\n role=\"progressbar\"\n aria-label={this.label}\n aria-live=\"polite\"\n >\n <span class=\"md-loading-indicator__shape\" part=\"shape\" aria-hidden=\"true\"></span>\n <span class=\"md-loading-indicator__sr-only\" role=\"status\">{this.label}</span>\n </Host>\n );\n }\n}\n"],"mappings":"gEAAA,MAAMA,EAAwB,IAAM,u0P,MCOvBC,EAAkBC,EAAA,MAAAD,UAAAE,EAL/B,WAAAC,CAAAC,G,kEAO2BC,KAAAC,QAAuC,cAGxDD,KAAAE,MAAgB,UAOCF,KAAAG,QAAiC,CAkB3D,CAhBC,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,uBAAwB,KACxB,CAAC,yBAAyBR,KAAKC,WAAY,MAE7CQ,KAAK,cAAa,aACNT,KAAKE,MAAK,YACZ,UAEVG,EAAA,QAAAE,IAAA,2CAAMC,MAAM,8BAA8BE,KAAK,QAAO,cAAa,SACnEL,EAAA,QAAAE,IAAA,2CAAMC,MAAM,gCAAgCC,KAAK,UAAUT,KAAKE,O","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as t,H as s,c as i,h as e,d as o,t as n}from"./p-BR6gfOQH.js";const r=()=>`:host{display:inline-block;position:relative}.md-tooltip__popup{position:fixed;z-index:var(--md-sys-z-index-tooltip, 1500);pointer-events:none;box-sizing:border-box;width:max-content;opacity:0;visibility:hidden;transform:scale(0.9);transition:opacity var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, ease), transform var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, ease), visibility 0ms linear var(--md-sys-motion-duration-short2, 100ms)}.md-tooltip__popup--visible{opacity:1;visibility:visible;transform:scale(1);pointer-events:auto;transition:opacity var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, ease), transform var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, ease), visibility 0ms linear 0ms}.md-tooltip__popup--plain{--_container-color:var(--md-tooltip-plain-container-color, var(--md-sys-color-inverse-surface, #313033));--_text-color:var(--md-tooltip-plain-text-color, var(--md-sys-color-inverse-on-surface, #F4EFF4));--_shape:var(--md-tooltip-container-shape, var(--md-sys-shape-corner-extra-small, 4px));background-color:var(--_container-color);color:var(--_text-color);border-radius:var(--_shape);padding-block:var(--md-sys-spacing-inset-xs, 4px);padding-inline:var(--md-sys-spacing-inset-sm, 8px);min-block-size:max(20px, calc(24px + var(--md-sys-density-scale, 0) * 1px));max-inline-size:min(var(--md-tooltip-plain-max-inline-size, 280px), calc(100vw - 16px));font-family:var(--md-sys-typescale-body-small-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-body-small-font-weight, 400);line-height:max(14px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px));letter-spacing:var(--md-sys-typescale-body-small-letter-spacing, 0.4px);white-space:normal;display:flex;align-items:center}.md-tooltip__text{overflow-wrap:anywhere}.md-tooltip__popup--rich{--_container-color:var(--md-tooltip-rich-container-color, var(--md-sys-color-surface-container, #F3EDF7));--_subhead-color:var(--md-tooltip-rich-subhead-color, var(--md-sys-color-on-surface-variant, #49454F));--_text-color:var(--md-tooltip-rich-text-color, var(--md-sys-color-on-surface-variant, #49454F));--_action-color:var(--md-tooltip-rich-action-color, var(--md-sys-color-primary, #6750A4));--_shape:var(--md-tooltip-rich-container-shape, var(--md-sys-shape-corner-medium, 12px));background-color:var(--_container-color);color:var(--_text-color);border-radius:var(--_shape);padding-block-start:var(--md-sys-spacing-inset-md, 12px);padding-block-end:var(--md-sys-spacing-inset-sm, 8px);padding-inline:var(--md-sys-spacing-inset-lg, 16px);min-inline-size:var(--md-tooltip-rich-min-inline-size, 120px);max-inline-size:min(var(--md-tooltip-rich-max-inline-size, 320px), calc(100vw - 16px));white-space:normal;box-shadow:var(--md-sys-elevation-2, 0 1px 3px 1px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.3))}.md-tooltip__subhead{font-family:var(--md-sys-typescale-title-small-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-title-small-font-weight, 500);line-height:max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-title-small-letter-spacing, 0.1px);color:var(--_subhead-color);margin-block-end:var(--md-sys-spacing-gap-xs, 4px)}.md-tooltip__supporting-text{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(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-body-medium-letter-spacing, 0.25px);color:var(--_text-color)}.md-tooltip__actions{display:flex;gap:var(--md-sys-spacing-gap-sm, 8px);justify-content:flex-end;margin-block-start:var(--md-sys-spacing-gap-md, 12px);color:var(--_action-color)}.md-tooltip__actions--empty{display:none}::slotted([slot="actions"]){color:var(--_action-color)}.md-tooltip__popup--top,.md-tooltip__popup--top-start,.md-tooltip__popup--top-end{transform-origin:bottom center}.md-tooltip__popup--bottom,.md-tooltip__popup--bottom-start,.md-tooltip__popup--bottom-end{transform-origin:top center}.md-tooltip__popup--left,.md-tooltip__popup--left-start,.md-tooltip__popup--left-end{transform-origin:center right}.md-tooltip__popup--right,.md-tooltip__popup--right-start,.md-tooltip__popup--right-end{transform-origin:center left}:host-context([dir="rtl"]) .md-tooltip__actions{justify-content:flex-start}@media (forced-colors: active){.md-tooltip__popup{border:1px solid CanvasText}}@media (prefers-reduced-motion: reduce){.md-tooltip__popup,.md-tooltip__popup--visible{transition:none;transform: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 a=8;const h=t(class t extends s{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.mdOpen=i(this,"mdOpen",1);this.mdClose=i(this,"mdClose",1);this.text="";this.subhead="";this.variant="plain";this.position="top";this.autoPosition=true;this.offset=8;this.crossOffset=0;this.open=false;this.showDelay=500;this.hideDelay=200;this.disabled=false;this.density=0;this.isVisible=false;this.resolvedPlacement="top";this.hasSlottedActions=false;this.hasSlottedSubhead=false;this.tooltipId=`md-tooltip-${Math.random().toString(36).slice(2,9)}`;this.scrollListenerBound=false;this.escapeListenerBound=false;this.hostHoverBound=false;this.hasLoaded=false;this.suppressed=false;this.onTriggerSlotChange=()=>{const t=this.triggerSlot?.assignedElements();if(t&&t.length>0)this.bindTrigger(t[0])};this.handleTriggerEnter=()=>this.scheduleShow();this.handleTriggerLeave=()=>{this.suppressed=false;this.scheduleHide()};this.handleTriggerFocus=()=>this.scheduleShow();this.handleTriggerBlur=t=>{if(t.relatedTarget&&this.el.contains(t.relatedTarget))return;this.suppressed=false;this.scheduleHide()};this.handleHostFocusOut=t=>{if(this.variant!=="rich"||!this.isVisible)return;if(t.relatedTarget&&this.el.contains(t.relatedTarget))return;this.scheduleHide()};this.handlePopupEnter=()=>{this.clearTimers()};this.handlePopupLeave=()=>{this.scheduleHide()};this.handleGlobalEscape=t=>{if(t.key!=="Escape"||!this.isVisible)return;t.preventDefault();this.clearTimers();this.suppressed=true;const s=this.getDeepActiveElement();const i=!!s&&(this.el.contains(s)||s===this.triggerEl);this.open=false;if(i&&this.triggerEl)this.triggerEl.focus()};this.lastGeom={at:0,al:0,aw:0,ah:0,pw:0,ph:0,vw:0,vh:0,ex:0,ey:0};this.watchdogFrame=0;this.handleScroll=()=>{if(this.isVisible)this.updatePosition()}}componentWillLoad(){this.syncSlotFlags();if(this.open&&!this.disabled)this.isVisible=true}componentDidLoad(){this.hasLoaded=true;this.setup();if(this.open)this.showTooltip()}connectedCallback(){if(!this.hasLoaded)return;this.setup();if(this.isVisible&&!this.disabled){this.addScrollListener();this.addEscapeListener();this.schedulePositionUpdate();this.startPositionWatchdog()}else if(this.open&&!this.isVisible&&!this.disabled){this.showTooltip()}}setup(){const t=this.el.shadowRoot;if(!t)return;this.triggerSlot=t.querySelector("slot:not([name])")??undefined;this.triggerSlot?.addEventListener("slotchange",this.onTriggerSlotChange);this.el.addEventListener("focusout",this.handleHostFocusOut);this.syncSlotFlags();if(typeof MutationObserver!=="undefined"&&!this.slotObserver){this.slotObserver=new MutationObserver((()=>{this.syncSlotFlags();if(this.triggerEl)this.updateTriggerAria(this.triggerEl)}));this.slotObserver.observe(this.el,{childList:true,subtree:true,characterData:true})}const s=this.triggerSlot?.assignedElements()[0];if(s)this.bindTrigger(s)}syncSlotFlags(){const t=Array.from(this.el.children);this.hasSlottedActions=t.some((t=>t.getAttribute("slot")==="actions"));this.hasSlottedSubhead=t.some((t=>t.getAttribute("slot")==="subhead"))}disconnectedCallback(){this.clearTimers();this.stopPositionWatchdog();this.unbindTrigger();this.removeScrollListener();this.removeEscapeListener();this.el.removeEventListener("focusout",this.handleHostFocusOut);this.triggerSlot?.removeEventListener("slotchange",this.onTriggerSlotChange);this.triggerSlot=undefined;this.slotObserver?.disconnect();this.slotObserver=undefined}onOpenChange(t){if(t){this.showTooltip()}else{this.hideTooltip()}}onDisabledChange(t){if(t){this.clearTimers();if(this.open)this.open=false;this.triggerEl?.removeAttribute("aria-description")}else if(this.triggerEl){this.updateTriggerAria(this.triggerEl)}}onDescriptionChange(){if(this.triggerEl)this.updateTriggerAria(this.triggerEl)}async show(){if(this.disabled)return;this.open=true}async hide(){this.open=false}bindTrigger(t){this.unbindTrigger();this.triggerEl=t;if(this.useHostHover(t)){this.el.addEventListener("mouseenter",this.handleTriggerEnter);this.el.addEventListener("mouseleave",this.handleTriggerLeave);this.hostHoverBound=true}else{t.addEventListener("mouseenter",this.handleTriggerEnter);t.addEventListener("mouseleave",this.handleTriggerLeave)}t.addEventListener("focus",this.handleTriggerFocus);t.addEventListener("blur",this.handleTriggerBlur);this.updateTriggerAria(t)}unbindTrigger(){if(this.hostHoverBound){this.el.removeEventListener("mouseenter",this.handleTriggerEnter);this.el.removeEventListener("mouseleave",this.handleTriggerLeave);this.hostHoverBound=false}else if(this.triggerEl){this.triggerEl.removeEventListener("mouseenter",this.handleTriggerEnter);this.triggerEl.removeEventListener("mouseleave",this.handleTriggerLeave)}if(!this.triggerEl)return;this.triggerEl.removeEventListener("focus",this.handleTriggerFocus);this.triggerEl.removeEventListener("blur",this.handleTriggerBlur);this.triggerEl.removeAttribute("aria-description");this.triggerEl=undefined}useHostHover(t){const s=t.tagName.toLowerCase();if(s==="button"||s==="a"||s==="input"||s==="select"||s==="textarea"){return false}if(t.hasAttribute("tabindex")&&t.tabIndex>=0)return false;if(s.startsWith("md-"))return false;return true}updateTriggerAria(t){if(this.disabled){t.removeAttribute("aria-description");return}const s=this.computeDescription();if(s){t.setAttribute("aria-description",s)}else{t.removeAttribute("aria-description")}}computeDescription(){if(this.text)return this.text;if(this.subhead)return this.subhead;const t=[];for(const s of Array.from(this.el.children)){const i=s.getAttribute("slot");if(i==="subhead"||i==="content"){const i=(s.textContent||"").trim();if(i)t.push(i)}}return t.join(". ")}scheduleShow(){if(this.disabled||this.suppressed)return;this.clearTimers();this.showTimer=setTimeout((()=>{this.open=true}),this.showDelay)}scheduleHide(){this.clearTimers();this.hideTimer=setTimeout((()=>{this.open=false}),this.hideDelay)}getDeepActiveElement(){if(typeof document==="undefined")return null;let t=document.activeElement;while(t&&t.shadowRoot&&t.shadowRoot.activeElement)t=t.shadowRoot.activeElement;return t}addEscapeListener(){if(!this.escapeListenerBound){document.addEventListener("keydown",this.handleGlobalEscape,true);this.escapeListenerBound=true}}removeEscapeListener(){if(this.escapeListenerBound){document.removeEventListener("keydown",this.handleGlobalEscape,true);this.escapeListenerBound=false}}showTooltip(){if(this.disabled)return;if(!this.el.isConnected)return;this.isVisible=true;this.mdOpen.emit();this.addScrollListener();this.addEscapeListener();this.schedulePositionUpdate();this.startPositionWatchdog()}schedulePositionUpdate(t=0){requestAnimationFrame((()=>{const s=this.updatePosition();if(!s&&t<3){this.schedulePositionUpdate(t+1)}}))}startPositionWatchdog(){if(typeof requestAnimationFrame!=="function")return;this.stopPositionWatchdog();const t=()=>{if(!this.isVisible||!this.el.isConnected){this.watchdogFrame=0;return}const s=this.popupEl;if(s&&this.triggerEl){const t=s.offsetWidth;const i=s.offsetHeight;if(t!==0||i!==0){const e=this.getAnchorRect();const o=s.getBoundingClientRect();const n=this.lastGeom;const r=e.top!==n.at||e.left!==n.al||e.width!==n.aw||e.height!==n.ah||t!==n.pw||i!==n.ph||Math.abs(o.top-n.ey)>.5||Math.abs(o.left-n.ex)>.5||window.innerWidth!==n.vw||window.innerHeight!==n.vh;if(r)this.updatePosition()}}this.watchdogFrame=requestAnimationFrame(t)};this.watchdogFrame=requestAnimationFrame(t)}stopPositionWatchdog(){if(this.watchdogFrame&&typeof cancelAnimationFrame==="function"){cancelAnimationFrame(this.watchdogFrame)}this.watchdogFrame=0}hideTooltip(){if(!this.isVisible)return;this.isVisible=false;this.mdClose.emit();this.removeScrollListener();this.removeEscapeListener();this.stopPositionWatchdog()}clearTimers(){if(this.showTimer!=null){clearTimeout(this.showTimer);this.showTimer=undefined}if(this.hideTimer!=null){clearTimeout(this.hideTimer);this.hideTimer=undefined}}addScrollListener(){if(!this.scrollListenerBound){window.addEventListener("scroll",this.handleScroll,{capture:true,passive:true});this.scrollListenerBound=true}}removeScrollListener(){if(this.scrollListenerBound){window.removeEventListener("scroll",this.handleScroll,true);this.scrollListenerBound=false}}updatePosition(){if(!this.popupEl||!this.triggerEl)return false;const t=this.getAnchorRect();const s=this.popupEl.offsetWidth;const i=this.popupEl.offsetHeight;if(s===0&&i===0)return false;let e=this.physicalPlacement(this.position);if(this.autoPosition){e=this.findBestPlacement(t,s,i,e)}const o=this.calcCoords(t.width,t.height,s,i,e);if(e.startsWith("top")||e.startsWith("bottom")){o.left+=this.crossOffset}else{o.top+=this.crossOffset}if(this.autoPosition){const n=e.startsWith("top")||e.startsWith("bottom");const r=a;if(n){const i=t.left+o.left;const e=window.innerWidth-s-r;const n=Math.min(Math.max(i,r),Math.max(r,e));o.left+=n-i}else{const s=t.top+o.top;const e=window.innerHeight-i-r;const n=Math.min(Math.max(s,r),Math.max(r,e));o.top+=n-s}}const n=this.toFixedCoords(t.top+o.top,t.left+o.left);this.popupEl.style.top=`${n.top}px`;this.popupEl.style.left=`${n.left}px`;this.popupEl.style.insetBlockStart="";this.popupEl.style.insetInlineStart="";this.resolvedPlacement=e;this.lastGeom={at:t.top,al:t.left,aw:t.width,ah:t.height,pw:s,ph:i,vw:window.innerWidth,vh:window.innerHeight,ex:t.left+o.left,ey:t.top+o.top};return true}getAnchorRect(){if(this.triggerEl){const t=this.triggerEl.getBoundingClientRect();if(t.width>0||t.height>0)return t}return this.el.getBoundingClientRect()}toFixedCoords(t,s){const i=this.getFixedContainingBlock();if(!i){return{top:t,left:s}}const e=i.getBoundingClientRect();return{top:t-e.top,left:s-e.left}}createsFixedContainingBlock(t){const s=t;if(t.transform&&t.transform!=="none"||t.filter&&t.filter!=="none"||t.perspective&&t.perspective!=="none")return true;if(s.translate&&s.translate!=="none"||s.rotate&&s.rotate!=="none"||s.scale&&s.scale!=="none")return true;if(s.backdropFilter&&s.backdropFilter!=="none")return true;if(/\b(transform|perspective|filter|translate|rotate|scale)\b/.test(t.willChange||""))return true;if(/(layout|paint|strict|content)\b/.test(s.contain||""))return true;if(s.contentVisibility==="auto"||s.contentVisibility==="hidden")return true;if(s.containerType&&/\bsize\b/.test(s.containerType))return true;return false}getFixedContainingBlock(){let t=this.el;while(t){if(this.createsFixedContainingBlock(getComputedStyle(t))){return t}if(t.parentElement){t=t.parentElement}else if(t.parentNode instanceof ShadowRoot){t=t.parentNode.host}else{t=null}}return null}physicalPlacement(t){if(typeof window==="undefined")return t;const s=getComputedStyle(this.el).direction==="rtl";if(!s)return t;const[i,e=""]=[t.split("-")[0],t.split("-").slice(1).join("-")];const o=i==="left"?"right":i==="right"?"left":i;const n=i==="top"||i==="bottom"?e==="start"?"end":e==="end"?"start":e:e;return n?`${o}-${n}`:o}calcCoords(t,s,i,e,o){const n=this.offset;switch(o){case"top":return{top:-(e+n),left:(t-i)/2};case"top-start":return{top:-(e+n),left:0};case"top-end":return{top:-(e+n),left:t-i};case"bottom":return{top:s+n,left:(t-i)/2};case"bottom-start":return{top:s+n,left:0};case"bottom-end":return{top:s+n,left:t-i};case"left":return{top:(s-e)/2,left:-(i+n)};case"left-start":return{top:0,left:-(i+n)};case"left-end":return{top:s-e,left:-(i+n)};case"right":return{top:(s-e)/2,left:t+n};case"right-start":return{top:0,left:t+n};case"right-end":return{top:s-e,left:t+n};default:return{top:-(e+n),left:(t-i)/2}}}fitsMainAxis(t,s,i,e,o,n){const r=n.startsWith("top")||n.startsWith("bottom");if(r){const s=t.top+e;return s>=0&&s+i<=window.innerHeight}const a=t.left+o;return a>=0&&a+s<=window.innerWidth}getOppositePlacement(t){const[s,i]=[t.split("-")[0],t.split("-").slice(1).join("-")];const e={top:"bottom",bottom:"top",left:"right",right:"left"};return i?`${e[s]}-${i}`:e[s]}findBestPlacement(t,s,i,e){const o=e=>{const o=this.calcCoords(t.width,t.height,s,i,e);return this.fitsMainAxis(t,s,i,o.top,o.left,e)};if(o(e))return e;const n=this.getOppositePlacement(e);if(o(n))return n;const r=e.split("-")[1]||"";const a=["top","bottom","right","left"];for(const t of a){const s=r?`${t}-${r}`:t;if(s!==e&&s!==n&&o(s)){return s}}return e}render(){const t=this.variant==="rich";const s=!!this.subhead||this.hasSlottedSubhead;const i=this.hasSlottedActions;return e(o,{key:"f3272da5fa2e3b6a4c621182a5d2572f71e1badb",class:"md-tooltip-wrapper"},e("slot",{key:"a97507419418ffab1abeb6980d212b1c83b7d8fb"}),e("div",{key:"047b14502bb2942b6934408a4e40e120d654f939",class:{"md-tooltip__popup":true,"md-tooltip__popup--plain":!t,"md-tooltip__popup--rich":t,"md-tooltip__popup--visible":this.isVisible,[`md-tooltip__popup--${this.resolvedPlacement}`]:true},id:this.tooltipId,role:"tooltip",part:"popup","aria-hidden":this.isVisible?"false":"true",ref:t=>this.popupEl=t,onMouseEnter:this.handlePopupEnter,onMouseLeave:this.handlePopupLeave},t?[s&&e("div",{class:"md-tooltip__subhead",part:"subhead",key:"subhead"},e("slot",{name:"subhead"},this.subhead)),e("div",{class:"md-tooltip__supporting-text",part:"supporting-text",key:"text"},e("slot",{name:"content"},this.text)),e("div",{class:{"md-tooltip__actions":true,"md-tooltip__actions--empty":!i},part:"actions",key:"actions"},e("slot",{name:"actions"}))]:e("span",{class:"md-tooltip__text",part:"text"},this.text)))}get el(){return this}static get watchers(){return{open:[{onOpenChange:0}],disabled:[{onDisabledChange:0}],text:[{onDescriptionChange:0}],subhead:[{onDescriptionChange:0}]}}static get style(){return r()}},[257,"md-tooltip",{text:[1],subhead:[1],variant:[513],position:[1],autoPosition:[4,"auto-position"],offset:[2],crossOffset:[2,"cross-offset"],open:[1540],showDelay:[2,"show-delay"],hideDelay:[2,"hide-delay"],disabled:[516],density:[514],isVisible:[32],resolvedPlacement:[32],hasSlottedActions:[32],hasSlottedSubhead:[32],show:[64],hide:[64]},undefined,{open:[{onOpenChange:0}],disabled:[{onDisabledChange:0}],text:[{onDescriptionChange:0}],subhead:[{onDescriptionChange:0}]}]);function l(){if(typeof customElements==="undefined"){return}const t=["md-tooltip"];t.forEach((t=>{switch(t){case"md-tooltip":if(!customElements.get(n(t))){customElements.define(n(t),h)}break}}))}l();export{h as M,l as d};
|
|
2
|
+
//# sourceMappingURL=p-ssLobpGS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdTooltipCss","TOOLTIP_VIEWPORT_MARGIN","MdTooltip","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","text","subhead","variant","position","autoPosition","offset","crossOffset","open","showDelay","hideDelay","disabled","density","isVisible","resolvedPlacement","hasSlottedActions","hasSlottedSubhead","tooltipId","Math","random","toString","slice","scrollListenerBound","escapeListenerBound","hostHoverBound","hasLoaded","suppressed","onTriggerSlotChange","els","triggerSlot","assignedElements","length","bindTrigger","handleTriggerEnter","scheduleShow","handleTriggerLeave","scheduleHide","handleTriggerFocus","handleTriggerBlur","e","relatedTarget","el","contains","handleHostFocusOut","handlePopupEnter","clearTimers","handlePopupLeave","handleGlobalEscape","key","preventDefault","active","getDeepActiveElement","focusInside","triggerEl","focus","lastGeom","at","al","aw","ah","pw","ph","vw","vh","ex","ey","watchdogFrame","handleScroll","updatePosition","componentWillLoad","syncSlotFlags","componentDidLoad","setup","showTooltip","connectedCallback","addScrollListener","addEscapeListener","schedulePositionUpdate","startPositionWatchdog","shadow","shadowRoot","querySelector","undefined","addEventListener","MutationObserver","slotObserver","updateTriggerAria","observe","childList","subtree","characterData","first","children","Array","from","some","c","getAttribute","disconnectedCallback","stopPositionWatchdog","unbindTrigger","removeScrollListener","removeEscapeListener","removeEventListener","disconnect","onOpenChange","val","hideTooltip","onDisabledChange","removeAttribute","onDescriptionChange","show","hide","useHostHover","tag","tagName","toLowerCase","hasAttribute","tabIndex","startsWith","desc","computeDescription","setAttribute","parts","child","slot","t","textContent","trim","push","join","showTimer","setTimeout","hideTimer","document","a","activeElement","isConnected","mdOpen","emit","attempt","requestAnimationFrame","positioned","tick","popup","popupEl","offsetWidth","offsetHeight","getAnchorRect","p","getBoundingClientRect","g","drifted","top","left","width","height","abs","window","innerWidth","innerHeight","cancelAnimationFrame","mdClose","clearTimeout","capture","passive","anchorRect","popupW","popupH","placement","physicalPlacement","findBestPlacement","coords","calcCoords","isVertical","M","absLeft","maxLeft","clampedLeft","min","max","absTop","maxTop","clampedTop","fixedCoords","toFixedCoords","style","insetBlockStart","insetInlineStart","triggerRect","viewportTop","viewportLeft","containingBlock","getFixedContainingBlock","cbRect","createsFixedContainingBlock","s","transform","filter","perspective","translate","rotate","scale","backdropFilter","test","willChange","contain","contentVisibility","containerType","node","getComputedStyle","parentElement","parentNode","ShadowRoot","host","isRTL","direction","axis","align","split","flippedAxis","flippedAlign","hostW","hostH","o","fitsMainAxis","hostRect","relTop","relLeft","getOppositePlacement","opp","bottom","right","preferred","check","opposite","axes","candidate","render","isRich","hasSubhead","hasActions","h","Host","class","id","role","part","ref","onMouseEnter","onMouseLeave","name"],"sources":["src/components/md-tooltip/md-tooltip.css?tag=md-tooltip&encapsulation=shadow","src/components/md-tooltip/md-tooltip.tsx"],"sourcesContent":["/* ==========================================================\n md-tooltip — Material Design 3 Tooltip\n Spec: https://m3.material.io/components/tooltips/specs\n\n PUBLIC CSS CUSTOM PROPERTIES (override per-instance):\n --md-tooltip-plain-container-color Plain tooltip background\n --md-tooltip-plain-text-color Plain tooltip text color\n --md-tooltip-rich-container-color Rich tooltip background\n --md-tooltip-rich-subhead-color Rich subhead text color\n --md-tooltip-rich-text-color Rich supporting text color\n --md-tooltip-rich-action-color Rich action button color\n --md-tooltip-container-shape Border-radius (plain)\n --md-tooltip-plain-max-inline-size Plain tooltip max width\n --md-tooltip-rich-container-shape Border-radius (rich)\n --md-tooltip-rich-min-inline-size Rich tooltip min width\n --md-tooltip-rich-max-inline-size Rich tooltip max width\n\n CSS PARTS:\n popup Tooltip popup container\n subhead Rich tooltip subhead wrapper\n supporting-text Rich tooltip supporting text wrapper\n actions Rich tooltip action button wrapper\n text Plain tooltip text wrapper\n\n SLOTS:\n (default) Trigger element\n content Rich tooltip supporting text\n subhead Rich tooltip subhead\n actions Rich tooltip action buttons\n ========================================================== */\n\n/* ==========================================================\n 1. HOST\n ========================================================== */\n\n:host {\n display: inline-block;\n position: relative;\n}\n\n/* ==========================================================\n 2. POPUP — shared base\n ========================================================== */\n\n.md-tooltip__popup {\n /* Fixed + viewport coords (set in JS) so popups escape overflow:hidden ancestors. */\n position: fixed;\n z-index: var(--md-sys-z-index-tooltip, 1500);\n pointer-events: none;\n box-sizing: border-box;\n /* CRITICAL: width must not depend on the popup's own offsets. With width:auto, a\n fixed element shrink-to-fits into (containing block − left), so writing `left`\n changes the width, which re-wraps the text, which the position watchdog sees as\n drift and repositions — an animated wrap/slide feedback loop that crawls the\n popup across the screen one frame at a time. max-content sizes from the CONTENT\n only (the variant max-inline-size caps still bound it), decoupling measurement\n from position: one measure, one placement, no loop. */\n width: max-content;\n\n opacity: 0;\n visibility: hidden;\n transform: scale(0.9);\n\n transition:\n opacity var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, ease),\n transform var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, ease),\n visibility 0ms linear var(--md-sys-motion-duration-short2, 100ms);\n}\n\n.md-tooltip__popup--visible {\n opacity: 1;\n visibility: visible;\n transform: scale(1);\n pointer-events: auto;\n transition:\n opacity var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, ease),\n transform var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, ease),\n visibility 0ms linear 0ms;\n}\n\n/* ==========================================================\n 3. PLAIN TOOLTIP\n Spec: height 24px (via padding), padding 8px, body-small\n ========================================================== */\n\n.md-tooltip__popup--plain {\n --_container-color: var(--md-tooltip-plain-container-color, var(--md-sys-color-inverse-surface, #313033));\n --_text-color: var(--md-tooltip-plain-text-color, var(--md-sys-color-inverse-on-surface, #F4EFF4));\n --_shape: var(--md-tooltip-container-shape, var(--md-sys-shape-corner-extra-small, 4px));\n\n background-color: var(--_container-color);\n color: var(--_text-color);\n border-radius: var(--_shape);\n\n /* Global density: on-grid padding tracks --md-sys-spacing-* (4/8 = inset-xs/sm);\n defaults resolve byte-for-byte at density 0. min-block-size stays the 24px\n spec height floor. */\n padding-block: var(--md-sys-spacing-inset-xs, 4px);\n padding-inline: var(--md-sys-spacing-inset-sm, 8px);\n\n min-block-size: max(20px, calc(24px + var(--md-sys-density-scale, 0) * 1px));\n max-inline-size: min(var(--md-tooltip-plain-max-inline-size, 280px), calc(100vw - 16px));\n\n font-family: var(--md-sys-typescale-body-small-font-family, Roboto, sans-serif);\n font-size: max(10px, calc(12px + var(--md-sys-density-scale, 0) * 0.5px));\n font-weight: var(--md-sys-typescale-body-small-font-weight, 400);\n line-height: max(14px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px));\n letter-spacing: var(--md-sys-typescale-body-small-letter-spacing, 0.4px);\n\n /* Wrap long content over multiple lines instead of clipping it. The plain\n tooltip is the overflow tooltip used by md-list-item, so it must reveal\n the FULL text. `max-inline-size` caps the line length (280px default here,\n overridable per-instance) and the content wraps below it rather than\n truncating with an ellipsis. */\n white-space: normal;\n display: flex;\n align-items: center;\n}\n\n.md-tooltip__text {\n /* No ellipsis / overflow clipping — let the popup grow vertically and wrap.\n `overflow-wrap: anywhere` keeps an unbroken long word (URLs, IDs) from\n forcing the popup wider than its max-inline-size. */\n overflow-wrap: anywhere;\n}\n\n/* ==========================================================\n 4. RICH TOOLTIP\n Spec: top padding 12px, bottom 8px, left/right 16px\n ========================================================== */\n\n.md-tooltip__popup--rich {\n --_container-color: var(--md-tooltip-rich-container-color, var(--md-sys-color-surface-container, #F3EDF7));\n --_subhead-color: var(--md-tooltip-rich-subhead-color, var(--md-sys-color-on-surface-variant, #49454F));\n --_text-color: var(--md-tooltip-rich-text-color, var(--md-sys-color-on-surface-variant, #49454F));\n --_action-color: var(--md-tooltip-rich-action-color, var(--md-sys-color-primary, #6750A4));\n --_shape: var(--md-tooltip-rich-container-shape, var(--md-sys-shape-corner-medium, 12px));\n\n background-color: var(--_container-color);\n color: var(--_text-color);\n border-radius: var(--_shape);\n\n /* Global density: on-grid rich padding tracks --md-sys-spacing-*\n (12/8/16 = inset-md/sm/lg); defaults resolve byte-for-byte at density 0. */\n padding-block-start: var(--md-sys-spacing-inset-md, 12px);\n padding-block-end: var(--md-sys-spacing-inset-sm, 8px);\n padding-inline: var(--md-sys-spacing-inset-lg, 16px);\n\n min-inline-size: var(--md-tooltip-rich-min-inline-size, 120px);\n max-inline-size: min(var(--md-tooltip-rich-max-inline-size, 320px), calc(100vw - 16px));\n\n white-space: normal;\n box-shadow: var(--md-sys-elevation-2, 0 1px 3px 1px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.3));\n}\n\n/* Subhead */\n.md-tooltip__subhead {\n font-family: var(--md-sys-typescale-title-small-font-family, Roboto, sans-serif);\n font-size: max(11px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));\n font-weight: var(--md-sys-typescale-title-small-font-weight, 500);\n line-height: max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));\n letter-spacing: var(--md-sys-typescale-title-small-letter-spacing, 0.1px);\n color: var(--_subhead-color);\n margin-block-end: var(--md-sys-spacing-gap-xs, 4px);\n}\n\n/* Supporting text */\n.md-tooltip__supporting-text {\n font-family: var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif);\n font-size: max(11px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));\n font-weight: var(--md-sys-typescale-body-medium-font-weight, 400);\n line-height: max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));\n letter-spacing: var(--md-sys-typescale-body-medium-letter-spacing, 0.25px);\n color: var(--_text-color);\n}\n\n/* Actions */\n.md-tooltip__actions {\n display: flex;\n gap: var(--md-sys-spacing-gap-sm, 8px);\n justify-content: flex-end;\n margin-block-start: var(--md-sys-spacing-gap-md, 12px);\n color: var(--_action-color);\n}\n\n.md-tooltip__actions--empty {\n display: none;\n}\n\n/* Slotted action buttons */\n::slotted([slot=\"actions\"]) {\n color: var(--_action-color);\n}\n\n/* ==========================================================\n 5. PLACEMENT — transform-origin for enter animation\n Position is set inline via JS; these handle animation origin.\n ========================================================== */\n\n.md-tooltip__popup--top,\n.md-tooltip__popup--top-start,\n.md-tooltip__popup--top-end {\n transform-origin: bottom center;\n}\n\n.md-tooltip__popup--bottom,\n.md-tooltip__popup--bottom-start,\n.md-tooltip__popup--bottom-end {\n transform-origin: top center;\n}\n\n.md-tooltip__popup--left,\n.md-tooltip__popup--left-start,\n.md-tooltip__popup--left-end {\n transform-origin: center right;\n}\n\n.md-tooltip__popup--right,\n.md-tooltip__popup--right-start,\n.md-tooltip__popup--right-end {\n transform-origin: center left;\n}\n\n/* ==========================================================\n 6. RTL\n NB: no transform-origin overrides here. The placement classes are already\n PHYSICAL — JS (physicalPlacement) maps logical placements per direction\n before resolving the class — so the base origins in section 5 always face\n the trigger. The old :host-context([dir=rtl]) re-flip double-flipped them,\n making the entrance scale grow from the edge facing AWAY from the trigger.\n ========================================================== */\n\n:host-context([dir=\"rtl\"]) .md-tooltip__actions {\n justify-content: flex-start;\n}\n\n/* ==========================================================\n 7. FORCED COLORS (Windows High Contrast)\n The popup is a background + elevation surface — both are dropped in\n forced-colors mode, leaving the tooltip text floating with no boundary\n over the page. Give it a system-color border so the region stays\n perceivable (matches the md-toolbar hardened convention).\n ========================================================== */\n\n@media (forced-colors: active) {\n .md-tooltip__popup {\n border: 1px solid CanvasText;\n }\n}\n\n/* ==========================================================\n 8. REDUCED MOTION\n Honor a reduced-motion preference by dropping the scale/opacity\n entrance so the tooltip appears/disappears instantly instead of\n animating on every hover (md-list-item mounts a tooltip per row).\n ========================================================== */\n\n@media (prefers-reduced-motion: reduce) {\n .md-tooltip__popup,\n .md-tooltip__popup--visible {\n transition: none;\n transform: none;\n }\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 { Component, Host, h, Prop, State, Event, EventEmitter, Element, Method, Watch } from '@stencil/core';\n\nexport type Placement =\n | 'top' | 'top-start' | 'top-end'\n | 'bottom' | 'bottom-start' | 'bottom-end'\n | 'left' | 'left-start' | 'left-end'\n | 'right' | 'right-start' | 'right-end';\n\n/** Minimum gap kept between a popup and the viewport edge when cross-axis clamping. */\nconst TOOLTIP_VIEWPORT_MARGIN = 8;\n\n/**\n * @slot - Trigger element the tooltip is anchored to\n * @slot content - Rich tooltip supporting text (overrides `text` prop)\n * @slot subhead - Rich tooltip subhead (overrides `subhead` prop)\n * @slot actions - Rich tooltip action buttons\n *\n * @part popup - Tooltip popup container\n * @part subhead - Rich tooltip subhead wrapper\n * @part supporting-text - Rich tooltip supporting text wrapper\n * @part actions - Rich tooltip action button wrapper\n * @part text - Plain tooltip text wrapper\n */\n@Component({\n tag: 'md-tooltip',\n styleUrl: 'md-tooltip.css',\n shadow: true,\n})\nexport class MdTooltip {\n @Element() el!: HTMLElement;\n\n /** Plain tooltip text, or rich tooltip supporting text */\n @Prop() text: string = '';\n\n /** Rich tooltip subhead (headline) */\n @Prop() subhead: string = '';\n\n /** Visual variant */\n @Prop({ reflect: true }) variant: 'plain' | 'rich' = 'plain';\n\n /** Preferred placement relative to the trigger */\n @Prop() position: Placement = 'top';\n\n /** Automatically reposition if overflowing the viewport */\n @Prop() autoPosition: boolean = true;\n\n /** Distance from the trigger in pixels */\n @Prop() offset: number = 8;\n\n /** Cross-axis offset in pixels */\n @Prop() crossOffset: number = 0;\n\n /** Programmatic open state */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /** Delay before showing (ms) */\n @Prop() showDelay: number = 500;\n\n /** Delay before hiding (ms) — for rich variant hover-out grace period */\n @Prop() hideDelay: number = 200;\n\n /** When true, hover/focus handlers are ignored and any open tooltip is dismissed. */\n @Prop({ reflect: true }) disabled: boolean = false;\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 /**\n * Emits when the tooltip becomes visible. `bubbles:false` + `composed:false` keep it\n * from crossing the shadow boundary and retargeting onto an embedding host (the repo's\n * documented composed-event-leak class — see md-date-picker's swallow guards).\n */\n @Event({ bubbles: false, composed: false }) mdOpen: EventEmitter<void>;\n\n /** Emits when the tooltip is dismissed (does not bubble or cross shadow boundaries). */\n @Event({ bubbles: false, composed: false }) mdClose: EventEmitter<void>;\n\n @State() private isVisible = false;\n @State() private resolvedPlacement: Placement = 'top';\n @State() private hasSlottedActions = false;\n @State() private hasSlottedSubhead = false;\n\n private popupEl?: HTMLElement;\n private triggerEl?: HTMLElement;\n private triggerSlot?: HTMLSlotElement;\n private slotObserver?: MutationObserver;\n private showTimer?: ReturnType<typeof setTimeout>;\n private hideTimer?: ReturnType<typeof setTimeout>;\n private tooltipId = `md-tooltip-${Math.random().toString(36).slice(2, 9)}`;\n private scrollListenerBound = false;\n private escapeListenerBound = false;\n private hostHoverBound = false;\n private hasLoaded = false;\n /** Set on Escape dismissal; blocks re-show until the pointer/focus leaves the trigger. */\n private suppressed = false;\n\n // ─── Lifecycle ───────────────────────────────────────────\n\n componentWillLoad() {\n // Seed slot flags + visible state BEFORE the first render so the didLoad setup()\n // re-computes them to the same values — a no-op write rather than a state change\n // during componentDidLoad (which triggers Stencil's extra-re-render warning).\n // Honor `disabled`: a disabled tooltip must never render visible, and seeding\n // isVisible while disabled would also leak an unbalanced mdClose on the next hide.\n this.syncSlotFlags();\n if (this.open && !this.disabled) this.isVisible = true;\n }\n\n componentDidLoad() {\n this.hasLoaded = true;\n this.setup();\n if (this.open) this.showTooltip();\n }\n\n connectedCallback() {\n // On a REPARENT (disconnect→connect after first load), re-establish bindings —\n // componentDidLoad runs only once, so without this a moved tooltip goes dead.\n if (!this.hasLoaded) return;\n this.setup();\n // If the tooltip was still visible when it was moved, disconnectedCallback tore\n // down its scroll/Escape listeners without hiding it — restore them and reposition\n // against the moved trigger so it isn't stranded open, undismissable and detached.\n if (this.isVisible && !this.disabled) {\n this.addScrollListener();\n this.addEscapeListener();\n this.schedulePositionUpdate();\n this.startPositionWatchdog();\n } else if (this.open && !this.isVisible && !this.disabled) {\n // `open` was set while the element was DETACHED (showTooltip refuses to bind\n // global listeners there) — honor it now that we are connected again.\n this.showTooltip();\n }\n }\n\n /** (Re)attach trigger binding, slot detection and the host focusout listener. */\n private setup() {\n const shadow = this.el.shadowRoot;\n if (!shadow) return;\n\n this.triggerSlot = (shadow.querySelector('slot:not([name])') as HTMLSlotElement | null) ?? undefined;\n // addEventListener dedupes identical (fn, capture) pairs, so a re-setup is safe.\n this.triggerSlot?.addEventListener('slotchange', this.onTriggerSlotChange);\n this.el.addEventListener('focusout', this.handleHostFocusOut);\n\n // Rich content is authored in light DOM regardless of variant, so detect it there —\n // the shadow content/subhead/actions slots only exist while variant=\"rich\" renders,\n // which is why shadow-slot detection missed a runtime plain→rich switch.\n this.syncSlotFlags();\n if (typeof MutationObserver !== 'undefined' && !this.slotObserver) {\n // childList catches slotted content add/remove; subtree+characterData catches\n // edits to slotted text so a slot-only rich tooltip's aria-description stays fresh.\n this.slotObserver = new MutationObserver(() => {\n this.syncSlotFlags();\n if (this.triggerEl) this.updateTriggerAria(this.triggerEl);\n });\n this.slotObserver.observe(this.el, { childList: true, subtree: true, characterData: true });\n }\n\n const first = this.triggerSlot?.assignedElements()[0] as HTMLElement | undefined;\n if (first) this.bindTrigger(first);\n }\n\n private onTriggerSlotChange = () => {\n const els = this.triggerSlot?.assignedElements();\n if (els && els.length > 0) this.bindTrigger(els[0] as HTMLElement);\n };\n\n private syncSlotFlags() {\n // Direct-child scan (not `:scope >`, which Stencil's mock-doc can't parse).\n const children = Array.from(this.el.children);\n this.hasSlottedActions = children.some((c) => c.getAttribute('slot') === 'actions');\n this.hasSlottedSubhead = children.some((c) => c.getAttribute('slot') === 'subhead');\n }\n\n disconnectedCallback() {\n this.clearTimers();\n this.stopPositionWatchdog();\n this.unbindTrigger();\n this.removeScrollListener();\n this.removeEscapeListener();\n this.el.removeEventListener('focusout', this.handleHostFocusOut);\n this.triggerSlot?.removeEventListener('slotchange', this.onTriggerSlotChange);\n this.triggerSlot = undefined;\n this.slotObserver?.disconnect();\n this.slotObserver = undefined;\n }\n\n // ─── Watchers ────────────────────────────────────────────\n\n @Watch('open')\n onOpenChange(val: boolean) {\n if (val) {\n this.showTooltip();\n } else {\n this.hideTooltip();\n }\n }\n\n @Watch('disabled')\n onDisabledChange(disabled: boolean) {\n if (disabled) {\n this.clearTimers();\n if (this.open) this.open = false;\n this.triggerEl?.removeAttribute('aria-description');\n } else if (this.triggerEl) {\n this.updateTriggerAria(this.triggerEl);\n }\n }\n\n /** Keep the trigger's aria-description in sync when the tooltip's text changes\n * after binding (bindTrigger and the disabled watcher were the only refreshers). */\n @Watch('text')\n @Watch('subhead')\n onDescriptionChange() {\n if (this.triggerEl) this.updateTriggerAria(this.triggerEl);\n }\n\n // ─── Public Methods ──────────────────────────────────────\n\n /** Show the tooltip programmatically (no-op while `disabled`). */\n @Method()\n async show() {\n // Don't flip `open` (a reflected attribute) true while disabled — showTooltip\n // would early-return, leaving open=true with nothing visible (a state desync).\n if (this.disabled) return;\n this.open = true;\n }\n\n /** Dismiss the tooltip programmatically. */\n @Method()\n async hide() {\n this.open = false;\n }\n\n // ─── Trigger Binding ─────────────────────────────────────\n\n private bindTrigger(el: HTMLElement) {\n this.unbindTrigger();\n this.triggerEl = el;\n\n // Presentational triggers (e.g. weekday spans) are not focusable; hover the host instead.\n if (this.useHostHover(el)) {\n this.el.addEventListener('mouseenter', this.handleTriggerEnter);\n this.el.addEventListener('mouseleave', this.handleTriggerLeave);\n this.hostHoverBound = true;\n } else {\n el.addEventListener('mouseenter', this.handleTriggerEnter);\n el.addEventListener('mouseleave', this.handleTriggerLeave);\n }\n\n el.addEventListener('focus', this.handleTriggerFocus);\n el.addEventListener('blur', this.handleTriggerBlur);\n this.updateTriggerAria(el);\n }\n\n private unbindTrigger() {\n if (this.hostHoverBound) {\n this.el.removeEventListener('mouseenter', this.handleTriggerEnter);\n this.el.removeEventListener('mouseleave', this.handleTriggerLeave);\n this.hostHoverBound = false;\n } else if (this.triggerEl) {\n this.triggerEl.removeEventListener('mouseenter', this.handleTriggerEnter);\n this.triggerEl.removeEventListener('mouseleave', this.handleTriggerLeave);\n }\n\n if (!this.triggerEl) return;\n\n this.triggerEl.removeEventListener('focus', this.handleTriggerFocus);\n this.triggerEl.removeEventListener('blur', this.handleTriggerBlur);\n this.triggerEl.removeAttribute('aria-description');\n this.triggerEl = undefined;\n }\n\n /** True when hover should be tracked on the tooltip host (non-interactive triggers). */\n private useHostHover(el: HTMLElement): boolean {\n const tag = el.tagName.toLowerCase();\n if (tag === 'button' || tag === 'a' || tag === 'input' || tag === 'select' || tag === 'textarea') {\n return false;\n }\n if (el.hasAttribute('tabindex') && el.tabIndex >= 0) return false;\n if (tag.startsWith('md-')) return false;\n return true;\n }\n\n /** aria-description works across shadow DOM (unlike aria-describedby IDREFs) */\n private updateTriggerAria(el: HTMLElement) {\n if (this.disabled) {\n el.removeAttribute('aria-description');\n return;\n }\n const desc = this.computeDescription();\n if (desc) {\n el.setAttribute('aria-description', desc);\n } else {\n el.removeAttribute('aria-description');\n }\n }\n\n /**\n * The trigger's accessible description: `text`/`subhead` props first, then a\n * fallback to slotted rich content (subhead + supporting text) so a slot-only\n * rich tooltip is still announced to screen readers. Action buttons are excluded\n * — they are not description text and carry their own accessible names.\n */\n private computeDescription(): string {\n if (this.text) return this.text;\n if (this.subhead) return this.subhead;\n const parts: string[] = [];\n for (const child of Array.from(this.el.children)) {\n const slot = child.getAttribute('slot');\n if (slot === 'subhead' || slot === 'content') {\n const t = (child.textContent || '').trim();\n if (t) parts.push(t);\n }\n }\n return parts.join('. ');\n }\n\n // ─── Event Handlers ──────────────────────────────────────\n\n /** Arm the show timer, unless disabled or Escape-suppressed until re-entry. */\n private scheduleShow() {\n if (this.disabled || this.suppressed) return;\n this.clearTimers();\n this.showTimer = setTimeout(() => {\n this.open = true;\n }, this.showDelay);\n }\n\n /** Arm the hide grace timer (both variants) so the pointer can travel from the\n * trigger onto the popup without it vanishing — WCAG 1.4.13 \"hoverable\". */\n private scheduleHide() {\n this.clearTimers();\n this.hideTimer = setTimeout(() => {\n this.open = false;\n }, this.hideDelay);\n }\n\n private handleTriggerEnter = () => this.scheduleShow();\n\n private handleTriggerLeave = () => {\n // A fresh hover may re-show after an Escape dismissal.\n this.suppressed = false;\n this.scheduleHide();\n };\n\n private handleTriggerFocus = () => this.scheduleShow();\n\n private handleTriggerBlur = (e: FocusEvent) => {\n // Focus moving into the popup (rich action buttons) keeps the tooltip open.\n if (e.relatedTarget && this.el.contains(e.relatedTarget as Node)) return;\n this.suppressed = false;\n this.scheduleHide();\n };\n\n /**\n * Handles focusout at the host level — covers focus leaving\n * both the trigger AND slotted rich-tooltip action buttons.\n */\n private handleHostFocusOut = (e: FocusEvent) => {\n if (this.variant !== 'rich' || !this.isVisible) return;\n if (e.relatedTarget && this.el.contains(e.relatedTarget as Node)) return;\n this.scheduleHide();\n };\n\n /** Pointer over the popup keeps it open (hoverable) — both variants. */\n private handlePopupEnter = () => {\n this.clearTimers();\n };\n\n private handlePopupLeave = () => {\n this.scheduleHide();\n };\n\n // ─── Show / Hide ─────────────────────────────────────────\n\n /** Document-level Escape handler — dismisses from any focused descendant */\n private handleGlobalEscape = (e: KeyboardEvent) => {\n if (e.key !== 'Escape' || !this.isVisible) return;\n e.preventDefault();\n this.clearTimers();\n // Suppress re-show until the pointer/focus leaves and returns, so refocusing\n // the trigger (below) or a lingering hover can't immediately reopen it.\n this.suppressed = true;\n // WCAG 1.4.13: dismissal must NOT move focus. Only return focus to the trigger\n // when focus is currently inside the tooltip (popup/actions) or on the trigger —\n // never yank it from an unrelated element the user is interacting with.\n const active = this.getDeepActiveElement();\n const focusInside = !!active && (this.el.contains(active) || active === this.triggerEl);\n this.open = false;\n if (focusInside && this.triggerEl) this.triggerEl.focus();\n };\n\n /** Deepest focused element, piercing shadow roots. */\n private getDeepActiveElement(): Element | null {\n if (typeof document === 'undefined') return null;\n let a: Element | null = document.activeElement;\n while (a && a.shadowRoot && a.shadowRoot.activeElement) a = a.shadowRoot.activeElement;\n return a;\n }\n\n private addEscapeListener() {\n if (!this.escapeListenerBound) {\n document.addEventListener('keydown', this.handleGlobalEscape, true);\n this.escapeListenerBound = true;\n }\n }\n\n private removeEscapeListener() {\n if (this.escapeListenerBound) {\n document.removeEventListener('keydown', this.handleGlobalEscape, true);\n this.escapeListenerBound = false;\n }\n }\n\n private showTooltip() {\n if (this.disabled) return;\n // A DETACHED element must not bind global listeners or start the rAF loop —\n // disconnectedCallback can never fire again to clean them up (a stale ref\n // toggling `open` after removal would otherwise leak a 60fps loop plus a\n // document-level Escape handler forever). connectedCallback re-shows on\n // reconnect via the open/isVisible checks.\n if (!this.el.isConnected) return;\n this.isVisible = true;\n this.mdOpen.emit();\n this.addScrollListener();\n this.addEscapeListener();\n // Measure after layout so fixed coords are accurate (retry if popup not yet sized).\n this.schedulePositionUpdate();\n this.startPositionWatchdog();\n }\n\n private schedulePositionUpdate(attempt = 0) {\n requestAnimationFrame(() => {\n const positioned = this.updatePosition();\n if (!positioned && attempt < 3) {\n this.schedulePositionUpdate(attempt + 1);\n }\n });\n }\n\n // ─── Position Watchdog ──────────────────────────────────\n //\n // The scroll listener only repairs staleness that arrives as a light-DOM scroll.\n // Everything else that moves the anchor or resizes the popup after positioning is\n // invisible to it: window resize reflow, scrollers inside OTHER shadow roots\n // (scroll is composed:false), sibling layout shift, web-font/text growth, and a\n // containing-block appearing/vanishing at rest (md-list's --shifting adds\n // will-change:transform to rows that haven't moved; md-date-picker's entrance\n // transform settles back to none). Rather than plumbing per-ancestor listeners +\n // ResizeObservers + animation hooks (large lifecycle surface), a single rAF\n // watchdog runs ONLY while the tooltip is visible and repositions when the anchor\n // rect, popup size, the popup's ACTUAL viewport position (which shifts when a\n // containing block reinterprets the stored coords), or the viewport changes.\n // Cost: two getBoundingClientRect calls (anchor + popup) and two offset reads per\n // frame, per visible tooltip (tooltips are transient, effectively one at a time).\n\n /** Geometry snapshot from the last successful updatePosition. ex/ey are the popup's\n * EXPECTED viewport coords — if a containing-block change reinterprets the stored\n * style.top/left, the popup's real rect drifts from these and we reposition. */\n private lastGeom = { at: 0, al: 0, aw: 0, ah: 0, pw: 0, ph: 0, vw: 0, vh: 0, ex: 0, ey: 0 };\n private watchdogFrame = 0;\n\n private startPositionWatchdog() {\n if (typeof requestAnimationFrame !== 'function') return;\n this.stopPositionWatchdog();\n const tick = () => {\n if (!this.isVisible || !this.el.isConnected) {\n this.watchdogFrame = 0;\n return;\n }\n const popup = this.popupEl;\n if (popup && this.triggerEl) {\n const pw = popup.offsetWidth;\n const ph = popup.offsetHeight;\n // A 0x0 popup means a hidden ancestor — positioning would fail without\n // refreshing the snapshot, so skip until it has a box again (the size\n // delta versus the snapshot triggers the reposition on reveal).\n if (pw !== 0 || ph !== 0) {\n const a = this.getAnchorRect();\n const p = popup.getBoundingClientRect();\n const g = this.lastGeom;\n const drifted =\n a.top !== g.at || a.left !== g.al || a.width !== g.aw || a.height !== g.ah ||\n pw !== g.pw || ph !== g.ph ||\n // 0.5px tolerance absorbs subpixel churn; the entrance scale animation\n // exceeds it for a few frames, which just re-writes the same coords.\n Math.abs(p.top - g.ey) > 0.5 || Math.abs(p.left - g.ex) > 0.5 ||\n window.innerWidth !== g.vw || window.innerHeight !== g.vh;\n if (drifted) this.updatePosition();\n }\n }\n this.watchdogFrame = requestAnimationFrame(tick);\n };\n this.watchdogFrame = requestAnimationFrame(tick);\n }\n\n private stopPositionWatchdog() {\n if (this.watchdogFrame && typeof cancelAnimationFrame === 'function') {\n cancelAnimationFrame(this.watchdogFrame);\n }\n this.watchdogFrame = 0;\n }\n\n private hideTooltip() {\n // No spurious mdClose if it was never actually shown (e.g. hide() after a\n // show() that was suppressed by `disabled`) — keep open/close events balanced.\n if (!this.isVisible) return;\n this.isVisible = false;\n this.mdClose.emit();\n this.removeScrollListener();\n this.removeEscapeListener();\n this.stopPositionWatchdog();\n }\n\n private clearTimers() {\n if (this.showTimer != null) {\n clearTimeout(this.showTimer);\n this.showTimer = undefined;\n }\n if (this.hideTimer != null) {\n clearTimeout(this.hideTimer);\n this.hideTimer = undefined;\n }\n }\n\n // ─── Scroll Listener ────────────────────────────────────\n\n private addScrollListener() {\n if (!this.scrollListenerBound) {\n window.addEventListener('scroll', this.handleScroll, { capture: true, passive: true });\n this.scrollListenerBound = true;\n }\n }\n\n private removeScrollListener() {\n if (this.scrollListenerBound) {\n window.removeEventListener('scroll', this.handleScroll, true);\n this.scrollListenerBound = false;\n }\n }\n\n private handleScroll = () => {\n if (this.isVisible) this.updatePosition();\n };\n\n // ─── Positioning ─────────────────────────────────────────\n\n private updatePosition(): boolean {\n if (!this.popupEl || !this.triggerEl) return false;\n\n const anchorRect = this.getAnchorRect();\n const popupW = this.popupEl.offsetWidth;\n const popupH = this.popupEl.offsetHeight;\n\n if (popupW === 0 && popupH === 0) return false;\n\n let placement = this.physicalPlacement(this.position);\n\n if (this.autoPosition) {\n placement = this.findBestPlacement(anchorRect, popupW, popupH, placement);\n }\n\n const coords = this.calcCoords(anchorRect.width, anchorRect.height, popupW, popupH, placement);\n\n // crossOffset shifts the popup along the axis PERPENDICULAR to the placement:\n // horizontal for top/bottom, vertical for left/right. Applying it to `left`\n // unconditionally moved it along the MAIN axis for left/right placements.\n if (placement.startsWith('top') || placement.startsWith('bottom')) {\n coords.left += this.crossOffset;\n } else {\n coords.top += this.crossOffset;\n }\n\n // Cross-axis clamp: nudge the popup along the axis perpendicular to the\n // placement so it stays in the viewport, instead of flipping. A centered\n // top/bottom tooltip on an edge trigger (e.g. the first/last nav chevron in\n // a docked md-date-picker) would otherwise overflow horizontally — keep the\n // requested side and shift it inward so it stays bottom and fully visible.\n if (this.autoPosition) {\n const isVertical = placement.startsWith('top') || placement.startsWith('bottom');\n const M = TOOLTIP_VIEWPORT_MARGIN;\n if (isVertical) {\n const absLeft = anchorRect.left + coords.left;\n const maxLeft = window.innerWidth - popupW - M;\n const clampedLeft = Math.min(Math.max(absLeft, M), Math.max(M, maxLeft));\n coords.left += clampedLeft - absLeft;\n } else {\n const absTop = anchorRect.top + coords.top;\n const maxTop = window.innerHeight - popupH - M;\n const clampedTop = Math.min(Math.max(absTop, M), Math.max(M, maxTop));\n coords.top += clampedTop - absTop;\n }\n }\n\n const fixedCoords = this.toFixedCoords(anchorRect.top + coords.top, anchorRect.left + coords.left);\n\n // position:fixed — use physical top/left; getBoundingClientRect is viewport-physical.\n // Logical inset-inline-start would misplace popups in RTL (inline-start is on the right).\n this.popupEl.style.top = `${fixedCoords.top}px`;\n this.popupEl.style.left = `${fixedCoords.left}px`;\n this.popupEl.style.insetBlockStart = '';\n this.popupEl.style.insetInlineStart = '';\n this.resolvedPlacement = placement as Placement;\n // Snapshot the geometry this position was computed FROM — the watchdog\n // repositions when any of it drifts. ex/ey are the intended VIEWPORT position\n // (pre containing-block conversion): if a CB later appears/vanishes at rest,\n // the popup's real rect diverges from these with no other signal.\n this.lastGeom = {\n at: anchorRect.top, al: anchorRect.left, aw: anchorRect.width, ah: anchorRect.height,\n pw: popupW, ph: popupH,\n vw: window.innerWidth, vh: window.innerHeight,\n ex: anchorRect.left + coords.left, ey: anchorRect.top + coords.top,\n };\n return true;\n }\n\n /** Prefer the slotted trigger; fall back to the tooltip host when the trigger has\n * no box. Reads the trigger rect FIRST so the common case costs one rect read —\n * this runs every watchdog frame. */\n private getAnchorRect(): DOMRect {\n if (this.triggerEl) {\n const triggerRect = this.triggerEl.getBoundingClientRect();\n if (triggerRect.width > 0 || triggerRect.height > 0) return triggerRect;\n }\n return this.el.getBoundingClientRect();\n }\n\n /**\n * `position:fixed` is viewport-relative unless an ancestor has transform/filter/perspective,\n * in which case fixed is relative to that ancestor. Convert viewport coords accordingly.\n */\n private toFixedCoords(viewportTop: number, viewportLeft: number): { top: number; left: number } {\n const containingBlock = this.getFixedContainingBlock();\n if (!containingBlock) {\n return { top: viewportTop, left: viewportLeft };\n }\n\n const cbRect = containingBlock.getBoundingClientRect();\n return {\n top: viewportTop - cbRect.top,\n left: viewportLeft - cbRect.left,\n };\n }\n\n /** Whether this element's computed style makes it a containing block for\n * position:fixed descendants. Beyond transform/filter/perspective/backdrop-filter,\n * this includes will-change of those properties (md-list-item's --shifting uses\n * will-change: transform), layout/paint containment (incl. the contain shorthands\n * and container-type, which md-app-bar uses), and content-visibility. */\n private createsFixedContainingBlock(style: CSSStyleDeclaration): boolean {\n const s = style as CSSStyleDeclaration & {\n backdropFilter?: string;\n contain?: string;\n contentVisibility?: string;\n containerType?: string;\n translate?: string;\n rotate?: string;\n scale?: string;\n };\n // NB: check truthiness too — mock-doc (spec env) returns '' for unset\n // properties, and '' !== 'none' would make every element a containing block.\n if (\n (style.transform && style.transform !== 'none') ||\n (style.filter && style.filter !== 'none') ||\n (style.perspective && style.perspective !== 'none')\n ) return true;\n // The individual transform properties create containing blocks too.\n if (\n (s.translate && s.translate !== 'none') ||\n (s.rotate && s.rotate !== 'none') ||\n (s.scale && s.scale !== 'none')\n ) return true;\n if (s.backdropFilter && s.backdropFilter !== 'none') return true;\n if (/\\b(transform|perspective|filter|translate|rotate|scale)\\b/.test(style.willChange || '')) return true;\n if (/(layout|paint|strict|content)\\b/.test(s.contain || '')) return true;\n if (s.contentVisibility === 'auto' || s.contentVisibility === 'hidden') return true;\n // Only size containment creates a containing block — `scroll-state` query\n // containers apply no containment at all.\n if (s.containerType && /\\bsize\\b/.test(s.containerType)) return true;\n return false;\n }\n\n private getFixedContainingBlock(): HTMLElement | null {\n // Start at the HOST itself — a transformed md-tooltip is the popup's containing\n // block too (the popup lives inside its shadow root).\n let node: HTMLElement | null = this.el;\n\n while (node) {\n if (this.createsFixedContainingBlock(getComputedStyle(node))) {\n return node;\n }\n\n if (node.parentElement) {\n node = node.parentElement;\n } else if (node.parentNode instanceof ShadowRoot) {\n node = node.parentNode.host as HTMLElement;\n } else {\n node = null;\n }\n }\n\n return null;\n }\n\n private physicalPlacement(placement: string): string {\n if (typeof window === 'undefined') return placement;\n const isRTL = getComputedStyle(this.el).direction === 'rtl';\n if (!isRTL) return placement;\n\n const [axis, align = ''] = [placement.split('-')[0], placement.split('-').slice(1).join('-')];\n // The placement SIDE mirrors in RTL for left/right (inline axis).\n const flippedAxis = axis === 'left' ? 'right' : axis === 'right' ? 'left' : axis;\n // The -start/-end SUFFIX is inline-axis alignment only for top/bottom placements —\n // for left/right it aligns on the BLOCK (vertical) axis, which does not mirror\n // in RTL. Flipping it there swapped top-aligned to bottom-aligned.\n const flippedAlign =\n axis === 'top' || axis === 'bottom'\n ? align === 'start' ? 'end' : align === 'end' ? 'start' : align\n : align;\n return flippedAlign ? `${flippedAxis}-${flippedAlign}` : flippedAxis;\n }\n\n private calcCoords(\n hostW: number, hostH: number,\n popupW: number, popupH: number,\n placement: string,\n ): { top: number; left: number } {\n const o = this.offset;\n\n switch (placement) {\n case 'top': return { top: -(popupH + o), left: (hostW - popupW) / 2 };\n case 'top-start': return { top: -(popupH + o), left: 0 };\n case 'top-end': return { top: -(popupH + o), left: hostW - popupW };\n case 'bottom': return { top: hostH + o, left: (hostW - popupW) / 2 };\n case 'bottom-start': return { top: hostH + o, left: 0 };\n case 'bottom-end': return { top: hostH + o, left: hostW - popupW };\n case 'left': return { top: (hostH - popupH) / 2, left: -(popupW + o) };\n case 'left-start': return { top: 0, left: -(popupW + o) };\n case 'left-end': return { top: hostH - popupH, left: -(popupW + o) };\n case 'right': return { top: (hostH - popupH) / 2, left: hostW + o };\n case 'right-start': return { top: 0, left: hostW + o };\n case 'right-end': return { top: hostH - popupH, left: hostW + o };\n default: return { top: -(popupH + o), left: (hostW - popupW) / 2 };\n }\n }\n\n /**\n * Whether the placement fits the viewport along its MAIN axis only — the axis\n * the popup is pushed along (vertical for top/bottom, horizontal for left/right).\n * Cross-axis overflow is handled by clamping in `updatePosition`, not flipping,\n * so an edge-anchored centered tooltip keeps its requested side.\n */\n private fitsMainAxis(\n hostRect: DOMRect,\n popupW: number,\n popupH: number,\n relTop: number,\n relLeft: number,\n placement: string,\n ): boolean {\n const isVertical = placement.startsWith('top') || placement.startsWith('bottom');\n if (isVertical) {\n const absTop = hostRect.top + relTop;\n return absTop >= 0 && absTop + popupH <= window.innerHeight;\n }\n const absLeft = hostRect.left + relLeft;\n return absLeft >= 0 && absLeft + popupW <= window.innerWidth;\n }\n\n private getOppositePlacement(p: string): string {\n const [axis, align] = [p.split('-')[0], p.split('-').slice(1).join('-')];\n const opp: Record<string, string> = { top: 'bottom', bottom: 'top', left: 'right', right: 'left' };\n return align ? `${opp[axis]}-${align}` : opp[axis];\n }\n\n private findBestPlacement(\n hostRect: DOMRect,\n popupW: number,\n popupH: number,\n preferred: string,\n ): string {\n const check = (p: string) => {\n const c = this.calcCoords(hostRect.width, hostRect.height, popupW, popupH, p);\n return this.fitsMainAxis(hostRect, popupW, popupH, c.top, c.left, p);\n };\n\n if (check(preferred)) return preferred;\n\n const opposite = this.getOppositePlacement(preferred);\n if (check(opposite)) return opposite;\n\n const align = preferred.split('-')[1] || '';\n const axes = ['top', 'bottom', 'right', 'left'];\n for (const axis of axes) {\n const candidate = align ? `${axis}-${align}` : axis;\n if (candidate !== preferred && candidate !== opposite && check(candidate)) {\n return candidate;\n }\n }\n\n return preferred;\n }\n\n // ─── Render ──────────────────────────────────────────────\n\n render() {\n const isRich = this.variant === 'rich';\n const hasSubhead = !!this.subhead || this.hasSlottedSubhead;\n const hasActions = this.hasSlottedActions;\n\n return (\n <Host class=\"md-tooltip-wrapper\">\n <slot></slot>\n <div\n class={{\n 'md-tooltip__popup': true,\n 'md-tooltip__popup--plain': !isRich,\n 'md-tooltip__popup--rich': isRich,\n 'md-tooltip__popup--visible': this.isVisible,\n [`md-tooltip__popup--${this.resolvedPlacement}`]: true,\n }}\n id={this.tooltipId}\n role=\"tooltip\"\n part=\"popup\"\n aria-hidden={this.isVisible ? 'false' : 'true'}\n ref={el => (this.popupEl = el)}\n onMouseEnter={this.handlePopupEnter}\n onMouseLeave={this.handlePopupLeave}\n >\n {isRich ? ([\n hasSubhead && (\n <div class=\"md-tooltip__subhead\" part=\"subhead\" key=\"subhead\">\n <slot name=\"subhead\">{this.subhead}</slot>\n </div>\n ),\n <div class=\"md-tooltip__supporting-text\" part=\"supporting-text\" key=\"text\">\n <slot name=\"content\">{this.text}</slot>\n </div>,\n <div class={{ 'md-tooltip__actions': true, 'md-tooltip__actions--empty': !hasActions }} part=\"actions\" key=\"actions\">\n <slot name=\"actions\"></slot>\n </div>,\n ]) : (\n <span class=\"md-tooltip__text\" part=\"text\">{this.text}</span>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|