@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{r as t,c as i,h as s,H as e,g as a}from"./p-WmvQpZnM.js";const n=()=>`:host{--_container-color:var(--md-tabs-container-color, var(--md-sys-color-surface, #FFFBFE));display:flex;flex-direction:column;inline-size:100%;position:relative;background-color:var(--_container-color);box-sizing:border-box}.md-tabs__container{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}.md-tabs__container::-webkit-scrollbar{display:none}::slotted(md-tab){flex:1;min-inline-size:90px}:host(.md-tabs--tw-auto) ::slotted(md-tab){flex:0 0 auto}:host(.md-tabs--tw-fixed) ::slotted(md-tab){flex:0 0 var(--_tab-width);inline-size:var(--_tab-width);min-inline-size:var(--_tab-width);max-inline-size:var(--_tab-width)}:host(.md-tabs--clip-left) .md-tabs__container{-webkit-mask-image:linear-gradient(to right, transparent 0, #000 40px);mask-image:linear-gradient(to right, transparent 0, #000 40px)}:host(.md-tabs--clip-right) .md-tabs__container{-webkit-mask-image:linear-gradient(to left, transparent 0, #000 40px);mask-image:linear-gradient(to left, transparent 0, #000 40px)}:host(.md-tabs--clip-left.md-tabs--clip-right) .md-tabs__container{-webkit-mask-image:linear-gradient(to right, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%)}@media (prefers-reduced-motion: reduce){.md-tabs__container{scroll-behavior:auto}}`;const r=class{constructor(s){t(this,s);this.mdTabChange=i(this,"mdTabChange",7);this.activeTabIndex=0;this.variant="primary";this.ariaLabelProp="";this.tabWidth="equal";this.width="";this.tabCount=0;this.tabs=[];this.listenersBound=false;this.hasLoaded=false;this.activeTabEl=null;this.syncingIndex=false;this.pendingRequestedIndex=null;this.prevTabs=[];this.glideToken=0;this.uniquePrefix=`md-tabs-${Math.random().toString(36).slice(2,7)}`;this.tabClickHandlers=new Map;this.handleWheel=t=>{const i=this.containerEl;if(!i||i.scrollWidth<=i.clientWidth)return;if(Math.abs(t.deltaX)>=Math.abs(t.deltaY)||t.deltaY===0)return;t.preventDefault();const s=t.deltaMode===1?16:t.deltaMode===2?i.clientWidth:1;i.scrollBy({left:t.deltaY*s,behavior:"instant"})};this.updateOverflow=()=>{const t=this.containerEl;if(!t||this.tabs.length===0){this.el.classList.remove("md-tabs--clip-left","md-tabs--clip-right");return}const i=t.getBoundingClientRect();const s=this.tabs[0].getBoundingClientRect();const e=this.tabs[this.tabs.length-1].getBoundingClientRect();const a=Math.min(s.left,e.left);const n=Math.max(s.right,e.right);this.el.classList.toggle("md-tabs--clip-left",a<i.left-1);this.el.classList.toggle("md-tabs--clip-right",n>i.right+1)}}onTabWidthChange(){this.updateOverflow()}get tabWidthMode(){if(this.tabWidth==="auto")return"auto";if(!this.tabWidth||this.tabWidth==="equal")return"equal";return"fixed"}componentDidLoad(){const t=this.el.shadowRoot;if(!t)return;const i=t.querySelector("slot");i?.addEventListener("slotchange",(()=>this.syncTabs()));if(typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver((()=>this.updateOverflow()))}if(typeof MutationObserver!=="undefined"){this.dirObserver=new MutationObserver((()=>this.updateOverflow()))}this.hasLoaded=true;this.attachObservers();this.syncTabs()}connectedCallback(){if(this.hasLoaded){queueMicrotask((()=>{this.attachObservers();this.syncTabs()}))}}disconnectedCallback(){this.removeTabListeners();this.resizeObserver?.disconnect();this.dirObserver?.disconnect()}attachObservers(){if(this.containerEl)this.resizeObserver?.observe(this.containerEl);if(this.dirObserver){this.dirObserver.observe(this.el,{attributes:true,attributeFilter:["dir"]});this.dirObserver.observe(document.documentElement,{attributes:true,attributeFilter:["dir"]})}}onActiveChange(t){if(this.syncingIndex)return;const i=this.sanitizeIndex(t);this.pendingRequestedIndex=i>this.tabs.length-1?i:null;const s=this.clampIndex(i);if(s!==t){this.setIndexInternal(s)}this.applyIndex(s)}onVariantChange(){this.tabs.forEach((t=>t.setAttribute("variant",this.variant)))}async selectTab(t){if(t<0||t>=this.tabs.length)return;this.activateTab(t)}handleKeyDown(t){if(this.tabs.length===0)return;const i=t.composedPath?.()[0]??this.deepActiveElement();const s=i?.closest?.("md-tab")??i;const e=this.tabs.indexOf(s);if(e===-1)return;const a=this.isRtl()?-1:1;let n=null;switch(t.key){case"ArrowRight":t.preventDefault();n=this.findNextEnabledWrapping(e,a);break;case"ArrowLeft":t.preventDefault();n=this.findNextEnabledWrapping(e,a*-1);break;case"Home":t.preventDefault();n=this.findFirstEnabled();break;case"End":t.preventDefault();n=this.findLastEnabled();break}if(n!==null&&n!==e){this.tabs[n].focus();this.activateTab(n)}}handleTabDisabledChange(){this.updateRovingTabindex()}deepActiveElement(){let t=document.activeElement;while(t?.shadowRoot?.activeElement){t=t.shadowRoot.activeElement}return t}isRtl(){return typeof getComputedStyle!=="undefined"&&getComputedStyle(this.el).direction==="rtl"}prefersReducedMotion(){return typeof matchMedia!=="undefined"&&matchMedia("(prefers-reduced-motion: reduce)").matches}findNextEnabledWrapping(t,i){const s=this.tabs.length;if(s===0)return null;let e=t;for(let t=0;t<s;t++){e=(e+i+s)%s;if(!this.isDisabledTab(this.tabs[e]))return e}return null}findFirstEnabled(){for(let t=0;t<this.tabs.length;t++){if(!this.isDisabledTab(this.tabs[t]))return t}return null}findLastEnabled(){for(let t=this.tabs.length-1;t>=0;t--){if(!this.isDisabledTab(this.tabs[t]))return t}return null}syncTabs(){this.removeTabListeners();const t=this.el.shadowRoot?.querySelector("slot");if(!t)return;this.tabs=t.assignedElements({flatten:true}).filter((t=>t.tagName==="MD-TAB"));this.tabCount=this.tabs.length;this.tabs.forEach(((t,i)=>{t.setAttribute("variant",this.variant);t.addEventListener("mdTabClick",this.createTabClickHandler(i));if(!t.id){t.id=`${this.uniquePrefix}-tab-${i}`}}));this.listenersBound=true;if(this.resizeObserver){this.resizeObserver.disconnect();if(this.containerEl)this.resizeObserver.observe(this.containerEl);this.tabs.forEach((t=>this.resizeObserver.observe(t)))}this.reconcileActiveTab();this.updateOverflow()}reconcileActiveTab(){this.prevTabs.forEach((t=>{if(!this.tabs.includes(t)){t.removeAttribute("active");t.removeAttribute("tabindex")}}));this.prevTabs=this.tabs;if(this.tabs.length===0){this.activeTabEl=null;return}if(this.pendingRequestedIndex!==null){const t=this.pendingRequestedIndex;this.pendingRequestedIndex=null;if(t<=this.tabs.length-1){const i=this.clampIndex(t);this.setIndexInternal(i);this.applyIndex(i);return}}if(this.findFirstEnabled()===null){const t=this.activeTabEl!==null;const i=this.activeTabIndex;this.tabs.forEach((t=>t.removeAttribute("active")));this.activeTabEl=null;this.updateRovingTabindex();if(t)this.mdTabChange.emit({index:-1,previousIndex:i});return}const t=this.activeTabEl;let i;if(t&&this.tabs.includes(t)){i=this.tabs.indexOf(t)}else{i=this.clampIndex(this.activeTabIndex)}const s=this.activeTabIndex;this.setIndexInternal(i);this.applyIndex(i,{scroll:false});if(t!==null&&this.activeTabEl!==t){this.mdTabChange.emit({index:i,previousIndex:s})}}sanitizeIndex(t){const i=Math.round(Number(t));return Number.isFinite(i)?i:0}isDisabledTab(t){return t.disabled===true||t.hasAttribute("disabled")}clampIndex(t){const i=this.tabs.length;if(i===0)return 0;let s=Math.max(0,Math.min(this.sanitizeIndex(t),i-1));if(this.tabs[s]&&this.isDisabledTab(this.tabs[s])){const t=this.findNextEnabledWrapping(s,1)??this.findFirstEnabled();if(t!==null)s=t}return s}setIndexInternal(t){if(this.activeTabIndex===t)return;this.syncingIndex=true;this.activeTabIndex=t;this.syncingIndex=false}removeTabListeners(){if(!this.listenersBound)return;this.tabs.forEach(((t,i)=>{t.removeEventListener("mdTabClick",this.createTabClickHandler(i))}));this.listenersBound=false}createTabClickHandler(t){if(!this.tabClickHandlers.has(t)){this.tabClickHandlers.set(t,(()=>this.activateTab(t)))}return this.tabClickHandlers.get(t)}activateTab(t){this.pendingRequestedIndex=null;if(t===this.activeTabIndex&&this.tabs[t]?.hasAttribute("active"))return;const i=this.activeTabIndex;this.setIndexInternal(t);this.applyIndex(t);this.mdTabChange.emit({index:t,previousIndex:i})}applyIndex(t,i={}){const s=this.activeTabEl;const e=this.tabs[t]??null;this.applyActiveState(t);this.updateRovingTabindex();this.activeTabEl=e;if(i.scroll!==false)this.scrollTabIntoView(t);if(s&&e&&s!==e)this.glideIndicator(s,e)}applyActiveState(t){this.tabs.forEach(((i,s)=>{if(s===t){i.setAttribute("active","")}else{i.removeAttribute("active")}}))}updateRovingTabindex(){let t=this.activeTabIndex;if(this.tabs[t]&&this.isDisabledTab(this.tabs[t])){t=this.findFirstEnabled()??t}this.tabs.forEach(((i,s)=>{if(this.isDisabledTab(i)){i.setAttribute("tabindex","-1")}else{i.setAttribute("tabindex",s===t?"0":"-1")}}))}glideIndicator(t,i){if(this.prefersReducedMotion())return;const s=t=>(t.shadowRoot?.querySelector(".md-tab__indicator")??t).getBoundingClientRect();const e=s(t);const a=s(i);if(!e.width||!a.width)return;const n=e.left+e.width/2-(a.left+a.width/2);const r=e.width/a.width;if(typeof requestAnimationFrame==="undefined")return;const h=++this.glideToken;t.style.removeProperty("--md-tab-glide-x");t.style.removeProperty("--md-tab-glide-scale");t.style.removeProperty("--md-tab-glide-duration");i.style.setProperty("--md-tab-glide-duration","0s");i.style.setProperty("--md-tab-glide-x",`${n}px`);i.style.setProperty("--md-tab-glide-scale",`${r}`);requestAnimationFrame((()=>requestAnimationFrame((()=>{if(h!==this.glideToken)return;i.style.removeProperty("--md-tab-glide-duration");i.style.setProperty("--md-tab-glide-x","0px");i.style.setProperty("--md-tab-glide-scale","1");setTimeout((()=>{if(h!==this.glideToken)return;i.style.removeProperty("--md-tab-glide-x");i.style.removeProperty("--md-tab-glide-scale")}),500)}))))}scrollTabIntoView(t){const i=this.tabs[t];if(!i||!this.containerEl)return;i.scrollIntoView?.({behavior:this.prefersReducedMotion()?"auto":"smooth",block:"nearest",inline:"nearest"})}render(){return s(e,{key:"c103ec49e743ca885a22f303c46f13fc4ee650f5",class:{"md-tabs":true,[`md-tabs--${this.variant}`]:true,"md-tabs--tw-auto":this.tabWidthMode==="auto","md-tabs--tw-fixed":this.tabWidthMode==="fixed"},style:{...this.tabWidthMode==="fixed"?{"--_tab-width":this.tabWidth}:{},...this.width?{"inline-size":this.width}:{}},role:"tablist","aria-label":this.ariaLabelProp||"tabs","aria-orientation":"horizontal"},s("div",{key:"21bec4d569d80650d16c8c4a8ee55db98880ac98",class:"md-tabs__container",part:"container",ref:t=>this.containerEl=t,onWheel:this.handleWheel,onScroll:this.updateOverflow},s("slot",{key:"83031858998cab19d0fe544808aced96a07f5bab"})))}get el(){return a(this)}static get watchers(){return{tabWidth:[{onTabWidthChange:0}],activeTabIndex:[{onActiveChange:0}],variant:[{onVariantChange:0}]}}};r.style=n();export{r as md_tabs};
|
|
2
|
+
//# sourceMappingURL=p-a3623653.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mdTabsCss","MdTabs","constructor","hostRef","this","activeTabIndex","variant","ariaLabelProp","tabWidth","width","tabCount","tabs","listenersBound","hasLoaded","activeTabEl","syncingIndex","pendingRequestedIndex","prevTabs","glideToken","uniquePrefix","Math","random","toString","slice","tabClickHandlers","Map","handleWheel","e","c","containerEl","scrollWidth","clientWidth","abs","deltaX","deltaY","preventDefault","factor","deltaMode","scrollBy","left","behavior","updateOverflow","length","el","classList","remove","box","getBoundingClientRect","first","last","min","right","max","toggle","onTabWidthChange","tabWidthMode","componentDidLoad","shadow","shadowRoot","slot","querySelector","addEventListener","syncTabs","ResizeObserver","resizeObserver","MutationObserver","dirObserver","attachObservers","connectedCallback","queueMicrotask","disconnectedCallback","removeTabListeners","disconnect","observe","attributes","attributeFilter","document","documentElement","onActiveChange","newIndex","sanitized","sanitizeIndex","clamped","clampIndex","setIndexInternal","applyIndex","onVariantChange","forEach","tab","setAttribute","selectTab","index","activateTab","handleKeyDown","origin","composedPath","deepActiveElement","originTab","closest","currentIndex","indexOf","dir","isRtl","targetIndex","key","findNextEnabledWrapping","findFirstEnabled","findLastEnabled","focus","handleTabDisabledChange","updateRovingTabindex","active","activeElement","getComputedStyle","direction","prefersReducedMotion","matchMedia","matches","from","len","idx","i","isDisabledTab","assignedElements","flatten","filter","tagName","createTabClickHandler","id","t","reconcileActiveTab","includes","removeAttribute","pending","hadSelection","previousIndex","mdTabChange","emit","prevEl","scroll","num","round","Number","isFinite","disabled","hasAttribute","enabled","removeEventListener","has","set","get","opts","nextEl","applyActiveState","scrollTabIntoView","glideIndicator","activeIndex","holder","prevTab","nextTab","measure","p","n","dx","sx","requestAnimationFrame","token","style","removeProperty","setProperty","setTimeout","scrollIntoView","block","inline","render","h","Host","class","role","part","ref","onWheel","onScroll"],"sources":["src/components/md-tabs/md-tabs.css?tag=md-tabs&encapsulation=shadow","src/components/md-tabs/md-tabs.tsx"],"sourcesContent":["/* ==========================================================\n md-tabs — Material Design 3 Tabs Container\n Spec: https://m3.material.io/components/tabs/specs\n\n PUBLIC CSS CUSTOM PROPERTIES (override per-instance):\n --md-tabs-container-color Container background\n --md-tabs-divider-color Divider color for every child tab's\n bottom line (md-tab inherits it into its\n own divider default chain)\n\n CSS PARTS:\n container Scrollable tab container\n\n SLOTS:\n (default) md-tab elements\n ========================================================== */\n\n/* ==========================================================\n 1. HOST\n ========================================================== */\n\n:host {\n --_container-color: var(--md-tabs-container-color, var(--md-sys-color-surface, #FFFBFE));\n\n display: flex;\n flex-direction: column;\n inline-size: 100%;\n position: relative;\n background-color: var(--_container-color);\n box-sizing: border-box;\n}\n\n/* ==========================================================\n 2. CONTAINER — horizontal scroll, hide scrollbar\n ========================================================== */\n\n.md-tabs__container {\n display: flex;\n overflow-x: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n scroll-behavior: smooth;\n}\n\n.md-tabs__container::-webkit-scrollbar {\n display: none;\n}\n\n/* Tabs fill container equally (tab-width=\"equal\", the default) */\n::slotted(md-tab) {\n flex: 1;\n min-inline-size: 90px;\n}\n\n/* tab-width=\"auto\" — content-sized tabs, strip scrolls */\n:host(.md-tabs--tw-auto) ::slotted(md-tab) {\n flex: 0 0 auto;\n}\n\n/* tab-width=\"<length>\" — content-immune fixed tracks (dynamic badges/labels\n can't reshuffle the strip); long labels ellipsize inside md-tab */\n:host(.md-tabs--tw-fixed) ::slotted(md-tab) {\n flex: 0 0 var(--_tab-width);\n inline-size: var(--_tab-width);\n min-inline-size: var(--_tab-width);\n max-inline-size: var(--_tab-width);\n}\n\n/* ==========================================================\n 3. OVERFLOW AFFORDANCE — edge fades signal clipped tabs\n md-tabs toggles clip-left/right from tab GEOMETRY (physical rects,\n RTL-correct); the mask fades the clipped edge. Wheel input maps to\n horizontal scroll in the component.\n ========================================================== */\n\n:host(.md-tabs--clip-left) .md-tabs__container {\n -webkit-mask-image: linear-gradient(to right, transparent 0, #000 40px);\n mask-image: linear-gradient(to right, transparent 0, #000 40px);\n}\n\n:host(.md-tabs--clip-right) .md-tabs__container {\n -webkit-mask-image: linear-gradient(to left, transparent 0, #000 40px);\n mask-image: linear-gradient(to left, transparent 0, #000 40px);\n}\n\n:host(.md-tabs--clip-left.md-tabs--clip-right) .md-tabs__container {\n -webkit-mask-image: linear-gradient(to right, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);\n mask-image: linear-gradient(to right, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);\n}\n\n/* ==========================================================\n 4. REDUCED MOTION\n ========================================================== */\n\n@media (prefers-reduced-motion: reduce) {\n .md-tabs__container {\n scroll-behavior: auto;\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Element, Watch, State, Method, Listen } from '@stencil/core';\n\n/**\n * @slot - Tab items (`md-tab` elements)\n *\n * @part container - Scrollable tab container\n */\n@Component({\n tag: 'md-tabs',\n styleUrl: 'md-tabs.css',\n shadow: true,\n})\nexport class MdTabs {\n @Element() el!: HTMLElement;\n\n /** Index of the currently active tab */\n @Prop({ mutable: true }) activeTabIndex: number = 0;\n\n /** Visual variant applied to all child tabs */\n @Prop({ reflect: true }) variant: 'primary' | 'secondary' = 'primary';\n\n /** Accessible label for the tablist */\n @Prop({ attribute: 'aria-label' }) ariaLabelProp: string = '';\n\n /**\n * How tabs size along the strip. All modes are layout-stable under\n * dynamic content (labels/badges can change without reshuffling the\n * strip); long labels ellipsize instead of forcing a tab wider.\n * - `equal` (default) — tabs share the parent's FULL width equally;\n * tracks change only when the PARENT resizes.\n * - `auto` — each tab takes its content width (the strip scrolls), so\n * tracks follow content by design.\n * - any CSS length (e.g. `\"140px\"`, `\"10rem\"`) — every tab gets exactly\n * that width regardless of parent or content.\n */\n @Prop({ attribute: 'tab-width' }) tabWidth: string = 'equal';\n\n /**\n * Explicit width for the WHOLE strip (any CSS size: `\"480px\"`, `\"40rem\"`,\n * `\"100%\"`). By default the strip is `100%` of its parent — in\n * shrink-to-fit layouts (inline-block cards, auto grid columns, flex\n * items) that parent's width follows the ACTIVE TAB PANEL, so switching\n * to a tab with tiny content collapses the whole tablist. Set `width` to\n * anchor the strip regardless of what the panels do.\n */\n @Prop() width: string = '';\n\n @Watch('tabWidth')\n onTabWidthChange() {\n this.updateOverflow();\n }\n\n private get tabWidthMode(): 'equal' | 'auto' | 'fixed' {\n if (this.tabWidth === 'auto') return 'auto';\n if (!this.tabWidth || this.tabWidth === 'equal') return 'equal';\n return 'fixed';\n }\n\n /** Emits when the active tab changes */\n @Event() mdTabChange: EventEmitter<{ index: number; previousIndex: number }>;\n\n @State() private tabCount = 0;\n\n private tabs: HTMLElement[] = [];\n private containerEl?: HTMLElement;\n private listenersBound = false;\n private hasLoaded = false;\n /** The active tab ELEMENT — selection survives reorders/removals by\n * identity, not position (removing a preceding tab must not silently\n * select a different tab). */\n private activeTabEl: HTMLElement | null = null;\n /** Guards the activeTabIndex watch while we reconcile internally. */\n private syncingIndex = false;\n /** Consumer-requested index awaiting a tab that hasn't slotted in yet. */\n private pendingRequestedIndex: number | null = null;\n private prevTabs: HTMLElement[] = [];\n private glideToken = 0;\n private resizeObserver?: ResizeObserver;\n private dirObserver?: MutationObserver;\n private uniquePrefix = `md-tabs-${Math.random().toString(36).slice(2, 7)}`;\n\n // ─── Lifecycle ───────────────────────────────────────────\n\n componentDidLoad() {\n const shadow = this.el.shadowRoot;\n if (!shadow) return;\n\n const slot = shadow.querySelector('slot') as HTMLSlotElement | null;\n slot?.addEventListener('slotchange', () => this.syncTabs());\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => this.updateOverflow());\n }\n if (typeof MutationObserver !== 'undefined') {\n // A runtime dir flip moves the clipped side without firing scroll or\n // resize — the fades went stale on the wrong edge.\n this.dirObserver = new MutationObserver(() => this.updateOverflow());\n }\n this.hasLoaded = true;\n this.attachObservers();\n this.syncTabs();\n }\n\n connectedCallback() {\n // Reparenting disconnects (tearing down tab listeners) and reconnects\n // WITHOUT a slotchange — the slot's assignment inside our own shadow\n // never changed. Rebind, or the component is permanently dead after\n // an appendChild elsewhere.\n if (this.hasLoaded) {\n queueMicrotask(() => {\n this.attachObservers(); // disconnect() wiped subscriptions — re-observe\n this.syncTabs();\n });\n }\n }\n\n disconnectedCallback() {\n this.removeTabListeners();\n this.resizeObserver?.disconnect();\n this.dirObserver?.disconnect();\n }\n\n private attachObservers() {\n if (this.containerEl) this.resizeObserver?.observe(this.containerEl);\n if (this.dirObserver) {\n this.dirObserver.observe(this.el, { attributes: true, attributeFilter: ['dir'] });\n this.dirObserver.observe(document.documentElement, { attributes: true, attributeFilter: ['dir'] });\n }\n }\n\n // ─── Watchers ────────────────────────────────────────────\n\n @Watch('activeTabIndex')\n onActiveChange(newIndex: number) {\n if (this.syncingIndex) return;\n // The prop is the primary framework-wrapper path — it must be FULLY\n // reactive: clamp, then active state + roving tabindex + scroll, exactly\n // like the click/keyboard path (previously only the visuals updated,\n // leaving focus on the old tab and the new one offscreen).\n const sanitized = this.sanitizeIndex(newIndex);\n // \"append a tab and select it\" sets an index the (stale, pre-slotchange)\n // list doesn't have yet — remember the INTENT and honor it when the tab\n // registers, instead of permanently rewriting the consumer's value.\n this.pendingRequestedIndex = sanitized > this.tabs.length - 1 ? sanitized : null;\n const clamped = this.clampIndex(sanitized);\n if (clamped !== newIndex) {\n this.setIndexInternal(clamped); // guarded — the watch will NOT re-fire\n }\n this.applyIndex(clamped);\n }\n\n @Watch('variant')\n onVariantChange() {\n this.tabs.forEach(tab => tab.setAttribute('variant', this.variant));\n }\n\n // ─── Public Methods ──────────────────────────────────────\n\n /** Programmatically select a tab by index */\n @Method()\n async selectTab(index: number) {\n if (index < 0 || index >= this.tabs.length) return;\n this.activateTab(index);\n }\n\n // ─── Keyboard Navigation ─────────────────────────────────\n\n @Listen('keydown')\n handleKeyDown(e: KeyboardEvent) {\n if (this.tabs.length === 0) return;\n\n // composedPath()[0] is the true origin even through CLOSED shadow roots\n // (the deep activeElement walk stops at a closed host — arrows were dead\n // there). Fallback to the walk for synthetic events without a path.\n const origin = (e.composedPath?.()[0] as HTMLElement | undefined) ?? (this.deepActiveElement() as HTMLElement);\n const originTab = origin?.closest?.('md-tab') ?? origin;\n const currentIndex = this.tabs.indexOf(originTab as HTMLElement);\n if (currentIndex === -1) return;\n\n // Arrow keys follow VISUAL direction: in RTL, ArrowRight moves toward\n // lower indexes (same contract as md-navigation-bar).\n const dir: 1 | -1 = this.isRtl() ? -1 : 1;\n let targetIndex: number | null = null;\n\n switch (e.key) {\n case 'ArrowRight':\n e.preventDefault();\n targetIndex = this.findNextEnabledWrapping(currentIndex, dir);\n break;\n case 'ArrowLeft':\n e.preventDefault();\n targetIndex = this.findNextEnabledWrapping(currentIndex, (dir * -1) as 1 | -1);\n break;\n case 'Home':\n e.preventDefault();\n targetIndex = this.findFirstEnabled();\n break;\n case 'End':\n e.preventDefault();\n targetIndex = this.findLastEnabled();\n break;\n }\n\n if (targetIndex !== null && targetIndex !== currentIndex) {\n this.tabs[targetIndex].focus();\n this.activateTab(targetIndex);\n }\n }\n\n /** A disabled state change re-roves so exactly one tab stays focusable. */\n @Listen('mdTabDisabledChange')\n handleTabDisabledChange() {\n this.updateRovingTabindex();\n }\n\n private deepActiveElement(): Element | null {\n let active: Element | null = document.activeElement;\n while (active?.shadowRoot?.activeElement) {\n active = active.shadowRoot.activeElement;\n }\n return active;\n }\n\n private isRtl(): boolean {\n return typeof getComputedStyle !== 'undefined' && getComputedStyle(this.el).direction === 'rtl';\n }\n\n private prefersReducedMotion(): boolean {\n return typeof matchMedia !== 'undefined' && matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n /** Wraps around: last→first and first→last, skipping disabled tabs. */\n private findNextEnabledWrapping(from: number, direction: 1 | -1): number | null {\n const len = this.tabs.length;\n if (len === 0) return null;\n let idx = from;\n for (let i = 0; i < len; i++) {\n idx = (idx + direction + len) % len;\n if (!this.isDisabledTab(this.tabs[idx])) return idx;\n }\n return null;\n }\n\n private findFirstEnabled(): number | null {\n for (let i = 0; i < this.tabs.length; i++) {\n if (!this.isDisabledTab(this.tabs[i])) return i;\n }\n return null;\n }\n\n private findLastEnabled(): number | null {\n for (let i = this.tabs.length - 1; i >= 0; i--) {\n if (!this.isDisabledTab(this.tabs[i])) return i;\n }\n return null;\n }\n\n // ─── Tab Sync ────────────────────────────────────────────\n\n private syncTabs() {\n this.removeTabListeners();\n\n const slot = this.el.shadowRoot?.querySelector('slot') as HTMLSlotElement | null;\n if (!slot) return;\n\n // flatten:true — tabs forwarded through a wrapper's <slot> must be\n // managed too (without it, assignedElements() returns the nested SLOT\n // element and zero tabs register).\n this.tabs = slot.assignedElements({ flatten: true }).filter(\n el => el.tagName === 'MD-TAB',\n ) as HTMLElement[];\n\n this.tabCount = this.tabs.length;\n\n this.tabs.forEach((tab, index) => {\n tab.setAttribute('variant', this.variant);\n tab.addEventListener('mdTabClick', this.createTabClickHandler(index));\n\n if (!tab.id) {\n tab.id = `${this.uniquePrefix}-tab-${index}`;\n }\n });\n\n this.listenersBound = true;\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n if (this.containerEl) this.resizeObserver.observe(this.containerEl);\n // A tab GROWING (label/min-width change) overflows the strip without\n // resizing the container box — observe the tabs themselves.\n this.tabs.forEach((t) => this.resizeObserver!.observe(t));\n }\n this.reconcileActiveTab();\n this.updateOverflow();\n }\n\n /**\n * Selection integrity across mutations: follow the active ELEMENT if it\n * still exists; if it was removed (or the index is out of range), clamp to\n * the nearest valid enabled tab and tell consumers. Never leave the\n * tablist without a focusable tab.\n */\n private reconcileActiveTab() {\n // Tabs that LEFT the managed set must not keep selected-looking state\n // (a moved-out active tab kept active + aria-selected + tabindex=0).\n this.prevTabs.forEach((t) => {\n if (!this.tabs.includes(t)) {\n t.removeAttribute('active');\n t.removeAttribute('tabindex'); // its own reconnect stamps standalone\n }\n });\n this.prevTabs = this.tabs;\n\n if (this.tabs.length === 0) {\n this.activeTabEl = null;\n return;\n }\n\n // A consumer index that outran the slotted list (\"append + select\")\n // wins the moment the tab registers — consumer-initiated, so no emit.\n if (this.pendingRequestedIndex !== null) {\n const pending = this.pendingRequestedIndex;\n this.pendingRequestedIndex = null; // single-shot: first reconcile only\n if (pending <= this.tabs.length - 1) {\n const idx = this.clampIndex(pending);\n this.setIndexInternal(idx);\n this.applyIndex(idx);\n return;\n }\n }\n\n // No enabled tab at all: nothing may claim aria-selected or the tab\n // stop (previously a DISABLED tab ended active with zero focusable tabs).\n if (this.findFirstEnabled() === null) {\n const hadSelection = this.activeTabEl !== null;\n const previousIndex = this.activeTabIndex;\n this.tabs.forEach((t) => t.removeAttribute('active'));\n this.activeTabEl = null;\n this.updateRovingTabindex();\n if (hadSelection) this.mdTabChange.emit({ index: -1, previousIndex });\n return;\n }\n\n const prevEl = this.activeTabEl;\n let index: number;\n if (prevEl && this.tabs.includes(prevEl)) {\n index = this.tabs.indexOf(prevEl);\n } else {\n index = this.clampIndex(this.activeTabIndex);\n }\n const previousIndex = this.activeTabIndex;\n this.setIndexInternal(index);\n this.applyIndex(index, { scroll: false });\n // Emit on ELEMENT-identity change, not index change: removing a mid-list\n // active tab keeps the same NUMBER while selecting a different tab —\n // the old numeric guard made that emit dead code.\n if (prevEl !== null && this.activeTabEl !== prevEl) {\n this.mdTabChange.emit({ index, previousIndex });\n }\n }\n\n /** NaN / floats / attribute garbage must never wipe the tablist. */\n private sanitizeIndex(index: unknown): number {\n const num = Math.round(Number(index));\n return Number.isFinite(num) ? num : 0;\n }\n\n /** Property writes reflect to the attribute ASYNC — read the prop first\n * so a just-disabled tab is never left holding the tab stop. */\n private isDisabledTab(tab: HTMLElement): boolean {\n return (tab as HTMLElement & { disabled?: boolean }).disabled === true || tab.hasAttribute('disabled');\n }\n\n /** Clamp into range, preferring an enabled tab (falls back to nearest). */\n private clampIndex(index: number): number {\n const len = this.tabs.length;\n if (len === 0) return 0;\n let idx = Math.max(0, Math.min(this.sanitizeIndex(index), len - 1));\n if (this.tabs[idx] && this.isDisabledTab(this.tabs[idx])) {\n const enabled = this.findNextEnabledWrapping(idx, 1) ?? this.findFirstEnabled();\n if (enabled !== null) idx = enabled;\n }\n return idx;\n }\n\n private setIndexInternal(index: number) {\n if (this.activeTabIndex === index) return;\n this.syncingIndex = true;\n this.activeTabIndex = index;\n this.syncingIndex = false;\n }\n\n private removeTabListeners() {\n if (!this.listenersBound) return;\n this.tabs.forEach((tab, index) => {\n tab.removeEventListener('mdTabClick', this.createTabClickHandler(index));\n });\n this.listenersBound = false;\n }\n\n private tabClickHandlers = new Map<number, () => void>();\n\n private createTabClickHandler(index: number): () => void {\n if (!this.tabClickHandlers.has(index)) {\n this.tabClickHandlers.set(index, () => this.activateTab(index));\n }\n return this.tabClickHandlers.get(index)!;\n }\n\n private activateTab(index: number) {\n this.pendingRequestedIndex = null;\n if (index === this.activeTabIndex && this.tabs[index]?.hasAttribute('active')) return;\n const previousIndex = this.activeTabIndex;\n this.setIndexInternal(index);\n this.applyIndex(index);\n this.mdTabChange.emit({ index, previousIndex });\n }\n\n /** SINGLE application path — active state + roving tabindex + scroll (+\n * indicator glide). Used by the watch, activation and reconciliation so\n * no caller can half-update again. */\n private applyIndex(index: number, opts: { scroll?: boolean } = {}) {\n const prevEl = this.activeTabEl;\n const nextEl = this.tabs[index] ?? null;\n this.applyActiveState(index);\n this.updateRovingTabindex();\n this.activeTabEl = nextEl;\n if (opts.scroll !== false) this.scrollTabIntoView(index);\n if (prevEl && nextEl && prevEl !== nextEl) this.glideIndicator(prevEl, nextEl);\n }\n\n private applyActiveState(activeIndex: number) {\n this.tabs.forEach((tab, i) => {\n if (i === activeIndex) {\n tab.setAttribute('active', '');\n } else {\n tab.removeAttribute('active');\n }\n });\n }\n\n /** md-tabs is the ONLY tabindex writer (md-tab renders none inside a\n * tablist) and always leaves exactly one focusable tab — the active one,\n * or the first enabled tab when the active one is disabled/invalid. */\n private updateRovingTabindex() {\n let holder = this.activeTabIndex;\n if (this.tabs[holder] && this.isDisabledTab(this.tabs[holder])) {\n holder = this.findFirstEnabled() ?? holder;\n }\n this.tabs.forEach((tab, i) => {\n if (this.isDisabledTab(tab)) {\n tab.setAttribute('tabindex', '-1');\n } else {\n tab.setAttribute('tabindex', i === holder ? '0' : '-1');\n }\n });\n }\n\n /**\n * MD3 indicator glide: FLIP the incoming tab's indicator from the\n * outgoing one's position/width to its own. The indicators live in each\n * tab's shadow root, so the transform is driven via inherited custom\n * properties the indicator CSS consumes.\n */\n private glideIndicator(prevTab: HTMLElement, nextTab: HTMLElement) {\n if (this.prefersReducedMotion()) return;\n const measure = (tab: HTMLElement) =>\n (tab.shadowRoot?.querySelector('.md-tab__indicator') ?? tab).getBoundingClientRect();\n const p = measure(prevTab);\n const n = measure(nextTab);\n if (!p.width || !n.width) return;\n const dx = p.left + p.width / 2 - (n.left + n.width / 2);\n const sx = p.width / n.width;\n if (typeof requestAnimationFrame === 'undefined') return;\n // Releasing synchronously never glided: the `active` class lands on the\n // NEXT render, after the vars were already back at identity — the\n // indicator just popped in place. Hold the translated start frame\n // through the render (duration 0), release on a double rAF so the\n // transition carries it home. Token guards rapid tab-hopping.\n const token = ++this.glideToken;\n prevTab.style.removeProperty('--md-tab-glide-x');\n prevTab.style.removeProperty('--md-tab-glide-scale');\n prevTab.style.removeProperty('--md-tab-glide-duration');\n nextTab.style.setProperty('--md-tab-glide-duration', '0s');\n nextTab.style.setProperty('--md-tab-glide-x', `${dx}px`);\n nextTab.style.setProperty('--md-tab-glide-scale', `${sx}`);\n requestAnimationFrame(() => requestAnimationFrame(() => {\n if (token !== this.glideToken) return;\n nextTab.style.removeProperty('--md-tab-glide-duration');\n nextTab.style.setProperty('--md-tab-glide-x', '0px');\n nextTab.style.setProperty('--md-tab-glide-scale', '1');\n setTimeout(() => {\n if (token !== this.glideToken) return;\n nextTab.style.removeProperty('--md-tab-glide-x');\n nextTab.style.removeProperty('--md-tab-glide-scale');\n }, 500);\n }));\n }\n\n private scrollTabIntoView(index: number) {\n const tab = this.tabs[index];\n if (!tab || !this.containerEl) return;\n tab.scrollIntoView?.({\n behavior: this.prefersReducedMotion() ? 'auto' : 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n\n // ─── Overflow affordance ─────────────────────────────────\n\n /** Vertical wheel scrolls the tab strip horizontally when it overflows —\n * otherwise clipped tabs are unreachable for mouse-only users (the\n * scrollbar is hidden by design). */\n private handleWheel = (e: WheelEvent) => {\n const c = this.containerEl;\n if (!c || c.scrollWidth <= c.clientWidth) return;\n // Horizontal gestures (trackpad swipes) scroll the strip NATIVELY —\n // intercepting them replayed the motion through the tarpit below.\n if (Math.abs(e.deltaX) >= Math.abs(e.deltaY) || e.deltaY === 0) return;\n e.preventDefault();\n // deltaMode: 0=pixels, 1=lines (Firefox wheel), 2=pages\n const factor = e.deltaMode === 1 ? 16 : e.deltaMode === 2 ? c.clientWidth : 1;\n // MUST bypass the container's scroll-behavior:smooth — incremental\n // scrollLeft writes read the mid-animation position, so a wheel burst\n // compounded off barely-moved values and crawled (10x120px netted\n // 155px of 320). 'instant' applies each tick fully.\n c.scrollBy({ left: e.deltaY * factor, behavior: 'instant' as ScrollBehavior });\n };\n\n /** Edge fades signal clipped tabs. Detection uses tab GEOMETRY (physical\n * rects), so it is RTL-correct by construction. */\n private updateOverflow = () => {\n const c = this.containerEl;\n if (!c || this.tabs.length === 0) {\n this.el.classList.remove('md-tabs--clip-left', 'md-tabs--clip-right');\n return;\n }\n const box = c.getBoundingClientRect();\n const first = this.tabs[0].getBoundingClientRect();\n const last = this.tabs[this.tabs.length - 1].getBoundingClientRect();\n const left = Math.min(first.left, last.left);\n const right = Math.max(first.right, last.right);\n this.el.classList.toggle('md-tabs--clip-left', left < box.left - 1);\n this.el.classList.toggle('md-tabs--clip-right', right > box.right + 1);\n };\n\n // ─── Render ──────────────────────────────────────────────\n\n render() {\n return (\n <Host\n class={{\n 'md-tabs': true,\n [`md-tabs--${this.variant}`]: true,\n 'md-tabs--tw-auto': this.tabWidthMode === 'auto',\n 'md-tabs--tw-fixed': this.tabWidthMode === 'fixed',\n }}\n style={{\n ...(this.tabWidthMode === 'fixed' ? { '--_tab-width': this.tabWidth } : {}),\n ...(this.width ? { 'inline-size': this.width } : {}),\n }}\n role=\"tablist\"\n aria-label={this.ariaLabelProp || 'tabs'}\n aria-orientation=\"horizontal\"\n >\n <div\n class=\"md-tabs__container\"\n part=\"container\"\n ref={el => (this.containerEl = el)}\n onWheel={this.handleWheel}\n onScroll={this.updateOverflow}\n >\n <slot />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["mdTabsCss","MdTabs","constructor","hostRef","this","activeTabIndex","variant","ariaLabelProp","tabWidth","width","tabCount","tabs","listenersBound","hasLoaded","activeTabEl","syncingIndex","pendingRequestedIndex","prevTabs","glideToken","uniquePrefix","Math","random","toString","slice","tabClickHandlers","Map","handleWheel","e","c","containerEl","scrollWidth","clientWidth","abs","deltaX","deltaY","preventDefault","factor","deltaMode","scrollBy","left","behavior","updateOverflow","length","el","classList","remove","box","getBoundingClientRect","first","last","min","right","max","toggle","onTabWidthChange","tabWidthMode","componentDidLoad","shadow","shadowRoot","slot","querySelector","addEventListener","syncTabs","ResizeObserver","resizeObserver","MutationObserver","dirObserver","attachObservers","connectedCallback","queueMicrotask","disconnectedCallback","removeTabListeners","disconnect","observe","attributes","attributeFilter","document","documentElement","onActiveChange","newIndex","sanitized","sanitizeIndex","clamped","clampIndex","setIndexInternal","applyIndex","onVariantChange","forEach","tab","setAttribute","selectTab","index","activateTab","handleKeyDown","origin","composedPath","deepActiveElement","originTab","closest","currentIndex","indexOf","dir","isRtl","targetIndex","key","findNextEnabledWrapping","findFirstEnabled","findLastEnabled","focus","handleTabDisabledChange","updateRovingTabindex","active","activeElement","getComputedStyle","direction","prefersReducedMotion","matchMedia","matches","from","len","idx","i","isDisabledTab","assignedElements","flatten","filter","tagName","createTabClickHandler","id","t","reconcileActiveTab","includes","removeAttribute","pending","hadSelection","previousIndex","mdTabChange","emit","prevEl","scroll","num","round","Number","isFinite","disabled","hasAttribute","enabled","removeEventListener","has","set","get","opts","nextEl","applyActiveState","scrollTabIntoView","glideIndicator","activeIndex","holder","prevTab","nextTab","measure","p","n","dx","sx","requestAnimationFrame","token","style","removeProperty","setProperty","setTimeout","scrollIntoView","block","inline","render","h","Host","class","role","part","ref","onWheel","onScroll"],"sources":["src/components/md-tabs/md-tabs.css?tag=md-tabs&encapsulation=shadow","src/components/md-tabs/md-tabs.tsx"],"sourcesContent":["/* ==========================================================\n md-tabs — Material Design 3 Tabs Container\n Spec: https://m3.material.io/components/tabs/specs\n\n PUBLIC CSS CUSTOM PROPERTIES (override per-instance):\n --md-tabs-container-color Container background\n --md-tabs-divider-color Divider color for every child tab's\n bottom line (md-tab inherits it into its\n own divider default chain)\n\n CSS PARTS:\n container Scrollable tab container\n\n SLOTS:\n (default) md-tab elements\n ========================================================== */\n\n/* ==========================================================\n 1. HOST\n ========================================================== */\n\n:host {\n --_container-color: var(--md-tabs-container-color, var(--md-sys-color-surface, #FFFBFE));\n\n display: flex;\n flex-direction: column;\n inline-size: 100%;\n position: relative;\n background-color: var(--_container-color);\n box-sizing: border-box;\n}\n\n/* ==========================================================\n 2. CONTAINER — horizontal scroll, hide scrollbar\n ========================================================== */\n\n.md-tabs__container {\n display: flex;\n overflow-x: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n scroll-behavior: smooth;\n}\n\n.md-tabs__container::-webkit-scrollbar {\n display: none;\n}\n\n/* Tabs fill container equally (tab-width=\"equal\", the default) */\n::slotted(md-tab) {\n flex: 1;\n min-inline-size: 90px;\n}\n\n/* tab-width=\"auto\" — content-sized tabs, strip scrolls */\n:host(.md-tabs--tw-auto) ::slotted(md-tab) {\n flex: 0 0 auto;\n}\n\n/* tab-width=\"<length>\" — content-immune fixed tracks (dynamic badges/labels\n can't reshuffle the strip); long labels ellipsize inside md-tab */\n:host(.md-tabs--tw-fixed) ::slotted(md-tab) {\n flex: 0 0 var(--_tab-width);\n inline-size: var(--_tab-width);\n min-inline-size: var(--_tab-width);\n max-inline-size: var(--_tab-width);\n}\n\n/* ==========================================================\n 3. OVERFLOW AFFORDANCE — edge fades signal clipped tabs\n md-tabs toggles clip-left/right from tab GEOMETRY (physical rects,\n RTL-correct); the mask fades the clipped edge. Wheel input maps to\n horizontal scroll in the component.\n ========================================================== */\n\n:host(.md-tabs--clip-left) .md-tabs__container {\n -webkit-mask-image: linear-gradient(to right, transparent 0, #000 40px);\n mask-image: linear-gradient(to right, transparent 0, #000 40px);\n}\n\n:host(.md-tabs--clip-right) .md-tabs__container {\n -webkit-mask-image: linear-gradient(to left, transparent 0, #000 40px);\n mask-image: linear-gradient(to left, transparent 0, #000 40px);\n}\n\n:host(.md-tabs--clip-left.md-tabs--clip-right) .md-tabs__container {\n -webkit-mask-image: linear-gradient(to right, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);\n mask-image: linear-gradient(to right, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);\n}\n\n/* ==========================================================\n 4. REDUCED MOTION\n ========================================================== */\n\n@media (prefers-reduced-motion: reduce) {\n .md-tabs__container {\n scroll-behavior: auto;\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Element, Watch, State, Method, Listen } from '@stencil/core';\n\n/**\n * @slot - Tab items (`md-tab` elements)\n *\n * @part container - Scrollable tab container\n */\n@Component({\n tag: 'md-tabs',\n styleUrl: 'md-tabs.css',\n shadow: true,\n})\nexport class MdTabs {\n @Element() el!: HTMLElement;\n\n /** Index of the currently active tab */\n @Prop({ mutable: true }) activeTabIndex: number = 0;\n\n /** Visual variant applied to all child tabs */\n @Prop({ reflect: true }) variant: 'primary' | 'secondary' = 'primary';\n\n /** Accessible label for the tablist */\n @Prop({ attribute: 'aria-label' }) ariaLabelProp: string = '';\n\n /**\n * How tabs size along the strip. All modes are layout-stable under\n * dynamic content (labels/badges can change without reshuffling the\n * strip); long labels ellipsize instead of forcing a tab wider.\n * - `equal` (default) — tabs share the parent's FULL width equally;\n * tracks change only when the PARENT resizes.\n * - `auto` — each tab takes its content width (the strip scrolls), so\n * tracks follow content by design.\n * - any CSS length (e.g. `\"140px\"`, `\"10rem\"`) — every tab gets exactly\n * that width regardless of parent or content.\n */\n @Prop({ attribute: 'tab-width' }) tabWidth: string = 'equal';\n\n /**\n * Explicit width for the WHOLE strip (any CSS size: `\"480px\"`, `\"40rem\"`,\n * `\"100%\"`). By default the strip is `100%` of its parent — in\n * shrink-to-fit layouts (inline-block cards, auto grid columns, flex\n * items) that parent's width follows the ACTIVE TAB PANEL, so switching\n * to a tab with tiny content collapses the whole tablist. Set `width` to\n * anchor the strip regardless of what the panels do.\n */\n @Prop() width: string = '';\n\n @Watch('tabWidth')\n onTabWidthChange() {\n this.updateOverflow();\n }\n\n private get tabWidthMode(): 'equal' | 'auto' | 'fixed' {\n if (this.tabWidth === 'auto') return 'auto';\n if (!this.tabWidth || this.tabWidth === 'equal') return 'equal';\n return 'fixed';\n }\n\n /** Emits when the active tab changes */\n @Event() mdTabChange: EventEmitter<{ index: number; previousIndex: number }>;\n\n @State() private tabCount = 0;\n\n private tabs: HTMLElement[] = [];\n private containerEl?: HTMLElement;\n private listenersBound = false;\n private hasLoaded = false;\n /** The active tab ELEMENT — selection survives reorders/removals by\n * identity, not position (removing a preceding tab must not silently\n * select a different tab). */\n private activeTabEl: HTMLElement | null = null;\n /** Guards the activeTabIndex watch while we reconcile internally. */\n private syncingIndex = false;\n /** Consumer-requested index awaiting a tab that hasn't slotted in yet. */\n private pendingRequestedIndex: number | null = null;\n private prevTabs: HTMLElement[] = [];\n private glideToken = 0;\n private resizeObserver?: ResizeObserver;\n private dirObserver?: MutationObserver;\n private uniquePrefix = `md-tabs-${Math.random().toString(36).slice(2, 7)}`;\n\n // ─── Lifecycle ───────────────────────────────────────────\n\n componentDidLoad() {\n const shadow = this.el.shadowRoot;\n if (!shadow) return;\n\n const slot = shadow.querySelector('slot') as HTMLSlotElement | null;\n slot?.addEventListener('slotchange', () => this.syncTabs());\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => this.updateOverflow());\n }\n if (typeof MutationObserver !== 'undefined') {\n // A runtime dir flip moves the clipped side without firing scroll or\n // resize — the fades went stale on the wrong edge.\n this.dirObserver = new MutationObserver(() => this.updateOverflow());\n }\n this.hasLoaded = true;\n this.attachObservers();\n this.syncTabs();\n }\n\n connectedCallback() {\n // Reparenting disconnects (tearing down tab listeners) and reconnects\n // WITHOUT a slotchange — the slot's assignment inside our own shadow\n // never changed. Rebind, or the component is permanently dead after\n // an appendChild elsewhere.\n if (this.hasLoaded) {\n queueMicrotask(() => {\n this.attachObservers(); // disconnect() wiped subscriptions — re-observe\n this.syncTabs();\n });\n }\n }\n\n disconnectedCallback() {\n this.removeTabListeners();\n this.resizeObserver?.disconnect();\n this.dirObserver?.disconnect();\n }\n\n private attachObservers() {\n if (this.containerEl) this.resizeObserver?.observe(this.containerEl);\n if (this.dirObserver) {\n this.dirObserver.observe(this.el, { attributes: true, attributeFilter: ['dir'] });\n this.dirObserver.observe(document.documentElement, { attributes: true, attributeFilter: ['dir'] });\n }\n }\n\n // ─── Watchers ────────────────────────────────────────────\n\n @Watch('activeTabIndex')\n onActiveChange(newIndex: number) {\n if (this.syncingIndex) return;\n // The prop is the primary framework-wrapper path — it must be FULLY\n // reactive: clamp, then active state + roving tabindex + scroll, exactly\n // like the click/keyboard path (previously only the visuals updated,\n // leaving focus on the old tab and the new one offscreen).\n const sanitized = this.sanitizeIndex(newIndex);\n // \"append a tab and select it\" sets an index the (stale, pre-slotchange)\n // list doesn't have yet — remember the INTENT and honor it when the tab\n // registers, instead of permanently rewriting the consumer's value.\n this.pendingRequestedIndex = sanitized > this.tabs.length - 1 ? sanitized : null;\n const clamped = this.clampIndex(sanitized);\n if (clamped !== newIndex) {\n this.setIndexInternal(clamped); // guarded — the watch will NOT re-fire\n }\n this.applyIndex(clamped);\n }\n\n @Watch('variant')\n onVariantChange() {\n this.tabs.forEach(tab => tab.setAttribute('variant', this.variant));\n }\n\n // ─── Public Methods ──────────────────────────────────────\n\n /** Programmatically select a tab by index */\n @Method()\n async selectTab(index: number) {\n if (index < 0 || index >= this.tabs.length) return;\n this.activateTab(index);\n }\n\n // ─── Keyboard Navigation ─────────────────────────────────\n\n @Listen('keydown')\n handleKeyDown(e: KeyboardEvent) {\n if (this.tabs.length === 0) return;\n\n // composedPath()[0] is the true origin even through CLOSED shadow roots\n // (the deep activeElement walk stops at a closed host — arrows were dead\n // there). Fallback to the walk for synthetic events without a path.\n const origin = (e.composedPath?.()[0] as HTMLElement | undefined) ?? (this.deepActiveElement() as HTMLElement);\n const originTab = origin?.closest?.('md-tab') ?? origin;\n const currentIndex = this.tabs.indexOf(originTab as HTMLElement);\n if (currentIndex === -1) return;\n\n // Arrow keys follow VISUAL direction: in RTL, ArrowRight moves toward\n // lower indexes (same contract as md-navigation-bar).\n const dir: 1 | -1 = this.isRtl() ? -1 : 1;\n let targetIndex: number | null = null;\n\n switch (e.key) {\n case 'ArrowRight':\n e.preventDefault();\n targetIndex = this.findNextEnabledWrapping(currentIndex, dir);\n break;\n case 'ArrowLeft':\n e.preventDefault();\n targetIndex = this.findNextEnabledWrapping(currentIndex, (dir * -1) as 1 | -1);\n break;\n case 'Home':\n e.preventDefault();\n targetIndex = this.findFirstEnabled();\n break;\n case 'End':\n e.preventDefault();\n targetIndex = this.findLastEnabled();\n break;\n }\n\n if (targetIndex !== null && targetIndex !== currentIndex) {\n this.tabs[targetIndex].focus();\n this.activateTab(targetIndex);\n }\n }\n\n /** A disabled state change re-roves so exactly one tab stays focusable. */\n @Listen('mdTabDisabledChange')\n handleTabDisabledChange() {\n this.updateRovingTabindex();\n }\n\n private deepActiveElement(): Element | null {\n let active: Element | null = document.activeElement;\n while (active?.shadowRoot?.activeElement) {\n active = active.shadowRoot.activeElement;\n }\n return active;\n }\n\n private isRtl(): boolean {\n return typeof getComputedStyle !== 'undefined' && getComputedStyle(this.el).direction === 'rtl';\n }\n\n private prefersReducedMotion(): boolean {\n return typeof matchMedia !== 'undefined' && matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n /** Wraps around: last→first and first→last, skipping disabled tabs. */\n private findNextEnabledWrapping(from: number, direction: 1 | -1): number | null {\n const len = this.tabs.length;\n if (len === 0) return null;\n let idx = from;\n for (let i = 0; i < len; i++) {\n idx = (idx + direction + len) % len;\n if (!this.isDisabledTab(this.tabs[idx])) return idx;\n }\n return null;\n }\n\n private findFirstEnabled(): number | null {\n for (let i = 0; i < this.tabs.length; i++) {\n if (!this.isDisabledTab(this.tabs[i])) return i;\n }\n return null;\n }\n\n private findLastEnabled(): number | null {\n for (let i = this.tabs.length - 1; i >= 0; i--) {\n if (!this.isDisabledTab(this.tabs[i])) return i;\n }\n return null;\n }\n\n // ─── Tab Sync ────────────────────────────────────────────\n\n private syncTabs() {\n this.removeTabListeners();\n\n const slot = this.el.shadowRoot?.querySelector('slot') as HTMLSlotElement | null;\n if (!slot) return;\n\n // flatten:true — tabs forwarded through a wrapper's <slot> must be\n // managed too (without it, assignedElements() returns the nested SLOT\n // element and zero tabs register).\n this.tabs = slot.assignedElements({ flatten: true }).filter(\n el => el.tagName === 'MD-TAB',\n ) as HTMLElement[];\n\n this.tabCount = this.tabs.length;\n\n this.tabs.forEach((tab, index) => {\n tab.setAttribute('variant', this.variant);\n tab.addEventListener('mdTabClick', this.createTabClickHandler(index));\n\n if (!tab.id) {\n tab.id = `${this.uniquePrefix}-tab-${index}`;\n }\n });\n\n this.listenersBound = true;\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n if (this.containerEl) this.resizeObserver.observe(this.containerEl);\n // A tab GROWING (label/min-width change) overflows the strip without\n // resizing the container box — observe the tabs themselves.\n this.tabs.forEach((t) => this.resizeObserver!.observe(t));\n }\n this.reconcileActiveTab();\n this.updateOverflow();\n }\n\n /**\n * Selection integrity across mutations: follow the active ELEMENT if it\n * still exists; if it was removed (or the index is out of range), clamp to\n * the nearest valid enabled tab and tell consumers. Never leave the\n * tablist without a focusable tab.\n */\n private reconcileActiveTab() {\n // Tabs that LEFT the managed set must not keep selected-looking state\n // (a moved-out active tab kept active + aria-selected + tabindex=0).\n this.prevTabs.forEach((t) => {\n if (!this.tabs.includes(t)) {\n t.removeAttribute('active');\n t.removeAttribute('tabindex'); // its own reconnect stamps standalone\n }\n });\n this.prevTabs = this.tabs;\n\n if (this.tabs.length === 0) {\n this.activeTabEl = null;\n return;\n }\n\n // A consumer index that outran the slotted list (\"append + select\")\n // wins the moment the tab registers — consumer-initiated, so no emit.\n if (this.pendingRequestedIndex !== null) {\n const pending = this.pendingRequestedIndex;\n this.pendingRequestedIndex = null; // single-shot: first reconcile only\n if (pending <= this.tabs.length - 1) {\n const idx = this.clampIndex(pending);\n this.setIndexInternal(idx);\n this.applyIndex(idx);\n return;\n }\n }\n\n // No enabled tab at all: nothing may claim aria-selected or the tab\n // stop (previously a DISABLED tab ended active with zero focusable tabs).\n if (this.findFirstEnabled() === null) {\n const hadSelection = this.activeTabEl !== null;\n const previousIndex = this.activeTabIndex;\n this.tabs.forEach((t) => t.removeAttribute('active'));\n this.activeTabEl = null;\n this.updateRovingTabindex();\n if (hadSelection) this.mdTabChange.emit({ index: -1, previousIndex });\n return;\n }\n\n const prevEl = this.activeTabEl;\n let index: number;\n if (prevEl && this.tabs.includes(prevEl)) {\n index = this.tabs.indexOf(prevEl);\n } else {\n index = this.clampIndex(this.activeTabIndex);\n }\n const previousIndex = this.activeTabIndex;\n this.setIndexInternal(index);\n this.applyIndex(index, { scroll: false });\n // Emit on ELEMENT-identity change, not index change: removing a mid-list\n // active tab keeps the same NUMBER while selecting a different tab —\n // the old numeric guard made that emit dead code.\n if (prevEl !== null && this.activeTabEl !== prevEl) {\n this.mdTabChange.emit({ index, previousIndex });\n }\n }\n\n /** NaN / floats / attribute garbage must never wipe the tablist. */\n private sanitizeIndex(index: unknown): number {\n const num = Math.round(Number(index));\n return Number.isFinite(num) ? num : 0;\n }\n\n /** Property writes reflect to the attribute ASYNC — read the prop first\n * so a just-disabled tab is never left holding the tab stop. */\n private isDisabledTab(tab: HTMLElement): boolean {\n return (tab as HTMLElement & { disabled?: boolean }).disabled === true || tab.hasAttribute('disabled');\n }\n\n /** Clamp into range, preferring an enabled tab (falls back to nearest). */\n private clampIndex(index: number): number {\n const len = this.tabs.length;\n if (len === 0) return 0;\n let idx = Math.max(0, Math.min(this.sanitizeIndex(index), len - 1));\n if (this.tabs[idx] && this.isDisabledTab(this.tabs[idx])) {\n const enabled = this.findNextEnabledWrapping(idx, 1) ?? this.findFirstEnabled();\n if (enabled !== null) idx = enabled;\n }\n return idx;\n }\n\n private setIndexInternal(index: number) {\n if (this.activeTabIndex === index) return;\n this.syncingIndex = true;\n this.activeTabIndex = index;\n this.syncingIndex = false;\n }\n\n private removeTabListeners() {\n if (!this.listenersBound) return;\n this.tabs.forEach((tab, index) => {\n tab.removeEventListener('mdTabClick', this.createTabClickHandler(index));\n });\n this.listenersBound = false;\n }\n\n private tabClickHandlers = new Map<number, () => void>();\n\n private createTabClickHandler(index: number): () => void {\n if (!this.tabClickHandlers.has(index)) {\n this.tabClickHandlers.set(index, () => this.activateTab(index));\n }\n return this.tabClickHandlers.get(index)!;\n }\n\n private activateTab(index: number) {\n this.pendingRequestedIndex = null;\n if (index === this.activeTabIndex && this.tabs[index]?.hasAttribute('active')) return;\n const previousIndex = this.activeTabIndex;\n this.setIndexInternal(index);\n this.applyIndex(index);\n this.mdTabChange.emit({ index, previousIndex });\n }\n\n /** SINGLE application path — active state + roving tabindex + scroll (+\n * indicator glide). Used by the watch, activation and reconciliation so\n * no caller can half-update again. */\n private applyIndex(index: number, opts: { scroll?: boolean } = {}) {\n const prevEl = this.activeTabEl;\n const nextEl = this.tabs[index] ?? null;\n this.applyActiveState(index);\n this.updateRovingTabindex();\n this.activeTabEl = nextEl;\n if (opts.scroll !== false) this.scrollTabIntoView(index);\n if (prevEl && nextEl && prevEl !== nextEl) this.glideIndicator(prevEl, nextEl);\n }\n\n private applyActiveState(activeIndex: number) {\n this.tabs.forEach((tab, i) => {\n if (i === activeIndex) {\n tab.setAttribute('active', '');\n } else {\n tab.removeAttribute('active');\n }\n });\n }\n\n /** md-tabs is the ONLY tabindex writer (md-tab renders none inside a\n * tablist) and always leaves exactly one focusable tab — the active one,\n * or the first enabled tab when the active one is disabled/invalid. */\n private updateRovingTabindex() {\n let holder = this.activeTabIndex;\n if (this.tabs[holder] && this.isDisabledTab(this.tabs[holder])) {\n holder = this.findFirstEnabled() ?? holder;\n }\n this.tabs.forEach((tab, i) => {\n if (this.isDisabledTab(tab)) {\n tab.setAttribute('tabindex', '-1');\n } else {\n tab.setAttribute('tabindex', i === holder ? '0' : '-1');\n }\n });\n }\n\n /**\n * MD3 indicator glide: FLIP the incoming tab's indicator from the\n * outgoing one's position/width to its own. The indicators live in each\n * tab's shadow root, so the transform is driven via inherited custom\n * properties the indicator CSS consumes.\n */\n private glideIndicator(prevTab: HTMLElement, nextTab: HTMLElement) {\n if (this.prefersReducedMotion()) return;\n const measure = (tab: HTMLElement) =>\n (tab.shadowRoot?.querySelector('.md-tab__indicator') ?? tab).getBoundingClientRect();\n const p = measure(prevTab);\n const n = measure(nextTab);\n if (!p.width || !n.width) return;\n const dx = p.left + p.width / 2 - (n.left + n.width / 2);\n const sx = p.width / n.width;\n if (typeof requestAnimationFrame === 'undefined') return;\n // Releasing synchronously never glided: the `active` class lands on the\n // NEXT render, after the vars were already back at identity — the\n // indicator just popped in place. Hold the translated start frame\n // through the render (duration 0), release on a double rAF so the\n // transition carries it home. Token guards rapid tab-hopping.\n const token = ++this.glideToken;\n prevTab.style.removeProperty('--md-tab-glide-x');\n prevTab.style.removeProperty('--md-tab-glide-scale');\n prevTab.style.removeProperty('--md-tab-glide-duration');\n nextTab.style.setProperty('--md-tab-glide-duration', '0s');\n nextTab.style.setProperty('--md-tab-glide-x', `${dx}px`);\n nextTab.style.setProperty('--md-tab-glide-scale', `${sx}`);\n requestAnimationFrame(() => requestAnimationFrame(() => {\n if (token !== this.glideToken) return;\n nextTab.style.removeProperty('--md-tab-glide-duration');\n nextTab.style.setProperty('--md-tab-glide-x', '0px');\n nextTab.style.setProperty('--md-tab-glide-scale', '1');\n setTimeout(() => {\n if (token !== this.glideToken) return;\n nextTab.style.removeProperty('--md-tab-glide-x');\n nextTab.style.removeProperty('--md-tab-glide-scale');\n }, 500);\n }));\n }\n\n private scrollTabIntoView(index: number) {\n const tab = this.tabs[index];\n if (!tab || !this.containerEl) return;\n tab.scrollIntoView?.({\n behavior: this.prefersReducedMotion() ? 'auto' : 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n\n // ─── Overflow affordance ─────────────────────────────────\n\n /** Vertical wheel scrolls the tab strip horizontally when it overflows —\n * otherwise clipped tabs are unreachable for mouse-only users (the\n * scrollbar is hidden by design). */\n private handleWheel = (e: WheelEvent) => {\n const c = this.containerEl;\n if (!c || c.scrollWidth <= c.clientWidth) return;\n // Horizontal gestures (trackpad swipes) scroll the strip NATIVELY —\n // intercepting them replayed the motion through the tarpit below.\n if (Math.abs(e.deltaX) >= Math.abs(e.deltaY) || e.deltaY === 0) return;\n e.preventDefault();\n // deltaMode: 0=pixels, 1=lines (Firefox wheel), 2=pages\n const factor = e.deltaMode === 1 ? 16 : e.deltaMode === 2 ? c.clientWidth : 1;\n // MUST bypass the container's scroll-behavior:smooth — incremental\n // scrollLeft writes read the mid-animation position, so a wheel burst\n // compounded off barely-moved values and crawled (10x120px netted\n // 155px of 320). 'instant' applies each tick fully.\n c.scrollBy({ left: e.deltaY * factor, behavior: 'instant' as ScrollBehavior });\n };\n\n /** Edge fades signal clipped tabs. Detection uses tab GEOMETRY (physical\n * rects), so it is RTL-correct by construction. */\n private updateOverflow = () => {\n const c = this.containerEl;\n if (!c || this.tabs.length === 0) {\n this.el.classList.remove('md-tabs--clip-left', 'md-tabs--clip-right');\n return;\n }\n const box = c.getBoundingClientRect();\n const first = this.tabs[0].getBoundingClientRect();\n const last = this.tabs[this.tabs.length - 1].getBoundingClientRect();\n const left = Math.min(first.left, last.left);\n const right = Math.max(first.right, last.right);\n this.el.classList.toggle('md-tabs--clip-left', left < box.left - 1);\n this.el.classList.toggle('md-tabs--clip-right', right > box.right + 1);\n };\n\n // ─── Render ──────────────────────────────────────────────\n\n render() {\n return (\n <Host\n class={{\n 'md-tabs': true,\n [`md-tabs--${this.variant}`]: true,\n 'md-tabs--tw-auto': this.tabWidthMode === 'auto',\n 'md-tabs--tw-fixed': this.tabWidthMode === 'fixed',\n }}\n style={{\n ...(this.tabWidthMode === 'fixed' ? { '--_tab-width': this.tabWidth } : {}),\n ...(this.width ? { 'inline-size': this.width } : {}),\n }}\n role=\"tablist\"\n aria-label={this.ariaLabelProp || 'tabs'}\n aria-orientation=\"horizontal\"\n >\n <div\n class=\"md-tabs__container\"\n part=\"container\"\n ref={el => (this.containerEl = el)}\n onWheel={this.handleWheel}\n onScroll={this.updateOverflow}\n >\n <slot />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,h as a,H as e,
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,h as a,H as e,g as s}from"./p-WmvQpZnM.js";const o=()=>`:host{--_color:var(--md-table-toolbar-color, var(--md-sys-color-on-surface, #1C1B1F));--_bg:var(--md-table-toolbar-bg, transparent);--_sel-bg:var(--md-table-toolbar-selection-bg, var(--md-sys-color-secondary-container, #E8DEF8));--_sel-color:var(--md-table-toolbar-selection-color, var(--md-sys-color-on-secondary-container, #1E192B));--_pad-block:var(--md-table-toolbar-padding-block, var(--md-sys-spacing-inset-md, 12px));--_pad-inline:var(--md-table-toolbar-padding-inline, 24px);--_min-h:var(--md-table-toolbar-min-height, calc(64px + var(--md-sys-density-scale, 0) * 4px));--_motion-duration:var(--md-sys-motion-spring-effects-default-duration, 200ms);--_motion-easing:var(--md-sys-motion-spring-effects-default-easing, cubic-bezier(0.34, 0.8, 0.34, 1));display:flex;align-items:center;gap:max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px));padding-block:var(--_pad-block);padding-inline:max(12px, calc(24px + var(--md-sys-density-scale, 0) * 2px));min-block-size:var(--_min-h);background-color:var(--_bg);color:var(--_color);position:relative;isolation:isolate;transition:background-color var(--_motion-duration) var(--_motion-easing), color var(--_motion-duration) var(--_motion-easing)}:host(.md-table-toolbar--compact){--_pad-block:6px;--_min-h:48px}:host(.md-table-toolbar--selection-mode){background-color:var(--_sel-bg);color:var(--_sel-color)}.md-table-toolbar__leading{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.md-table-toolbar__leading[hidden]{display:none}.md-table-toolbar__main{flex:1 1 auto;min-inline-size:0}.md-table-toolbar__actions{display:inline-flex;align-items:center;gap:max(0px, calc(4px + var(--md-sys-density-scale, 0) * 1px));flex:0 0 auto;--md-icon-button-container-width:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-container-height:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px))}.md-table-toolbar__titles{display:flex;flex-direction:column;gap:2px}.md-table-toolbar__headline{margin:0;font-family:var(--md-sys-typescale-title-large-font-family, Roboto, sans-serif);font-size:max(16px, calc(22px + var(--md-sys-density-scale, 0) * 1px));font-weight:var(--md-sys-typescale-title-large-font-weight, 400);line-height:max(22px, calc(28px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:0;color:inherit}:host(.md-table-toolbar--compact) .md-table-toolbar__headline{font-size:var(--md-sys-typescale-title-medium-font-size, 16px);line-height:var(--md-sys-typescale-title-medium-line-height, 24px)}.md-table-toolbar__supporting{margin:0;font-family:var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif);font-size:var(--md-sys-typescale-body-medium-font-size, 14px);line-height:var(--md-sys-typescale-body-medium-line-height, 20px);color:var(--md-sys-color-on-surface-variant, #49454F)}:host(.md-table-toolbar--selection-mode) .md-table-toolbar__supporting{color:inherit;opacity:0.85}.md-table-toolbar__selection-caption{font-family:var(--md-sys-typescale-title-medium-font-family, Roboto, sans-serif);font-size:max(13px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:500;line-height:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));animation:md-table-toolbar-fade var(--_motion-duration) var(--_motion-easing)}@keyframes md-table-toolbar-fade{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){:host{transition:none}.md-table-toolbar__selection-caption{animation:none}}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}`;const i=class{constructor(a){t(this,a);this.headline="";this.supportingText="";this.numSelected=0;this.autoBind=false;this.labelSelected="%count% selected";this.compact=false;this.density=0;this.hasSelectionActions=false;this.hasActions=false;this.hasLeading=false;this.parentTable=null;this.boundListener=null}componentDidLoad(){const t=this.el.shadowRoot;if(!t)return;this.bindSlotChanges(t);if(this.autoBind){this.parentTable=this.el.closest("md-table-container")?.querySelector("md-table")??null;if(!this.parentTable)return;this.boundListener=t=>{const a=t.detail;this.numSelected=a?.count??0};this.parentTable.addEventListener("mdSelectionChange",this.boundListener)}}disconnectedCallback(){if(this.parentTable&&this.boundListener){this.parentTable.removeEventListener("mdSelectionChange",this.boundListener)}this.parentTable=null;this.boundListener=null}bindSlotChanges(t){const a=t.querySelector('slot[name="leading"]');const e=t.querySelector('slot[name="actions"]');const s=t.querySelector('slot[name="selection-actions"]');a?.addEventListener("slotchange",(()=>{this.hasLeading=a.assignedElements().length>0}));e?.addEventListener("slotchange",(()=>{this.hasActions=e.assignedElements().length>0}));s?.addEventListener("slotchange",(()=>{this.hasSelectionActions=s.assignedElements().length>0}));this.hasLeading=!!a&&a.assignedElements().length>0;this.hasActions=!!e&&e.assignedElements().length>0;this.hasSelectionActions=!!s&&s.assignedElements().length>0}get inSelectionMode(){return this.numSelected>0}get selectionLabel(){return this.labelSelected.replace("%count%",this.numSelected.toLocaleString())}render(){return a(e,{key:"d509dc8677829b9eabc1ab09e3f200eee2940013",class:{"md-table-toolbar":true,"md-table-toolbar--compact":this.compact,"md-table-toolbar--selection-mode":this.inSelectionMode},role:"toolbar","aria-label":this.headline||"Table toolbar"},a("div",{key:"795bd82dc57564b7f67867abfba4c3242e082052",class:"md-table-toolbar__leading",part:"leading",hidden:!this.hasLeading&&!this.inSelectionMode},!this.inSelectionMode&&a("slot",{key:"e7c3c5d8a10c25fd87deb60a55b5df54fcb87615",name:"leading"})),a("div",{key:"3fe66dd47ee8bb78e590b13c3c09e70043f7ec65",class:"md-table-toolbar__main",part:"main"},this.inSelectionMode?a("span",{class:"md-table-toolbar__selection-caption",part:"selection-caption","aria-live":"polite"},this.selectionLabel):a("div",{class:"md-table-toolbar__titles"},this.headline&&a("h2",{class:"md-table-toolbar__headline",part:"headline"},a("slot",{name:"headline"},this.headline)),this.supportingText&&a("p",{class:"md-table-toolbar__supporting",part:"supporting-text"},a("slot",{name:"supporting-text"},this.supportingText)),!this.headline&&!this.supportingText&&a("slot",{name:"title-area"}))),a("div",{key:"8aec03944525b513de402ae00b06371b715fabc8",class:"md-table-toolbar__actions",part:"actions"},this.inSelectionMode?a("slot",{name:"selection-actions"}):a("slot",{name:"actions"})))}get el(){return s(this)}};i.style=o();export{i as md_table_toolbar};
|
|
2
|
+
//# sourceMappingURL=p-a4d4cfed.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as a,h as e,H as t,
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as a,h as e,H as t,g as o}from"./p-WmvQpZnM.js";const s=()=>`:host{display:contents}`;const r=class{constructor(e){a(this,e)}render(){return e(t,{key:"2265a136496a1f36a92b9ef2cf7e4a939332e32e",class:"md-table-head",role:"rowgroup","data-md-rowgroup":"head"},e("slot",{key:"539b822ac3a6cf9a2ab605b03fc300948aac3659",onSlotchange:()=>this.el.dispatchEvent(new CustomEvent("mdRowgroupSlotChange",{bubbles:true}))}))}get el(){return o(this)}};r.style=s();export{r as md_table_head};
|
|
2
|
+
//# sourceMappingURL=p-a976498b.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as i,c as a,h as t,H as n,a as e}from"./p-DTaX19_O.js";import{t as o}from"./p-DYBUr7K_.js";import{s,S as r}from"./p-BjYKc1Ge.js";const l=()=>`:host{--_indicator-color:var( --md-navigation-tab-active-indicator-color, var(--md-sys-color-secondary-container, #E8DEF8) );--_indicator-w:var(--md-navigation-tab-active-indicator-width, max(40px, calc(56px + var(--md-sys-density-scale, 0) * 4px)));--_indicator-h:var(--md-navigation-tab-active-indicator-height, max(24px, calc(32px + var(--md-sys-density-scale, 0) * 2px)));--_indicator-shape:var( --md-navigation-tab-active-indicator-shape, var(--md-sys-shape-corner-full, 9999px) );--_active-icon-color:var( --md-navigation-tab-active-icon-color, var(--md-sys-color-on-secondary-container, #1E192B) );--_inactive-icon-color:var( --md-navigation-tab-inactive-icon-color, var(--md-sys-color-on-surface-variant, #49454F) );--_active-label-color:var( --md-navigation-tab-active-label-color, var(--md-sys-color-on-surface, #1C1B1F) );--_inactive-label-color:var( --md-navigation-tab-inactive-label-color, var(--md-sys-color-on-surface-variant, #49454F) );--_icon-size:var(--md-navigation-tab-icon-size, max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px)));--_pad-top:var(--md-navigation-tab-padding-block-start, calc(5px + var(--md-sys-density-scale, 0) * 1px));--_pad-bottom:var(--md-navigation-tab-padding-block-end, calc(5px + var(--md-sys-density-scale, 0) * 1px));--_hover-color:var( --md-navigation-tab-hover-state-layer-color, var(--md-sys-color-on-surface, #1C1B1F) );--_focus-color:var( --md-navigation-tab-focus-state-layer-color, var(--md-sys-color-on-surface, #1C1B1F) );--_pressed-color:var( --md-navigation-tab-pressed-state-layer-color, var(--md-sys-color-on-surface, #1C1B1F) );--_badge-color:var( --md-navigation-tab-badge-color, var(--md-sys-color-error, #B3261E) );--_badge-on-color:var( --md-navigation-tab-badge-on-color, var(--md-sys-color-on-error, #FFFFFF) );--_disabled-opacity:var(--md-navigation-tab-disabled-opacity, 0.38);--_label-font:var( --md-navigation-tab-label-font, var(--md-sys-typescale-label-medium-font, 500 12px/16px Roboto, sans-serif) );--_label-size:var(--md-navigation-tab-label-font-size, max(10px, calc(12px + var(--md-sys-density-scale, 0) * 0.5px)));--_label-weight-active:var(--md-navigation-tab-label-font-weight, 600);--_motion-duration:var(--md-sys-motion-duration-short4, 200ms);--_motion-easing:var( --md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1) );display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-start;inline-size:100%;min-inline-size:48px;block-size:100%;padding-block:var(--_pad-top) var(--_pad-bottom);box-sizing:border-box;cursor:pointer;position:relative;outline:none;user-select:none;-webkit-tap-highlight-color:transparent;color:var(--_inactive-icon-color);transition:color var(--_motion-duration) var(--_motion-easing)}:host(.md-navigation-tab--active){color:var(--_active-icon-color)}:host(.md-navigation-tab--disabled),:host(.md-navigation-tab--soft-disabled){cursor:not-allowed;opacity:var(--_disabled-opacity)}:host(.md-navigation-tab--disabled){pointer-events:none}.md-navigation-tab__state-layer{position:absolute;inset:0;background-color:currentColor;opacity:0;border-radius:inherit;pointer-events:none;transition:opacity var(--md-sys-motion-duration-short2, 100ms) ease}:host(:hover:not(.md-navigation-tab--disabled):not(.md-navigation-tab--soft-disabled)) .md-navigation-tab__state-layer{background-color:var(--_hover-color);opacity:var(--md-sys-state-hover-state-layer-opacity, 0.08)}:host(:active:not(.md-navigation-tab--disabled):not(.md-navigation-tab--soft-disabled)) .md-navigation-tab__state-layer{background-color:var(--_pressed-color);opacity:var(--md-sys-state-pressed-state-layer-opacity, 0.12)}:host(:focus-visible:not(.md-navigation-tab--disabled)) .md-navigation-tab__state-layer{background-color:var(--_focus-color);opacity:var(--md-navigation-tab-focus-state-layer-opacity, 0.1)}:host(:focus-visible:not(.md-navigation-tab--disabled)) .md-navigation-tab__icon-container::after{content:'';position:absolute;inset:-4px;border:3px solid var(--md-sys-color-secondary, #625B71);border-radius:var(--_indicator-shape, 9999px);box-sizing:border-box;pointer-events:none}.md-navigation-tab__container{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:max(2px, calc(6px + var(--md-sys-density-scale, 0) * 1px));inline-size:100%;pointer-events:none;}.md-navigation-tab__indicator{position:absolute;inset-block-start:0;inline-size:var(--_indicator-w);block-size:var(--_indicator-h);border-radius:var(--_indicator-shape);background-color:var(--_indicator-color);transform:scale(0, 1);transform-origin:center center;opacity:0;transition:transform var(--_motion-duration) var(--_motion-easing), opacity var(--md-sys-motion-duration-short2, 100ms) ease;pointer-events:none}.md-navigation-tab__indicator--active{transform:scale(1, 1);opacity:1}.md-navigation-tab__icon-container{position:relative;display:inline-flex;align-items:center;justify-content:center;inline-size:var(--_indicator-w);block-size:var(--_indicator-h);pointer-events:none}.md-navigation-tab__icon{position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:var(--_icon-size);inline-size:var(--_icon-size);block-size:var(--_icon-size);line-height:1;color:inherit;z-index:1;transition:font-variation-settings var(--md-sys-motion-duration-short2, 100ms) ease}.md-navigation-tab__icon ::slotted(*){display:inline-flex;align-items:center;justify-content:center;inline-size:var(--_icon-size);block-size:var(--_icon-size);font-size:var(--_icon-size);line-height:1;font-family:var(--md-navigation-tab-slotted-icon-font, system-ui, sans-serif);color:inherit;object-fit:contain}.md-navigation-tab__icon--filled{font-variation-settings:'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24}.material-symbols-outlined{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons'), sans-serif;font-weight:normal;font-style:normal;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased;font-variation-settings:'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24}.md-navigation-tab__badge{position:absolute;z-index:2;background-color:var(--_badge-color);color:var(--_badge-on-color);border-radius:var(--md-sys-shape-corner-full, 9999px);box-sizing:border-box;pointer-events:none;display:inline-flex;align-items:center;justify-content:center}.md-navigation-tab__badge--small{inset-block-start:2px;inset-inline-end:14px;inline-size:6px;block-size:6px}.md-navigation-tab__badge--large{inset-block-start:-2px;inset-inline-start:50%;margin-inline-start:4px;min-inline-size:16px;block-size:16px;padding-inline:4px;font:var( --md-sys-typescale-label-small-font, 500 11px/16px Roboto, sans-serif );letter-spacing:var( --md-sys-typescale-label-small-letter-spacing, 0.5px )}.md-navigation-tab__label{font:var(--_label-font);font-size:var(--_label-size);letter-spacing:var( --md-sys-typescale-label-medium-letter-spacing, 0.5px );color:var(--_inactive-label-color);max-inline-size:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;pointer-events:none;transition:color var(--md-sys-motion-duration-short2, 100ms) ease, opacity var(--md-sys-motion-duration-short2, 100ms) ease}:host(.md-navigation-tab--active) .md-navigation-tab__label{color:var(--_active-label-color);font-weight:var(--_label-weight-active)}.md-navigation-tab__label--hidden{opacity:0;visibility:hidden}:host(.md-navigation-tab--label-hidden){--_pad-top:var(--md-sys-spacing-inset-lg, 16px);--_pad-bottom:var(--md-sys-spacing-inset-lg, 16px);justify-content:center}:host(.md-navigation-tab--label-hidden) .md-navigation-tab__container{justify-content:center}@media (forced-colors: active){:host{--_indicator-color:Highlight;--_active-icon-color:HighlightText;--_active-label-color:HighlightText;--_inactive-icon-color:ButtonText;--_inactive-label-color:ButtonText}:host(:focus-visible:not(.md-navigation-tab--disabled)){outline:2px solid CanvasText}}@media (prefers-reduced-motion: reduce){:host,.md-navigation-tab__state-layer,.md-navigation-tab__indicator,.md-navigation-tab__icon,.md-navigation-tab__label{transition:none !important}}: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 c=class{constructor(t){i(this,t);this.mdTabClick=a(this,"mdTabClick",7);this.active=false;this.disabled=false;this.softDisabled=false;this.label="";this.icon="";this.activeIcon="";this.badge=false;this.badgeValue="";this.badgeMax=999;this.href="";this.target="";this.labelBehavior="always";this.density=0;this.focusVisible=false;this.handleClick=i=>{if(this.interactionDisabled){i.preventDefault();i.stopPropagation();return}if(i.defaultPrevented)return;this.emitActivation();this.maybeFollowHref()};this.handleKeyDown=i=>{if(this.interactionDisabled)return;if(i.key==="Enter"||i.key===" "||i.key==="Spacebar"){i.preventDefault();o(this.el);this.el.click()}};this.handleFocus=()=>{this.focusVisible=this.el.matches(":focus-visible")};this.handleBlur=()=>{this.focusVisible=false}}onActiveChange(i){this.el.setAttribute("aria-selected",String(i))}onDisabledChange(){this.syncAriaDisabled()}onSoftDisabledChange(){this.syncAriaDisabled()}get interactionDisabled(){return this.disabled||this.softDisabled}syncAriaDisabled(){this.el.setAttribute("aria-disabled",String(this.interactionDisabled))}connectedCallback(){if(!this.el.hasAttribute("role"))this.el.setAttribute("role","tab");this.el.setAttribute("aria-selected",String(this.active));if(this.interactionDisabled)this.el.setAttribute("aria-disabled","true");if(!this.el.hasAttribute("tabindex")){this.el.setAttribute("tabindex",this.active?"0":"-1")}}async focusEl(){if(this.disabled)return;this.el.focus()}resolveIndex(){const i=this.el.parentElement;if(!i)return-1;const a=[];for(const t of Array.from(i.children)){if(t.tagName==="MD-NAVIGATION-TAB"){a.push(t)}}return a.indexOf(this.el)}emitActivation(){const i=this.resolveIndex();this.mdTabClick.emit({index:i})}maybeFollowHref(){const i=s(this.href);if(!i)return;if(typeof window==="undefined")return;if(this.target==="_blank"){window.open(i,"_blank",r)}else if(this.target){window.open(i,this.target,r)}else{window.location.assign(i)}}resolveLabelVisibility(){return this.labelBehavior}formatBadgeValue(){const i=(this.badgeValue??"").trim();if(!i)return"";if(this.badgeMax>0){const a=Number(i);if(!Number.isNaN(a)&&Number.isFinite(a)&&a>this.badgeMax){return`${this.badgeMax}+`}}return i}renderIcon(){const i=this.active&&(this.activeIcon||this.icon);const a=this.active;const n=i?this.activeIcon||this.icon:this.icon;return t("span",{class:"md-navigation-tab__icon-container",part:"icon-container"},t("span",{class:{"md-navigation-tab__icon":true,"material-symbols-outlined":true,"md-navigation-tab__icon--filled":a},part:"icon","aria-hidden":"true"},this.active?t("slot",{name:"active-icon"},n):t("slot",{name:"icon"},n)),this.renderBadge())}renderBadge(){if(!this.badge&&!this.badgeValue)return null;const i=this.formatBadgeValue();const a=i.length>0;return t("span",{class:{"md-navigation-tab__badge":true,"md-navigation-tab__badge--small":!a,"md-navigation-tab__badge--large":a},part:"badge",role:"status","aria-label":a?`${i} new`:"New"},a?i:"")}renderLabel(){const i=this.resolveLabelVisibility();if(i==="none")return null;return t("span",{class:{"md-navigation-tab__label":true,"md-navigation-tab__label--hidden":i==="selected"&&!this.active},part:"label"},t("slot",null,this.label))}render(){const i=this.label||undefined;const a=this.resolveLabelVisibility();const e=a==="none"?i:undefined;return t(n,{key:"b84f80a399f4fa30e3fd35d3c708f5a10c86fbc7",class:{"md-navigation-tab":true,"md-navigation-tab--active":this.active,"md-navigation-tab--disabled":this.disabled,"md-navigation-tab--soft-disabled":this.softDisabled&&!this.disabled,"md-navigation-tab--label-hidden":a==="none"},"aria-label":e,onClick:this.handleClick,onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur},t("md-ripple",{key:"83fec6cfe2db2bb364b91597f38263f9bc7ef919",disabled:this.interactionDisabled}),t("span",{key:"66d3e42b259170e7dfc2021521e8e5a06b049b6a",class:"md-navigation-tab__state-layer",part:"state-layer","aria-hidden":"true","data-focus-visible":this.focusVisible?"true":null}),t("span",{key:"66fefed1e19574db90dc10435c4d252f25858281",class:"md-navigation-tab__container",part:"container"},t("span",{key:"9107a93789b7b0d3f45df0d8af5f2fb18ef0de50",class:{"md-navigation-tab__indicator":true,"md-navigation-tab__indicator--active":this.active},part:"indicator","aria-hidden":"true"}),this.renderIcon(),this.renderLabel()))}get el(){return e(this)}static get watchers(){return{active:[{onActiveChange:0}],disabled:[{onDisabledChange:0}],softDisabled:[{onSoftDisabledChange:0}]}}};c.style=l();export{c as md_navigation_tab};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as a,c as i,h as t,H as n,g as e}from"./p-WmvQpZnM.js";import{t as o}from"./p-DYBUr7K_.js";import{s,a as r}from"./p-BdEoSBtL.js";const l=()=>`:host{--_indicator-color:var( --md-navigation-tab-active-indicator-color, var(--md-sys-color-secondary-container, #E8DEF8) );--_indicator-w:var(--md-navigation-tab-active-indicator-width, max(40px, calc(56px + var(--md-sys-density-scale, 0) * 4px)));--_indicator-h:var(--md-navigation-tab-active-indicator-height, max(24px, calc(32px + var(--md-sys-density-scale, 0) * 2px)));--_indicator-shape:var( --md-navigation-tab-active-indicator-shape, var(--md-sys-shape-corner-full, 9999px) );--_active-icon-color:var( --md-navigation-tab-active-icon-color, var(--md-sys-color-on-secondary-container, #1E192B) );--_inactive-icon-color:var( --md-navigation-tab-inactive-icon-color, var(--md-sys-color-on-surface-variant, #49454F) );--_active-label-color:var( --md-navigation-tab-active-label-color, var(--md-sys-color-on-surface, #1C1B1F) );--_inactive-label-color:var( --md-navigation-tab-inactive-label-color, var(--md-sys-color-on-surface-variant, #49454F) );--_icon-size:var(--md-navigation-tab-icon-size, max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px)));--_pad-top:var(--md-navigation-tab-padding-block-start, calc(5px + var(--md-sys-density-scale, 0) * 1px));--_pad-bottom:var(--md-navigation-tab-padding-block-end, calc(5px + var(--md-sys-density-scale, 0) * 1px));--_hover-color:var( --md-navigation-tab-hover-state-layer-color, var(--md-sys-color-on-surface, #1C1B1F) );--_focus-color:var( --md-navigation-tab-focus-state-layer-color, var(--md-sys-color-on-surface, #1C1B1F) );--_pressed-color:var( --md-navigation-tab-pressed-state-layer-color, var(--md-sys-color-on-surface, #1C1B1F) );--_badge-color:var( --md-navigation-tab-badge-color, var(--md-sys-color-error, #B3261E) );--_badge-on-color:var( --md-navigation-tab-badge-on-color, var(--md-sys-color-on-error, #FFFFFF) );--_disabled-opacity:var(--md-navigation-tab-disabled-opacity, 0.38);--_label-font:var( --md-navigation-tab-label-font, var(--md-sys-typescale-label-medium-font, 500 12px/16px Roboto, sans-serif) );--_label-size:var(--md-navigation-tab-label-font-size, max(10px, calc(12px + var(--md-sys-density-scale, 0) * 0.5px)));--_label-weight-active:var(--md-navigation-tab-label-font-weight, 600);--_motion-duration:var(--md-sys-motion-duration-short4, 200ms);--_motion-easing:var( --md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1) );display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-start;inline-size:100%;min-inline-size:48px;block-size:100%;padding-block:var(--_pad-top) var(--_pad-bottom);box-sizing:border-box;cursor:pointer;position:relative;outline:none;user-select:none;-webkit-tap-highlight-color:transparent;color:var(--_inactive-icon-color);transition:color var(--_motion-duration) var(--_motion-easing)}:host(.md-navigation-tab--active){color:var(--_active-icon-color)}:host(.md-navigation-tab--disabled),:host(.md-navigation-tab--soft-disabled){cursor:not-allowed;opacity:var(--_disabled-opacity)}:host(.md-navigation-tab--disabled){pointer-events:none}.md-navigation-tab__state-layer{position:absolute;inset:0;background-color:currentColor;opacity:0;border-radius:inherit;pointer-events:none;transition:opacity var(--md-sys-motion-duration-short2, 100ms) ease}:host(:hover:not(.md-navigation-tab--disabled):not(.md-navigation-tab--soft-disabled)) .md-navigation-tab__state-layer{background-color:var(--_hover-color);opacity:var(--md-sys-state-hover-state-layer-opacity, 0.08)}:host(:active:not(.md-navigation-tab--disabled):not(.md-navigation-tab--soft-disabled)) .md-navigation-tab__state-layer{background-color:var(--_pressed-color);opacity:var(--md-sys-state-pressed-state-layer-opacity, 0.12)}:host(:focus-visible:not(.md-navigation-tab--disabled)) .md-navigation-tab__state-layer{background-color:var(--_focus-color);opacity:var(--md-navigation-tab-focus-state-layer-opacity, 0.1)}:host(:focus-visible:not(.md-navigation-tab--disabled)) .md-navigation-tab__icon-container::after{content:'';position:absolute;inset:-4px;border:3px solid var(--md-sys-color-secondary, #625B71);border-radius:var(--_indicator-shape, 9999px);box-sizing:border-box;pointer-events:none}.md-navigation-tab__container{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:max(2px, calc(6px + var(--md-sys-density-scale, 0) * 1px));inline-size:100%;pointer-events:none;}.md-navigation-tab__indicator{position:absolute;inset-block-start:0;inline-size:var(--_indicator-w);block-size:var(--_indicator-h);border-radius:var(--_indicator-shape);background-color:var(--_indicator-color);transform:scale(0, 1);transform-origin:center center;opacity:0;transition:transform var(--_motion-duration) var(--_motion-easing), opacity var(--md-sys-motion-duration-short2, 100ms) ease;pointer-events:none}.md-navigation-tab__indicator--active{transform:scale(1, 1);opacity:1}.md-navigation-tab__icon-container{position:relative;display:inline-flex;align-items:center;justify-content:center;inline-size:var(--_indicator-w);block-size:var(--_indicator-h);pointer-events:none}.md-navigation-tab__icon{position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:var(--_icon-size);inline-size:var(--_icon-size);block-size:var(--_icon-size);line-height:1;color:inherit;z-index:1;transition:font-variation-settings var(--md-sys-motion-duration-short2, 100ms) ease}.md-navigation-tab__icon ::slotted(*){display:inline-flex;align-items:center;justify-content:center;inline-size:var(--_icon-size);block-size:var(--_icon-size);font-size:var(--_icon-size);line-height:1;font-family:var(--md-navigation-tab-slotted-icon-font, system-ui, sans-serif);color:inherit;object-fit:contain}.md-navigation-tab__icon--filled{font-variation-settings:'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24}.material-symbols-outlined{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons'), sans-serif;font-weight:normal;font-style:normal;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased;font-variation-settings:'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24}.md-navigation-tab__badge{position:absolute;z-index:2;background-color:var(--_badge-color);color:var(--_badge-on-color);border-radius:var(--md-sys-shape-corner-full, 9999px);box-sizing:border-box;pointer-events:none;display:inline-flex;align-items:center;justify-content:center}.md-navigation-tab__badge--small{inset-block-start:2px;inset-inline-end:14px;inline-size:6px;block-size:6px}.md-navigation-tab__badge--large{inset-block-start:-2px;inset-inline-start:50%;margin-inline-start:4px;min-inline-size:16px;block-size:16px;padding-inline:4px;font:var( --md-sys-typescale-label-small-font, 500 11px/16px Roboto, sans-serif );letter-spacing:var( --md-sys-typescale-label-small-letter-spacing, 0.5px )}.md-navigation-tab__label{font:var(--_label-font);font-size:var(--_label-size);letter-spacing:var( --md-sys-typescale-label-medium-letter-spacing, 0.5px );color:var(--_inactive-label-color);max-inline-size:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;pointer-events:none;transition:color var(--md-sys-motion-duration-short2, 100ms) ease, opacity var(--md-sys-motion-duration-short2, 100ms) ease}:host(.md-navigation-tab--active) .md-navigation-tab__label{color:var(--_active-label-color);font-weight:var(--_label-weight-active)}.md-navigation-tab__label--hidden{opacity:0;visibility:hidden}:host(.md-navigation-tab--label-hidden){--_pad-top:var(--md-sys-spacing-inset-lg, 16px);--_pad-bottom:var(--md-sys-spacing-inset-lg, 16px);justify-content:center}:host(.md-navigation-tab--label-hidden) .md-navigation-tab__container{justify-content:center}@media (forced-colors: active){:host{--_indicator-color:Highlight;--_active-icon-color:HighlightText;--_active-label-color:HighlightText;--_inactive-icon-color:ButtonText;--_inactive-label-color:ButtonText}:host(:focus-visible:not(.md-navigation-tab--disabled)){outline:2px solid CanvasText}}@media (prefers-reduced-motion: reduce){:host,.md-navigation-tab__state-layer,.md-navigation-tab__indicator,.md-navigation-tab__icon,.md-navigation-tab__label{transition:none !important}}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}`;const d=class{constructor(t){a(this,t);this.mdTabClick=i(this,"mdTabClick",7);this.active=false;this.disabled=false;this.softDisabled=false;this.label="";this.icon="";this.activeIcon="";this.badge=false;this.badgeValue="";this.badgeMax=999;this.href="";this.target="";this.labelBehavior="always";this.density=0;this.focusVisible=false;this.handleClick=a=>{if(this.interactionDisabled){a.preventDefault();a.stopPropagation();return}if(a.defaultPrevented)return;this.emitActivation();this.maybeFollowHref()};this.handleKeyDown=a=>{if(this.interactionDisabled)return;if(a.key==="Enter"||a.key===" "||a.key==="Spacebar"){a.preventDefault();o(this.el);this.el.click()}};this.handleFocus=()=>{this.focusVisible=this.el.matches(":focus-visible")};this.handleBlur=()=>{this.focusVisible=false}}onActiveChange(a){this.el.setAttribute("aria-selected",String(a))}onDisabledChange(){this.syncAriaDisabled()}onSoftDisabledChange(){this.syncAriaDisabled()}get interactionDisabled(){return this.disabled||this.softDisabled}syncAriaDisabled(){this.el.setAttribute("aria-disabled",String(this.interactionDisabled))}connectedCallback(){if(!this.el.hasAttribute("role"))this.el.setAttribute("role","tab");this.el.setAttribute("aria-selected",String(this.active));if(this.interactionDisabled)this.el.setAttribute("aria-disabled","true");if(!this.el.hasAttribute("tabindex")){this.el.setAttribute("tabindex",this.active?"0":"-1")}}async focusEl(){if(this.disabled)return;this.el.focus()}resolveIndex(){const a=this.el.parentElement;if(!a)return-1;const i=[];for(const t of Array.from(a.children)){if(t.tagName==="MD-NAVIGATION-TAB"){i.push(t)}}return i.indexOf(this.el)}emitActivation(){const a=this.resolveIndex();this.mdTabClick.emit({index:a})}maybeFollowHref(){const a=s(this.href);if(!a)return;if(typeof window==="undefined")return;if(this.target==="_blank"){window.open(a,"_blank",r)}else if(this.target){window.open(a,this.target,r)}else{window.location.assign(a)}}resolveLabelVisibility(){return this.labelBehavior}formatBadgeValue(){const a=(this.badgeValue??"").trim();if(!a)return"";if(this.badgeMax>0){const i=Number(a);if(!Number.isNaN(i)&&Number.isFinite(i)&&i>this.badgeMax){return`${this.badgeMax}+`}}return a}renderIcon(){const a=this.active&&(this.activeIcon||this.icon);const i=this.active;const n=a?this.activeIcon||this.icon:this.icon;return t("span",{class:"md-navigation-tab__icon-container",part:"icon-container"},t("span",{class:{"md-navigation-tab__icon":true,"material-symbols-outlined":true,"md-navigation-tab__icon--filled":i},part:"icon","aria-hidden":"true"},this.active?t("slot",{name:"active-icon"},n):t("slot",{name:"icon"},n)),this.renderBadge())}renderBadge(){if(!this.badge&&!this.badgeValue)return null;const a=this.formatBadgeValue();const i=a.length>0;return t("span",{class:{"md-navigation-tab__badge":true,"md-navigation-tab__badge--small":!i,"md-navigation-tab__badge--large":i},part:"badge",role:"status","aria-label":i?`${a} new`:"New"},i?a:"")}renderLabel(){const a=this.resolveLabelVisibility();if(a==="none")return null;return t("span",{class:{"md-navigation-tab__label":true,"md-navigation-tab__label--hidden":a==="selected"&&!this.active},part:"label"},t("slot",null,this.label))}render(){const a=this.label||undefined;const i=this.resolveLabelVisibility();const e=i==="none"?a:undefined;return t(n,{key:"1e813ec1dff85462d7936f43f4cb6b8063b21a9d",class:{"md-navigation-tab":true,"md-navigation-tab--active":this.active,"md-navigation-tab--disabled":this.disabled,"md-navigation-tab--soft-disabled":this.softDisabled&&!this.disabled,"md-navigation-tab--label-hidden":i==="none"},"aria-label":e,onClick:this.handleClick,onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur},t("md-ripple",{key:"e82500d6252f6396ab2df765552c3d7f99d03ef6",disabled:this.interactionDisabled}),t("span",{key:"e8a2a889a6cabfaea71d8867ebba3596a5c71936",class:"md-navigation-tab__state-layer",part:"state-layer","aria-hidden":"true","data-focus-visible":this.focusVisible?"true":null}),t("span",{key:"823780d7fc34e8527e8c83604d9659e1299427a3",class:"md-navigation-tab__container",part:"container"},t("span",{key:"a86bd4d59cf9597e971a3a72faa35d9313d61d45",class:{"md-navigation-tab__indicator":true,"md-navigation-tab__indicator--active":this.active},part:"indicator","aria-hidden":"true"}),this.renderIcon(),this.renderLabel()))}get el(){return e(this)}static get watchers(){return{active:[{onActiveChange:0}],disabled:[{onDisabledChange:0}],softDisabled:[{onSoftDisabledChange:0}]}}};d.style=l();export{d as md_navigation_tab};
|
|
2
|
+
//# sourceMappingURL=p-ab568d1c.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,h as e,H as o,
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,h as e,H as o,g as s}from"./p-WmvQpZnM.js";const a=()=>`:host{display:contents}`;const r=class{constructor(e){t(this,e);this.presentational=false}render(){return e(o,{key:"4fb0c0f306120df793e2ea1939ffa4e782180eb8",class:"md-table-foot",role:this.presentational?"presentation":"rowgroup","data-md-rowgroup":"foot"},e("slot",{key:"3a4c18e3bf84c50c5a93ab9473dd3bedb2d8df3e",onSlotchange:()=>this.el.dispatchEvent(new CustomEvent("mdRowgroupSlotChange",{bubbles:true}))}))}get el(){return s(this)}};r.style=a();export{r as md_table_foot};
|
|
2
|
+
//# sourceMappingURL=p-adf8a415.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,c as i,h as t,H as s,g as a}from"./p-WmvQpZnM.js";import{L as r}from"./p-DnKDoE8K.js";const n=()=>`:host{--_container-color:var( --md-search-container-color, var(--md-sys-color-surface-container-high, #ECE6F0) );--_container-shape:var( --md-search-container-shape, var(--md-sys-shape-corner-full, 9999px) );--_container-height:var(--md-search-container-height, max(40px, calc(56px + var(--md-sys-density-scale, 0) * 4px)));--_resting-corner-shape:min( var(--_container-shape), calc(var(--_container-height) / 2) );--_docked-panel-shape:var(--md-search-docked-panel-shape, var(--md-sys-shape-corner-large, 16px));--_divided-fullscreen-bar-height:var(--md-search-divided-fullscreen-bar-height, max(48px, calc(72px + var(--md-sys-density-scale, 0) * 4px)));--_leading-icon-label-gap:var(--md-search-leading-icon-label-gap, 4px);--_trailing-icon-label-gap:var(--md-search-trailing-icon-label-gap, 4px);--_icon-button-size:var(--md-search-icon-button-size, max(32px, calc(48px + var(--md-sys-density-scale, 0) * 4px)));--_container-min-inline-size:var(--md-search-container-min-inline-size, 360px);--_container-max-inline-size:var(--md-search-container-max-inline-size, 720px);--_container-padding-inline:var(--md-search-container-padding-inline, 0px);--_container-padding-inline-focused:var( --md-search-container-padding-inline-focused, var(--_container-padding-inline) );--_leading-padding-inline:var(--md-search-leading-padding-inline, 4px);--_trailing-padding-inline:var(--md-search-trailing-padding-inline, 8px);--_expand-inset:var(--md-search-expand-inset, 24px);--_expand-inset-focused:var(--md-search-expand-focused-inset, 12px);--_expand-duration:var( --md-search-expand-duration, var(--md-sys-motion-duration-medium4, 400ms) );--_expand-easing:var( --md-search-expand-easing, cubic-bezier(0.34, 1.56, 0.64, 1) );--_input-color:var( --md-search-input-color, var(--md-sys-color-on-surface, #1D1B20) );--_input-font-family:var( --md-search-input-font-family, var(--md-sys-typescale-body-large-font-family, Roboto, sans-serif) );--_input-font-size:var( --md-search-input-font-size, max(13px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px)) );--_input-line-height:var( --md-search-input-line-height, var(--md-sys-typescale-body-large-line-height, 24px) );--_input-font-weight:var( --md-search-input-font-weight, var(--md-sys-typescale-body-large-font-weight, 400) );--_input-letter-spacing:var( --md-search-input-letter-spacing, var(--md-sys-typescale-body-large-letter-spacing, 0.5px) );--_placeholder-color:var( --md-search-placeholder-color, var(--md-sys-color-on-surface-variant, #49454F) );--_leading-icon-color:var( --md-search-leading-icon-color, var(--md-sys-color-on-surface, #1D1B20) );--_trailing-icon-color:var( --md-search-trailing-icon-color, var( --md-search-icon-color, var(--md-sys-color-on-surface-variant, #49454F) ) );--_icon-size:var(--md-search-icon-size, max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px)));--_loading-color:var( --md-search-loading-color, var(--md-sys-color-primary, #6750A4) );--_open-glyph-mirror:1;--_contained-background-color:var( --md-search-contained-background-color, var(--md-sys-color-surface-container-low, #F7F2FA) );--_container-elevation-level:0px 0px 0px 0px transparent;--_container-elevation:var( --md-search-container-elevation, var(--_container-elevation-level) );--_state-layer-color:var( --md-search-state-layer-color, var(--md-sys-color-on-surface, #1D1B20) );--_hover-state-layer-opacity:var( --md-search-hover-state-layer-opacity, var(--md-sys-state-hover-state-layer-opacity, 0.08) );--_pressed-state-layer-opacity:var( --md-search-pressed-state-layer-opacity, 0.1 );--_focus-indicator-color:var( --md-search-focus-indicator-color, var(--md-sys-color-secondary, #625B71) );--_focus-indicator-thickness:var(--md-search-focus-indicator-thickness, 3px);--_focus-indicator-offset:var(--md-search-focus-indicator-offset, 2px);--_avatar-size:var(--md-search-avatar-size, 40px);--_panel-min-block-size:var(--md-search-panel-min-block-size, 0px);--_panel-max-block-size:var(--md-search-panel-max-block-size, min(400px, 60vh));--_max-block-size:var(--md-search-max-block-size);--_panel-offset:var( --md-search-panel-offset, calc(var(--_focus-indicator-offset) + var(--_focus-indicator-thickness) + 3px) );--_bar-fullscreen-color:var( --md-search-bar-fullscreen-color, var(--md-sys-color-surface-container-low, #F7F2FA) );--_fullscreen-results-color:var( --md-search-fullscreen-results-color, var(--md-sys-color-surface-container-low, #F7F2FA) );--_divider-color:var( --md-search-divider-color, var(--md-sys-color-outline, #79747E) );--_divider-thickness:var(--md-search-divider-thickness, 1px);--_fullscreen-bar-offset-block-start:var( --md-search-fullscreen-bar-offset-block-start, max(16px, env(safe-area-inset-block-start, 0px)) );--_fullscreen-bar-offset-inline:var( --md-search-fullscreen-bar-offset-inline, max(0px, env(safe-area-inset-inline-start, 0px)) );--_fullscreen-bar-panel-gap:var(--md-search-fullscreen-bar-panel-gap, 0px);--_panel-padding-block-start:var(--md-search-panel-padding-block-start, 0px);--_motion-duration:var( --md-search-panel-motion-duration, var(--md-sys-motion-duration-medium2, 250ms) );--_motion-easing:var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));--_fs-expand-duration:var( --md-search-fullscreen-expand-duration, var(--md-sys-motion-duration-medium2, 300ms) );--_fs-expand-easing:var( --md-search-fullscreen-expand-easing, var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)) );--_fs-collapse-duration:var( --md-search-fullscreen-collapse-duration, var(--md-sys-motion-duration-medium2, 300ms) );--_fs-collapse-easing:var( --md-search-fullscreen-collapse-easing, var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)) );display:block;position:relative;inline-size:100%;min-inline-size:var(--_container-min-inline-size);max-inline-size:var(--_container-max-inline-size);margin-inline:auto;min-block-size:var(--_container-height);font-family:var(--_input-font-family);color:var(--_input-color);box-sizing:border-box}:host([hidden]){display:none}:host(.md-search--trigger-icon.md-search--closed){display:inline-flex;flex-direction:column;align-items:center;justify-content:center;inline-size:fit-content;block-size:fit-content;min-inline-size:0;max-inline-size:none;min-block-size:0;margin-inline:0;overflow:visible}:host(.md-search--trigger-icon.md-search--closed) .md-search__panel,:host(.md-search--trigger-icon.md-search--closed) .md-search__inset-probe{display:none}:host(.md-search--trigger-icon.md-search--open) .md-search__trigger{display:none}.md-search__trigger{display:contents}:host(.md-search--trigger-icon) .md-search__trigger-button{--md-icon-button-container-width:max(32px, calc(48px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-container-height:max(32px, calc(48px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));--md-icon-button-icon-color:var( --md-search-leading-icon-color, var(--md-sys-color-on-surface, #1d1b20) )}:host(.md-search--contained.md-search--docked){--_panel-offset:var( --md-search-contained-docked-panel-offset, calc(var(--_focus-indicator-offset) + var(--_focus-indicator-thickness) + 3px) )}:host(.md-search--full-screen){--_expand-inset:0px;--_expand-inset-focused:0px}:host(.md-search--full-width){--_expand-inset:0px;--_expand-inset-focused:0px}:host(.md-search--contained.md-search--full-screen){--_fullscreen-bar-offset-inline:var( --md-search-fullscreen-bar-offset-inline, max(8px, env(safe-area-inset-inline-start, 0px)) );--_fullscreen-bar-panel-gap:var( --md-search-fullscreen-bar-panel-gap, calc(var(--_focus-indicator-offset) + var(--_focus-indicator-thickness) + 3px) )}:host(.md-search--divided.md-search--full-screen.md-search--open){--_container-height:var(--_divided-fullscreen-bar-height);--_fullscreen-bar-offset-block-start:max(0px, env(safe-area-inset-block-start, 0px));--_fullscreen-bar-offset-inline:max(0px, env(safe-area-inset-inline-start, 0px))}:host(.md-search--full-screen.md-search--open){position:fixed;inset:0;display:block;inline-size:100%;block-size:100dvh;max-inline-size:none;min-inline-size:0;margin:0;min-block-size:0;z-index:var(--md-sys-z-index-modal, 1300);box-sizing:border-box}:host(.md-search--trigger-icon.md-search--full-screen.md-search--open){display:block;inline-size:100%;block-size:100dvh;max-inline-size:none;min-inline-size:0;min-block-size:0;align-items:stretch;justify-content:flex-start}:host(.md-search--full-screen.md-search--open) .md-search__bar{position:fixed;inset-block-start:var(--_fullscreen-bar-offset-block-start);inset-inline:var(--_fullscreen-bar-offset-inline);inline-size:auto;margin-inline:0;z-index:2}:host(.md-search--full-screen.md-search--open) .md-search__bar--focus-ring{z-index:2}:host(.md-search--full-screen.md-search--open) .md-search__panel--full-screen{position:fixed;inset:0;margin:0;padding-block-start:calc( var(--_fullscreen-bar-offset-block-start) + var(--_container-height) + var(--_fullscreen-bar-panel-gap) + var(--_panel-padding-block-start) );padding-inline:0;max-block-size:var(--_max-block-size, 100dvh);z-index:1;background-color:var(--_fullscreen-results-color)}:host(.md-search--contained.md-search--open) .md-search__leading-button{margin-inline-start:0}.md-search__bar{position:relative;display:flex;align-items:center;box-sizing:border-box;gap:0;inline-size:calc(100% - calc(var(--_expand-inset) * 2));min-inline-size:0;max-inline-size:100%;margin-inline:auto;block-size:var(--_container-height);padding-inline:var(--_container-padding-inline);background-color:var(--_container-color);border-radius:var(--_container-shape);box-shadow:var(--_container-elevation);cursor:text;overflow:hidden;transition:inline-size var(--_expand-duration) var(--_expand-easing), background-color var(--_motion-duration) var(--_motion-easing), box-shadow var(--_motion-duration) var(--_motion-easing), border-radius var(--_motion-duration) var(--_motion-easing)}:host(.md-search--elevation-0){--_container-elevation-level:0px 0px 0px 0px transparent}:host(.md-search--elevation-1){--_container-elevation-level:var(--md-sys-elevation-1)}:host(.md-search--elevation-2){--_container-elevation-level:var(--md-sys-elevation-2)}:host(.md-search--elevation-3){--_container-elevation-level:var(--md-sys-elevation-3)}:host(.md-search--elevation-4){--_container-elevation-level:var(--md-sys-elevation-4)}:host(.md-search--elevation-5){--_container-elevation-level:var(--md-sys-elevation-5)}.md-search__bar--focused,:host(.md-search--open) .md-search__bar{inline-size:calc(100% - calc(var(--_expand-inset-focused) * 2));padding-inline:var(--_container-padding-inline-focused)}:host(.md-search--disabled) .md-search__bar{cursor:not-allowed;opacity:0.38}:host(.md-search--full-screen) .md-search__bar{transition:opacity var(--_fs-collapse-duration) var(--_fs-collapse-easing), transform var(--_fs-collapse-duration) var(--_fs-collapse-easing), background-color var(--_motion-duration) var(--_motion-easing), border-radius var(--_motion-duration) var(--_motion-easing)}:host(.md-search--full-screen.md-search--open) .md-search__bar{opacity:0;transform:translateY(30px);pointer-events:none}:host(.md-search--full-screen.md-search--open.md-search--panel-content) .md-search__bar{opacity:1;transform:translateY(0);pointer-events:auto;transition:opacity var(--_fs-expand-duration) var(--_fs-expand-easing), transform var(--_fs-expand-duration) var(--_fs-expand-easing), background-color var(--_motion-duration) var(--_motion-easing), border-radius var(--_motion-duration) var(--_motion-easing)}:host(.md-search--divided.md-search--full-screen.md-search--open) .md-search__bar{border-radius:0;background-color:var(--_bar-fullscreen-color);padding-inline:var(--_container-padding-inline-focused)}:host(.md-search--contained.md-search--full-screen.md-search--open) .md-search__bar{border-radius:var(--_container-shape);background-color:var(--_container-color);padding-inline:var(--_container-padding-inline-focused)}.md-search__bar>md-ripple{position:absolute;inset:0;border-radius:inherit;pointer-events:none;--md-ripple-grow-duration:var(--_expand-duration);--md-ripple-grow-easing:var(--_expand-easing)}.md-search__inset-probe{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:max(0px, calc(var(--_expand-inset) - var(--_expand-inset-focused)));block-size:0;visibility:hidden;pointer-events:none;opacity:0}.md-search__a11y-status{position:absolute;inline-size:1px;block-size:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.md-search__state-layer{position:absolute;inset:0;border-radius:inherit;background-color:var(--_state-layer-color);opacity:0;pointer-events:none;transition:opacity var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}.md-search__bar:hover .md-search__state-layer{opacity:var(--_hover-state-layer-opacity)}.md-search__bar--focus-ring .md-search__state-layer{opacity:0}.md-search__bar--focus-ring{box-shadow:var(--_container-elevation), 0 0 0 var(--_focus-indicator-offset) var(--_container-color), 0 0 0 calc(var(--_focus-indicator-offset) + var(--_focus-indicator-thickness)) var(--_focus-indicator-color)}.md-search__bar:active .md-search__state-layer{opacity:var(--_pressed-state-layer-opacity)}.md-search__bar:hover .md-search__input::placeholder,.md-search__bar:active .md-search__input::placeholder{color:var(--_placeholder-color)}:host(.md-search--disabled) .md-search__state-layer{display:none}.md-search__leading,.md-search__trailing{display:inline-flex;align-items:center;gap:var(--md-sys-spacing-gap-xs, 4px);flex:0 0 auto;position:relative;z-index:1;box-sizing:border-box}.md-search__leading{padding-inline-start:var(--_leading-padding-inline);padding-inline-end:var(--_leading-icon-label-gap)}.md-search__trailing{margin-inline-start:auto;padding-inline-start:var(--_trailing-icon-label-gap);padding-inline-end:var(--_trailing-padding-inline)}.md-search__leading .md-search__icon,.md-search__leading-button{color:var(--_leading-icon-color)}.md-search__trailing .md-search__icon{color:var(--_trailing-icon-color)}.md-search__icon{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');font-size:var(--_icon-size);inline-size:var(--_icon-size);block-size:var(--_icon-size);line-height:1;font-weight:normal;font-style:normal;letter-spacing:normal;text-transform:none;white-space:nowrap;overflow-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;pointer-events:none;user-select:none}.md-search__icon-button{appearance:none;background:transparent;border:0;margin:0;padding:0;cursor:pointer;inline-size:var(--_icon-button-size);block-size:var(--_icon-button-size);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--_trailing-icon-color);position:relative;transition:background-color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}.md-search__icon-button:hover{background-color:color-mix( in srgb, var(--_trailing-icon-color) 8%, transparent )}.md-search__loading{--md-loading-indicator-size:var(--_icon-button-size);--md-loading-indicator-shape-size:var(--_icon-size);--md-loading-indicator-color:var(--_loading-color);flex:0 0 auto;pointer-events:none}.md-search__trailing-morph{position:relative;flex:0 0 auto;inline-size:var(--_icon-button-size);block-size:var(--_icon-button-size)}.md-search__trailing-morph>.md-search__loading,.md-search__trailing-morph>.md-search__clear{position:absolute;inset:0;margin:auto;transition:opacity var(--md-sys-motion-duration-medium1, 250ms) var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)), transform var(--md-sys-motion-duration-medium1, 250ms) var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1))}.md-search__trailing-morph>.md-search__clear{opacity:1;transform:scale(1) rotate(0deg)}.md-search__trailing-morph>.md-search__loading{opacity:0;transform:scale(0.6) rotate(-90deg)}.md-search__trailing-morph--loading>.md-search__clear{opacity:0;transform:scale(0.6) rotate(90deg);pointer-events:none}.md-search__trailing-morph--loading>.md-search__loading{opacity:1;transform:scale(1) rotate(0deg)}.md-search__voice{flex:0 0 auto;color:var(--_trailing-icon-color)}.md-search__voice .md-search__icon{position:relative;z-index:1}.md-search__voice--listening{color:var(--md-sys-color-primary, #6750A4)}.md-search__voice--listening::before{content:'';position:absolute;inset:0;border-radius:50%;background-color:color-mix( in srgb, var(--md-sys-color-primary, #6750A4) 16%, transparent );animation:md-search-voice-pulse 1.4s var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)) infinite}@keyframes md-search-voice-pulse{0%,100%{transform:scale(0.82);opacity:0.55}50%{transform:scale(1.12);opacity:0.2}}.md-search__icon-button:focus-visible{outline:var(--_focus-indicator-thickness) solid var(--_focus-indicator-color);outline-offset:calc(-1 * var(--_focus-indicator-thickness))}.md-search__leading-button{appearance:none;background:transparent;border:0;margin:0;padding:0;display:inline-flex;align-items:center;justify-content:center;position:relative;inline-size:var(--_icon-button-size);block-size:var(--_icon-button-size);border-radius:50%;cursor:text;pointer-events:none;transition:background-color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-search--open) .md-search__leading-button{cursor:pointer;pointer-events:auto}.md-search__leading-state-layer{position:absolute;inset:0;border-radius:inherit;background-color:var(--_leading-icon-color);opacity:0;pointer-events:none;transition:opacity var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-search--open) .md-search__leading-button:hover .md-search__leading-state-layer{opacity:var(--md-sys-state-hover-state-layer-opacity, 0.08)}:host(.md-search--open) .md-search__leading-button:active .md-search__leading-state-layer{opacity:var(--md-sys-state-pressed-state-layer-opacity, 0.12)}.md-search__leading-button:focus-visible{outline:var(--_focus-indicator-thickness) solid var(--_focus-indicator-color);outline-offset:calc(-1 * var(--_focus-indicator-thickness));border-radius:50%}.md-search__leading-button:disabled{cursor:not-allowed}.md-search__leading-button .md-search__icon{position:absolute;inset:0;margin:auto;display:inline-flex;align-items:center;justify-content:center;inline-size:var(--_icon-size);block-size:var(--_icon-size);transition:opacity var(--_motion-duration) var(--_motion-easing), transform var(--_motion-duration) var(--_motion-easing)}.md-search__icon--resting{opacity:1;transform:rotate(0deg) scale(1)}:host(.md-search--open) .md-search__icon--resting{opacity:0;transform:rotate(-90deg) scale(0.6)}.md-search__icon--open{opacity:0;transform:rotate(90deg) scale(0.6) scaleX(var(--_open-glyph-mirror))}:host(.md-search--open) .md-search__icon--open{opacity:1;transform:rotate(0deg) scale(1) scaleX(var(--_open-glyph-mirror))}:host([dir="rtl"]),:host-context([dir="rtl"]){--_open-glyph-mirror:-1}::slotted([slot='leading']),::slotted([slot='trailing']){display:inline-flex;align-items:center}::slotted(md-avatar[slot='trailing']),::slotted([slot='trailing'][role='img']),::slotted(img[slot='trailing']){inline-size:var(--_avatar-size);block-size:var(--_avatar-size)}.md-search__input{flex:1 1 auto;min-inline-size:0;border:0;outline:0;background:transparent;color:var(--_input-color);font-family:var(--_input-font-family);font-size:var(--_input-font-size);font-weight:var(--_input-font-weight);line-height:var(--_input-line-height);letter-spacing:var(--_input-letter-spacing);padding-inline:0;position:relative;z-index:1}.md-search__input::placeholder{color:var(--_placeholder-color);opacity:1;font-family:var(--_input-font-family);font-size:var(--_input-font-size);font-weight:var(--_input-font-weight);line-height:var(--_input-line-height);letter-spacing:var(--_input-letter-spacing)}.md-search__input:disabled{cursor:not-allowed}.md-search__input::-webkit-search-cancel-button,.md-search__input::-webkit-search-decoration{display:none}.md-search__panel{visibility:hidden;opacity:0;pointer-events:none;box-sizing:border-box;background-color:transparent;color:var(--_input-color);display:flex;flex-direction:column;overflow:hidden;min-block-size:0;transition:opacity var(--_motion-duration) var(--_motion-easing), transform var(--_motion-duration) var(--_motion-easing), visibility 0s linear var(--_motion-duration)}.md-search__panel-body{flex:1 1 auto;min-block-size:0;display:flex;flex-direction:column}.md-search__results-host{display:flex;flex-direction:column;flex:1 1 auto;min-block-size:0;overflow:hidden}.md-search__results-host .md-search__results-scroll{flex:1 1 auto;min-block-size:0}.md-search__results-scroll{flex:1 1 auto;min-block-size:0;overflow-block:auto;overflow-inline:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--md-sys-color-outline-variant, #cac4d0) transparent}.md-search__results-scroll::-webkit-scrollbar{inline-size:8px}.md-search__results-scroll::-webkit-scrollbar-thumb{background-color:var(--md-sys-color-outline-variant, #cac4d0);border-radius:4px}.md-search__empty{flex:0 0 auto;margin:0;padding-block:var(--md-search-empty-padding-block, var(--md-sys-spacing-inset-xl, 24px));padding-inline:var(--md-search-empty-padding-inline, var(--md-sys-spacing-inset-lg, 16px));text-align:center;color:var( --md-search-empty-color, var(--md-sys-color-on-surface-variant, #49454f) );font-family:var( --md-sys-typescale-body-medium-font, Roboto, system-ui, sans-serif );font-size:var(--md-sys-typescale-body-medium-size, 14px);font-weight:var(--md-sys-typescale-body-medium-weight, 400);line-height:var(--md-sys-typescale-body-medium-line-height, 20px);letter-spacing:var(--md-sys-typescale-body-medium-tracking, 0.25px)}.md-search__panel-body--empty .md-search__results-host{display:none}.md-search__panel--docked{position:absolute;inset-inline:var(--_expand-inset-focused);inset-block-start:calc(var(--_container-height) + var(--_panel-offset));block-size:fit-content;min-block-size:var(--_panel-min-block-size);max-block-size:var(--_max-block-size, var(--_panel-max-block-size));transform:translateY(-4px);z-index:var(--md-sys-z-index-popup, 1100)}.md-search__panel--docked.md-search__panel--open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);transition:opacity var(--_motion-duration) var(--_motion-easing), transform var(--_motion-duration) var(--_motion-easing), visibility 0s}.md-search__panel--full-screen{opacity:0;transform:translateY(30px);will-change:opacity, transform;transition:opacity var(--_fs-collapse-duration) var(--_fs-collapse-easing), transform var(--_fs-collapse-duration) var(--_fs-collapse-easing), visibility 0s linear var(--_fs-collapse-duration)}.md-search__panel--full-screen.md-search__panel--open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);transition:opacity var(--_fs-expand-duration) var(--_fs-expand-easing), transform var(--_fs-expand-duration) var(--_fs-expand-easing), visibility 0s}.md-search__divider{display:none;block-size:var(--_divider-thickness);background-color:var(--_divider-color);flex:0 0 auto}:host(.md-search--divided.md-search--panel-content) .md-search__divider{display:block}:host(.md-search--divided.md-search--full-screen.md-search--open.md-search--panel-content) .md-search__bar{border-radius:0}:host(.md-search--divided) .md-search__panel--docked{inset-block-start:var(--_container-height)}:host(.md-search--divided.md-search--docked) .md-search__bar{transition:inline-size var(--_expand-duration) var(--_expand-easing), background-color var(--_motion-duration) var(--_motion-easing), box-shadow var(--_motion-duration) var(--_motion-easing)}:host(.md-search--divided.md-search--docked.md-search--open.md-search--panel-content) .md-search__bar{border-radius:var(--_resting-corner-shape) var(--_resting-corner-shape) 0 0;background-color:var(--_container-color);overflow:hidden}:host(.md-search--divided.md-search--docked.md-search--open.md-search--panel-content) .md-search__panel--docked{background-color:var(--_container-color);border-radius:0 0 var(--_resting-corner-shape) var(--_resting-corner-shape);overflow:hidden}:host(.md-search--contained.md-search--docked.md-search--open.md-search--panel-content) .md-search__panel--docked{border-radius:var(--_docked-panel-shape);background-color:var(--_container-color)}::slotted([slot='results']){display:block;--md-list-container-color:transparent;--md-list-item-container-color:transparent;--md-list-padding-block:0px}:host(.md-search--disabled) .md-search__input,:host(.md-search--disabled) .md-search__icon,:host(.md-search--disabled) .md-search__icon-button,:host(.md-search--disabled) .md-search__leading-button{pointer-events:none;color:color-mix( in srgb, var(--md-sys-color-on-surface, #1D1B20) 38%, transparent )}@media (prefers-reduced-motion: reduce){.md-search__bar,.md-search__panel,.md-search__state-layer,.md-search__icon-button,.md-search__leading-button,.md-search__leading-state-layer,.md-search__leading-button .md-search__icon,.md-search__trailing-morph>.md-search__loading,.md-search__trailing-morph>.md-search__clear{transition-duration:0.01ms !important}.md-search__voice--listening::before{animation:none}}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}`;const o=class{constructor(t){e(this,t);this.mdInput=i(this,"mdInput",7);this.mdSearch=i(this,"mdSearch",7);this.mdSubmit=i(this,"mdSubmit",7);this.mdChange=i(this,"mdChange",7);this.mdOpen=i(this,"mdOpen",7);this.mdClose=i(this,"mdClose",7);this.mdClear=i(this,"mdClear",7);this.mdVoice=i(this,"mdVoice",7);this.mdLeadingIconClick=i(this,"mdLeadingIconClick",7);this.mdTrailingIconClick=i(this,"mdTrailingIconClick",7);this.variant="contained";this.layout="full-screen";this.triggerIcon="search";this.triggerFor="";this.fullWidth=false;this.value="";this.placeholder="Search";this.open=false;this.disabled=false;this.elevation=0;this.leadingIcon="search";this.showClearButton=true;this.voiceSearch=false;this.escapeCloses=true;this.dismissOnOutsideClick=true;this.scrollShadow=true;this.maxBlockSize="";this.inputAriaLabel="";this.initialFocus="auto";this.announceResults=true;this.resultsLabel="{count} results available";this.noResultsLabel="No results available";this.loading=false;this.debounce=0;this.throttle=0;this.loadingLabel="Searching";this.density=0;this.focused=false;this.hasSlottedLeading=false;this.hasSlottedTrailing=false;this.hasSlottedTrigger=false;this.resultsStatus="";this.barExpanded=false;this.panelVisible=false;this.showFocusRing=false;this.listening=false;this.loadingMorphMounted=false;this.loadingMorphIn=false;this.keyboardModality=false;this.previousFocus=null;this.valueOnFocus="";this.pendingFullScreenReveal=false;this.pendingSearchValue=null;this.lastEmittedSearch=null;this.wiredTrigger=null;this.handleExternalTriggerClick=e=>{if(this.disabled)return;e.stopPropagation();this.open=!this.open};this.handleTriggerActivate=()=>{if(this.disabled)return;if(!this.open)this.open=true};this.handleTriggerClick=e=>{e.stopPropagation();this.handleTriggerActivate()};this.handleTriggerKeyDown=e=>{if(e.key!=="Enter"&&e.key!==" ")return;e.preventDefault();this.handleTriggerActivate()};this.handleBarClick=e=>{if(this.disabled)return;const i=e.target;if(i.closest('[part="trailing"]'))return;if(!this.open)this.open=true;this.input?.focus()};this.handleLeadingClick=e=>{if(this.disabled)return;const i=this.hasSlottedLeading;const t=!i&&this.open;if(!i&&!t)return;this.mdLeadingIconClick.emit({value:this.value,open:this.open});if(t){e.stopPropagation();this.open=false}};this.handleTrailingClick=e=>{if(this.disabled)return;const i=typeof e.composedPath==="function"?e.composedPath():[];const t=i.length?i:[e.target];const s=t.some((e=>{const i=e?.classList;return!!i?.contains?.("md-search__clear")||!!i?.contains?.("md-search__voice")}));if(s)return;const a=this.trailingSlotEl?.assignedElements?.()??[];if(a.length===0)return;const r=t[0];const n=a.some((e=>e===r||(r?e.contains(r):false)));if(!n)return;e.stopPropagation();this.mdTrailingIconClick.emit({value:this.value,open:this.open})};this.handleClearClick=e=>{e.stopPropagation();if(this.disabled)return;this.value="";this.input?.focus();this.mdInput.emit({value:""});this.pendingSearchValue="";this.flushSearch();this.mdClear.emit()};this.handleVoiceClick=e=>{e.stopPropagation();if(this.disabled)return;if(this.listening){this.stopVoice()}else{this.startVoice()}};this.handleVoiceResult=e=>{let i="";let t=false;const s=e.results;for(let e=0;e<s.length;e++){i+=s[e][0].transcript;if(s[e].isFinal)t=true}i=i.replace(/^\s+/,"");this.value=i;if(!this.open)this.open=true;this.mdInput.emit({value:i});this.scheduleSearch(i);this.mdVoice.emit({value:i,final:t});if(t){this.pendingSearchValue=i;this.flushSearch();this.stopVoice()}};this.handleVoiceEnd=()=>{this.listening=false;this.recognition=undefined};this.handleInput=e=>{const i=e.target.value;this.value=i;if(!this.open&&!this.disabled)this.open=true;this.mdInput.emit({value:i});this.scheduleSearch(i)};this.trackKeyboardModality=()=>{this.keyboardModality=true};this.trackPointerModality=()=>{this.keyboardModality=false};this.handleInputFocus=()=>{this.focused=true;this.showFocusRing=this.keyboardModality;this.valueOnFocus=this.value};this.handleInputBlur=()=>{this.focused=false;this.showFocusRing=false;if(this.value!==this.valueOnFocus){this.mdChange.emit({value:this.value})}};this.handleInputKeyDown=e=>{if(this.disabled)return;if(!this.open){if(e.key==="Enter"||e.key===" "){e.preventDefault();this.open=true}return}if(e.key==="Enter"){this.pendingSearchValue=this.value;this.flushSearch();this.mdSubmit.emit({value:this.value})}}}async show(){this.open=true}async close(){this.open=false}async toggle(){this.open=!this.open}async focusInput(){this.input?.focus()}connectedCallback(){if(typeof document!=="undefined"){document.addEventListener("keydown",this.trackKeyboardModality,true);document.addEventListener("pointerdown",this.trackPointerModality,true)}}componentWillLoad(){this.barExpanded=this.open;this.panelVisible=this.open;this.loadingMorphMounted=this.loading;this.loadingMorphIn=this.loading;this.lastEmittedSearch=this.value.trim();this.updateResultsStatus()}componentDidLoad(){this.wireExternalTrigger();const e=this.el.shadowRoot;if(!e)return;const i=e.querySelector('slot[name="leading"]');const t=e.querySelector('slot[name="trailing"]');this.trailingSlotEl=t??undefined;i?.addEventListener("slotchange",(()=>{this.hasSlottedLeading=i.assignedElements().length>0}));t?.addEventListener("slotchange",(()=>{this.hasSlottedTrailing=t.assignedElements().length>0}));const s=e.querySelector('slot[name="results"]');s?.addEventListener("slotchange",(()=>this.updateResultsStatus()));const a=e.querySelector('slot[name="trigger"]');a?.addEventListener("slotchange",(()=>{this.hasSlottedTrigger=a.assignedElements().length>0}));this.hasSlottedTrigger=(a?.assignedElements().length??0)>0;this.measureRippleExtend();this.observeHostResize();if(this.open)this.applyOpenSideEffects()}onExternalTriggerChange(){this.wireExternalTrigger()}disconnectedCallback(){this.unwireExternalTrigger();this.clearCloseTimer();this.cancelReveal();this.clearSearchTimers();this.stopVoice();this.clearLoadingMorphTimers();this.removeOutsideClickHandler();this.resizeObserver?.disconnect();this.resizeObserver=undefined;if(typeof document!=="undefined"){document.removeEventListener("keydown",this.trackKeyboardModality,true);document.removeEventListener("pointerdown",this.trackPointerModality,true)}if(this.layout==="full-screen"&&typeof document!=="undefined"){document.body.style.removeProperty("overflow")}}get effectiveTrigger(){if(this.hasExternalTrigger)return"icon";if(this.trigger!=null)return this.trigger;return this.layout==="full-screen"?"icon":"bar"}get hasExternalTrigger(){return Boolean(this.triggerFor||this.triggerElement)}get usesIconTrigger(){return this.effectiveTrigger==="icon"}resolveExternalTrigger(){if(this.triggerElement)return this.triggerElement;if(!this.triggerFor||typeof document==="undefined")return null;const e=this.triggerFor.trim();if(!e)return null;try{return document.querySelector(e)}catch{if(typeof console!=="undefined"){console.warn("[md-search] `trigger-for` is not a valid selector:",this.triggerFor)}return null}}wireExternalTrigger(){const e=this.resolveExternalTrigger();if(e===this.wiredTrigger){this.syncExternalTriggerAria();return}this.unwireExternalTrigger();if(!e)return;e.addEventListener("click",this.handleExternalTriggerClick);this.wiredTrigger=e;this.syncExternalTriggerAria()}unwireExternalTrigger(){this.wiredTrigger?.removeEventListener("click",this.handleExternalTriggerClick);this.wiredTrigger?.removeAttribute("aria-expanded");this.wiredTrigger=null}syncExternalTriggerAria(){const e=this.wiredTrigger;if(!e)return;e.setAttribute("aria-haspopup","dialog");e.setAttribute("aria-expanded",String(this.open))}get showBar(){return!this.usesIconTrigger||this.barExpanded}measureRippleExtend(){if(!this.showBar)return;const e=this.rippleEl;if(!e)return;if(this.layout==="full-screen"&&typeof window!=="undefined"){const i=this.el.shadowRoot?.querySelector(".md-search__bar");const t=i?.getBoundingClientRect().width??0;const s=window.innerWidth-t;if(s>1){e.style.setProperty("--md-ripple-extend-inline",`${s}px`);return}}const i=this.insetProbeEl;if(!i)return;const t=i.getBoundingClientRect().width;if(!Number.isFinite(t)||t<=0){e.style.removeProperty("--md-ripple-extend-inline");return}e.style.setProperty("--md-ripple-extend-inline",`${t}px`)}observeHostResize(){if(typeof ResizeObserver==="undefined")return;this.resizeObserver=new ResizeObserver((()=>{if(this.barExpanded)return;this.measureRippleExtend()}));this.resizeObserver.observe(this.el)}onOpenChange(e,i){if(e===i)return;this.clearCloseTimer();this.cancelReveal();if(e){this.barExpanded=true;if(this.layout==="full-screen"){this.pendingFullScreenReveal=true}else{this.panelVisible=true}this.applyOpenSideEffects();this.updateResultsStatus();this.syncExternalTriggerAria();this.mdOpen.emit()}else{this.pendingFullScreenReveal=false;this.panelVisible=false;this.stopVoice();this.removeOutsideClickHandler();this.updateResultsStatus();this.mdClose.emit();this.syncExternalTriggerAria();this.closeTimer=setTimeout((()=>{this.barExpanded=false;this.finishCloseSideEffects();if(this.wiredTrigger&&typeof document!=="undefined"){const e=document.activeElement;const i=e===this.el||this.el.contains(e);if(e===document.body||i)this.wiredTrigger.focus?.()}this.closeTimer=undefined}),o.PANEL_CLOSE_MS)}}onLoadingChange(e){this.updateResultsStatus();this.updateLoadingMorph(e)}updateLoadingMorph(e){this.clearLoadingMorphTimers();if(e){this.loadingMorphMounted=true;if(typeof requestAnimationFrame==="undefined"){this.loadingMorphIn=true;return}this.loadingMorphInRaf=requestAnimationFrame((()=>{this.loadingMorphInRaf=undefined;if(this.loading)this.loadingMorphIn=true}))}else{this.loadingMorphIn=false;this.loadingMorphTimer=setTimeout((()=>{this.loadingMorphTimer=undefined;if(!this.loading)this.loadingMorphMounted=false}),o.MORPH_MS)}}clearLoadingMorphTimers(){if(this.loadingMorphTimer){clearTimeout(this.loadingMorphTimer);this.loadingMorphTimer=undefined}if(this.loadingMorphInRaf!==undefined&&typeof cancelAnimationFrame!=="undefined"){cancelAnimationFrame(this.loadingMorphInRaf);this.loadingMorphInRaf=undefined}}componentDidRender(){if(!this.pendingFullScreenReveal)return;this.pendingFullScreenReveal=false;if(typeof requestAnimationFrame==="undefined"){this.panelVisible=true;return}this.revealRaf=requestAnimationFrame((()=>{this.revealRaf=undefined;if(this.open)this.panelVisible=true}))}cancelReveal(){if(this.revealRaf!==undefined&&typeof cancelAnimationFrame!=="undefined"){cancelAnimationFrame(this.revealRaf)}this.revealRaf=undefined}clearCloseTimer(){if(this.closeTimer===undefined)return;clearTimeout(this.closeTimer);this.closeTimer=undefined}applyOpenSideEffects(){if(typeof document==="undefined")return;this.previousFocus=document.activeElement??null;if(this.layout==="full-screen"){const e=window.innerWidth-document.documentElement.clientWidth;if(e>0){document.body.style.paddingInlineEnd=`${e}px`}document.body.style.overflow="hidden"}this.attachOutsideClickHandler();if(typeof requestAnimationFrame!=="undefined"){requestAnimationFrame((()=>this.focusInitialTarget()))}else{this.focusInitialTarget()}}focusInitialTarget(){const e=this.resolveInitialFocusTarget();e?.focus?.({preventScroll:true})}resolveInitialFocusTarget(){if(this.initialFocus==="leading"){return this.leadingFocusTarget()??this.input}return this.input}leadingFocusTarget(){const e='button, a[href], input, select, textarea, md-icon-button, md-button, [tabindex]:not([tabindex="-1"])';const i=this.el.querySelector('[slot="leading"]');if(i){if(typeof i.focus==="function"&&i.getAttribute("tabindex")!=="-1"){if(i.matches(e))return i}const t=i.querySelector(e);if(t)return t;return i}const t=this.el.shadowRoot?.querySelector(".md-search__leading-button");if(t&&t.getAttribute("tabindex")!=="-1")return t;return undefined}finishCloseSideEffects(){if(typeof document!=="undefined"&&this.layout==="full-screen"){document.body.style.removeProperty("overflow");document.body.style.removeProperty("padding-inline-end")}this.previousFocus?.focus?.();this.previousFocus=null}attachOutsideClickHandler(){if(!this.dismissOnOutsideClick||typeof document==="undefined")return;this.outsideClickHandler=e=>{const i=e.target;if(!i)return;const t=e.composedPath?e.composedPath():[];if(t.includes(this.el))return;if(this.el.contains(i))return;const s=this.wiredTrigger;if(s&&(t.includes(s)||s.contains(i)))return;this.open=false};document.addEventListener("mousedown",this.outsideClickHandler,true)}removeOutsideClickHandler(){if(this.outsideClickHandler&&typeof document!=="undefined"){document.removeEventListener("mousedown",this.outsideClickHandler,true)}this.outsideClickHandler=undefined}getSpeechRecognitionCtor(){if(typeof window==="undefined")return undefined;const e=window;return e.SpeechRecognition||e.webkitSpeechRecognition}isVoiceSupported(){return!!this.getSpeechRecognitionCtor()}resolveVoiceLang(){if(typeof document!=="undefined"){const e=this.el.getAttribute("lang")||document.documentElement.lang;if(e)return e}return"en-US"}async startVoice(){this.startVoiceInternal()}async stopVoice(){this.listening=false;if(this.recognition){try{this.recognition.stop()}catch{}}}startVoiceInternal(){const e=this.getSpeechRecognitionCtor();if(!e||this.disabled||this.listening)return;if(this.recognition){try{this.recognition.abort()}catch{}this.recognition=undefined}const i=new e;i.lang=this.resolveVoiceLang();i.interimResults=true;i.continuous=false;i.maxAlternatives=1;i.onresult=this.handleVoiceResult;i.onerror=this.handleVoiceEnd;i.onend=this.handleVoiceEnd;this.recognition=i;if(!this.open)this.open=true;this.input?.focus();this.listening=true;try{i.start()}catch{this.listening=false;this.recognition=undefined}}scheduleSearch(e){this.pendingSearchValue=e;const i=Math.max(0,Number(this.debounce)||0);const t=Math.max(0,Number(this.throttle)||0);if(i===0&&t===0){this.flushSearch();return}if(this.searchDebounceTimer)clearTimeout(this.searchDebounceTimer);this.searchDebounceTimer=setTimeout((()=>this.flushSearch()),i);if(t>0&&this.searchMaxWaitTimer===undefined){this.searchMaxWaitTimer=setTimeout((()=>this.flushSearch()),t)}}flushSearch(){this.clearSearchTimers();if(this.pendingSearchValue===null)return;const e=this.pendingSearchValue;this.pendingSearchValue=null;const i=e.trim();if(i===this.lastEmittedSearch)return;this.lastEmittedSearch=i;this.mdSearch.emit({value:i})}clearSearchTimers(){if(this.searchDebounceTimer){clearTimeout(this.searchDebounceTimer);this.searchDebounceTimer=undefined}if(this.searchMaxWaitTimer){clearTimeout(this.searchMaxWaitTimer);this.searchMaxWaitTimer=undefined}}handleWindowKeyDown(e){if(!this.open)return;if(e.key==="Escape"&&this.escapeCloses){e.preventDefault();this.open=false;return}if(e.key==="ArrowDown"||e.key==="ArrowUp"){if(this.moveResultFocus(e.key==="ArrowDown"?1:-1)){e.preventDefault()}return}if(this.layout!=="full-screen"||e.key!=="Tab")return;const i=this.collectFocusables();if(i.length===0)return;const t=i[0];const s=i[i.length-1];const a=this.el.shadowRoot?.activeElement??document.activeElement;if(e.shiftKey&&a===t){e.preventDefault();s.focus()}else if(!e.shiftKey&&a===s){e.preventDefault();t.focus()}}collectFocusables(){const e=this.el.shadowRoot;if(!e)return[];const i='a[href], button, input, select, textarea, [tabindex]:not([tabindex="-1"]), md-icon-button, md-button';const t=Array.from(e.querySelectorAll(i));const s=Array.from(this.el.querySelectorAll(i));return[...t,...s].filter((e=>{if(e.hasAttribute("disabled"))return false;const i=e.getAttribute("tabindex");return i!=="-1"}))}countResults(){const e=Array.from(this.el.querySelectorAll('[slot="results"]'));const i='md-list-item, [role="option"], li, [data-search-result]';const t=new Set;for(const s of e){if(s.matches(i))t.add(s);s.querySelectorAll(i).forEach((e=>t.add(e)))}return t.size>0?t.size:e.length}resultItems(){const e='md-list-item, [role="option"], [role="menuitem"], [data-search-result], li';const i=Array.from(this.el.querySelectorAll('[slot="results"]'));const t=new Set;for(const s of i){if(s.matches(e))t.add(s);s.querySelectorAll(e).forEach((e=>t.add(e)))}return Array.from(t)}moveResultFocus(e){const i=this.resultItems();if(i.length===0)return false;const t=this.el.shadowRoot?.activeElement??(typeof document!=="undefined"?document.activeElement:null);const s=t?i.findIndex((e=>e===t||e.contains(t))):-1;if(e>0){const e=s<0?0:Math.min(s+1,i.length-1);this.focusResultItem(i[e]);return true}if(s<=0){this.input?.focus();return true}this.focusResultItem(i[s-1]);return true}focusResultItem(e){if(e.getAttribute("tabindex")===null){e.setAttribute("tabindex","-1")}e.focus?.()}updateResultsStatus(){if(!this.announceResults||!this.open){this.resultsStatus="";return}if(this.loading){this.resultsStatus=this.loadingLabel;return}const e=this.countResults();if(e>0){this.resultsStatus=this.resultsLabel.replace("{count}",String(e))}else if(this.shouldShowVisibleEmptyState()){this.resultsStatus=""}else{this.resultsStatus=this.value.trim()?this.noResultsLabel:""}}shouldShowVisibleEmptyState(){return this.panelVisible&&!this.loading&&this.countResults()===0&&this.value.trim().length>0}shouldShowResultsChrome(){if(!this.panelVisible||this.loading)return false;if(this.countResults()>0)return true;return this.shouldShowVisibleEmptyState()}isPanelRevealed(){if(this.layout==="full-screen"){return this.panelVisible&&this.barExpanded}return this.shouldShowResultsChrome()}effectiveLabel(){return this.inputAriaLabel||this.placeholder||"Search"}resolveOpenLeadingIcon(){if(this.openLeadingIcon)return this.openLeadingIcon;return this.variant==="contained"?"chevron_left":"arrow_back"}renderTrigger(){if(!this.usesIconTrigger||this.barExpanded)return null;if(this.hasExternalTrigger)return null;return t("div",{class:"md-search__trigger",part:"trigger"},t("slot",{name:"trigger"},t("md-icon-button",{class:"md-search__trigger-button",part:"trigger-button",icon:this.triggerIcon,variant:"standard",size:"md",disabled:this.disabled,"aria-label":this.effectiveLabel(),onClick:this.handleTriggerClick,onKeyDown:this.handleTriggerKeyDown})))}renderLeading(){const e=this.barExpanded;const i=e?"Close search":"Search";const s=this.resolveOpenLeadingIcon();return t("span",{class:{"md-search__leading":true,"md-search__leading--button":e},part:"leading",onClick:this.handleLeadingClick},t("slot",{name:"leading"},t("button",{type:"button",class:"md-search__leading-button","aria-label":i,tabIndex:e?0:-1,disabled:this.disabled},t("span",{class:"md-search__leading-state-layer",part:"leading-state-layer","aria-hidden":"true"}),t("span",{class:"md-search__icon md-search__icon--resting material-symbols-outlined","aria-hidden":"true"},this.leadingIcon),t("span",{class:"md-search__icon md-search__icon--open material-symbols-outlined","aria-hidden":"true"},s))))}renderClearButton(){if(!this.showClearButton||!this.value)return null;return t("button",{type:"button",class:"md-search__icon-button md-search__clear",part:"clear-button","aria-label":"Clear search",onClick:this.handleClearClick},t("span",{class:"md-search__icon material-symbols-outlined","aria-hidden":"true"},"close"))}renderVoiceButton(){return t("button",{type:"button",class:{"md-search__icon-button":true,"md-search__voice":true,"md-search__voice--listening":this.listening},part:"voice-button","aria-label":this.listening?"Stop voice search":"Search by voice","aria-pressed":this.listening?"true":"false",disabled:this.disabled,onClick:this.handleVoiceClick},t("span",{class:"md-search__icon material-symbols-outlined","aria-hidden":"true"},"mic"))}renderTrailing(){const e=this.showClearButton&&this.value.length>0;const i=e||this.loadingMorphMounted;const s=this.voiceSearch&&this.isVoiceSupported();return t("span",{class:"md-search__trailing",part:"trailing",onClick:this.handleTrailingClick},i&&t("span",{class:{"md-search__trailing-morph":true,"md-search__trailing-morph--loading":this.loadingMorphIn}},this.loadingMorphMounted&&t("slot",{name:"loader"},t(r,{class:"md-search__loading",part:"loading",exportparts:"shape:loading-shape",label:this.loadingLabel})),e&&this.renderClearButton()),s&&this.renderVoiceButton(),t("slot",{name:"trailing"}))}render(){const e=this.layout==="full-screen";const i={};if(this.maxBlockSize){i["--_max-block-size"]=this.maxBlockSize}return t(s,{key:"76ac5836c8203ebef26524ca009c55f263a29a53",class:{"md-search":true,[`md-search--${this.variant}`]:true,[`md-search--${this.layout}`]:true,[`md-search--trigger-${this.effectiveTrigger}`]:true,"md-search--open":this.barExpanded,"md-search--panel-content":this.layout==="full-screen"?this.isPanelRevealed():this.shouldShowResultsChrome(),"md-search--closed":!this.barExpanded,"md-search--has-slotted-trigger":this.hasSlottedTrigger,"md-search--disabled":this.disabled,"md-search--focused":this.focused,"md-search--has-value":this.value.length>0,"md-search--has-slotted-leading":this.hasSlottedLeading,"md-search--has-slotted-trailing":this.hasSlottedTrailing,"md-search--full-width":this.fullWidth,[`md-search--elevation-${this.elevation}`]:true},style:Object.keys(i).length>0?i:undefined},t("span",{key:"07c31817339fccd674a4255abfaf4c1ba97844b0",class:"md-search__inset-probe",ref:e=>this.insetProbeEl=e,"aria-hidden":"true"}),t("div",{key:"b4c34966fadb4171ebc5993d812bf86d8d63b2c1",class:"md-search__a11y-status",part:"status",role:"status","aria-live":"polite","aria-atomic":"true"},this.resultsStatus),this.renderTrigger(),this.showBar&&t("div",{key:"7a15527ed9539e965909e26ca334d3ba364e6951",class:{"md-search__bar":true,"md-search__bar--focused":this.focused,"md-search__bar--focus-ring":this.showFocusRing},part:"bar",onClick:this.handleBarClick},!this.disabled&&t("md-ripple",{key:"bc64e49c6b6d1821162402ab1b4dce19e52fb29d",ref:e=>this.rippleEl=e}),t("span",{key:"cefd6fcf4fdad156227987eff4907da85bbc6577",class:"md-search__state-layer",part:"state-layer","aria-hidden":"true"}),this.renderLeading(),t("input",{key:"7c0507ef8bcf5ee8149bf1eab0fa1f281f91c91b",ref:e=>this.input=e,class:"md-search__input",part:"input",type:"search",role:"combobox",value:this.value,placeholder:this.placeholder,disabled:this.disabled,"aria-label":this.effectiveLabel(),"aria-expanded":this.open?"true":"false","aria-controls":"md-search-panel","aria-autocomplete":"list",autocomplete:"off",spellcheck:false,onInput:this.handleInput,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,onKeyDown:this.handleInputKeyDown}),this.renderTrailing()),t("div",{key:"82a31127eb5cdd537368c5a39441ee5de76f8fce",id:"md-search-panel",class:{"md-search__panel":true,[`md-search__panel--${this.layout}`]:true,"md-search__panel--open":this.isPanelRevealed()},part:"panel",role:"dialog","aria-modal":e&&this.isPanelRevealed()?"true":"false","aria-hidden":this.isPanelRevealed()?"false":"true","aria-label":this.effectiveLabel()},this.variant==="divided"&&this.isPanelRevealed()&&t("div",{key:"8012f07b88bf161cd807648d922956cba050b2a8",class:"md-search__divider",part:"divider","aria-hidden":"true"}),t("div",{key:"5d65f89b9f627b3e3724847d045bf12ebfeaebe7",class:{"md-search__panel-body":true,"md-search__panel-body--empty":this.shouldShowVisibleEmptyState()},part:"panel-body"},this.shouldShowVisibleEmptyState()&&t("p",{key:"8ed70a0a101d7d3d7417f3f3d8e3d3b3bdbe3206",class:"md-search__empty",part:"empty",role:"status","aria-live":"polite"},this.noResultsLabel),t("div",{key:"ca153e2149bc5eb04d2501a8ce9145003371f465",class:"md-search__results-host",part:"results-host",hidden:this.shouldShowVisibleEmptyState()?true:undefined,"aria-hidden":this.shouldShowVisibleEmptyState()?"true":undefined},t("div",{key:"cf8048a6c67403fbc4791cbc181c30ce066bfc31",class:"md-search__results-scroll",part:"results-viewport"},t("slot",{key:"33e6f9eeaee028a2a15ee1925867230f8cf8da14",name:"results"}))))))}get el(){return a(this)}static get watchers(){return{triggerFor:[{onExternalTriggerChange:0}],triggerElement:[{onExternalTriggerChange:0}],open:[{onOpenChange:0}],loading:[{onLoadingChange:0}]}}};o.PANEL_CLOSE_MS=300;o.MORPH_MS=300;o.style=n();export{o as md_search};
|
|
2
|
+
//# sourceMappingURL=p-ae30e899.entry.js.map
|