@awc-ui/core 1.0.0-beta.3 → 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/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 +1 -1
- package/dist/cjs/md-accordion-item.cjs.entry.js +3 -3
- package/dist/cjs/md-app-bar.cjs.entry.js +1 -1
- package/dist/cjs/md-area-chart.cjs.entry.js +2 -2
- package/dist/cjs/md-autocomplete.cjs.entry.js +4 -3
- package/dist/cjs/md-autocomplete.cjs.entry.js.map +1 -1
- package/dist/cjs/md-avatar_2.cjs.entry.js +3 -3
- package/dist/cjs/md-badge.cjs.entry.js +2 -2
- package/dist/cjs/md-bar-chart.cjs.entry.js +2 -2
- package/dist/cjs/md-bottom-sheet.cjs.entry.js +4 -4
- package/dist/cjs/md-breadcrumbs.cjs.entry.js +2 -2
- package/dist/cjs/md-button-group.cjs.entry.js +2 -2
- package/dist/cjs/{md-button_7.cjs.entry.js → md-button_6.cjs.entry.js} +13 -38
- package/dist/cjs/md-button_6.cjs.entry.js.map +1 -0
- package/dist/cjs/md-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/md-chip.cjs.entry.js +2 -2
- package/dist/cjs/md-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/md-dialog.cjs.entry.js +2 -2
- package/dist/cjs/md-divider.cjs.entry.js +2 -2
- package/dist/cjs/md-fab-menu-item.cjs.entry.js +2 -2
- package/dist/cjs/md-fab-menu.cjs.entry.js +2 -2
- package/dist/cjs/md-fab.cjs.entry.js +2 -2
- package/dist/cjs/md-line-chart.cjs.entry.js +2 -2
- package/dist/cjs/md-list-item.cjs.entry.js +3 -3
- package/dist/cjs/md-list.cjs.entry.js +3 -3
- 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_2.cjs.entry.js +5 -5
- package/dist/cjs/md-multi-select.cjs.entry.js +5 -4
- package/dist/cjs/md-multi-select.cjs.entry.js.map +1 -1
- package/dist/cjs/md-navigation-bar.cjs.entry.js +1 -1
- package/dist/cjs/md-navigation-tab.cjs.entry.js +2 -2
- package/dist/cjs/md-number-field.cjs.entry.js +2 -2
- package/dist/cjs/md-organization-chart.cjs.entry.js +2 -2
- package/dist/cjs/md-otp-field.cjs.entry.js +3 -3
- package/dist/cjs/md-search.cjs.entry.js +7 -6
- package/dist/cjs/md-search.cjs.entry.js.map +1 -1
- package/dist/cjs/md-select-option.cjs.entry.js +1 -1
- package/dist/cjs/md-select.cjs.entry.js +5 -4
- package/dist/cjs/md-select.cjs.entry.js.map +1 -1
- package/dist/cjs/md-slider.cjs.entry.js +2 -2
- package/dist/cjs/md-sparkline.cjs.entry.js +2 -2
- package/dist/cjs/md-status-dot.cjs.entry.js +1 -1
- package/dist/cjs/md-table.cjs.entry.js +3 -3
- package/dist/cjs/md-text-field.cjs.entry.js +7 -7
- package/dist/cjs/md-time-picker.cjs.entry.js +1 -1
- package/dist/cjs/md-transfer-list.cjs.entry.js +1 -1
- package/dist/cjs/md3.cjs.js +1 -1
- 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/components/md-accordion-item.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-area-chart.js.map +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-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.js +1 -1
- package/dist/components/md-menu.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-radio.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.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-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-tab.js +1 -1
- package/dist/components/md-table-expand-toggle.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.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-tooltip.js +1 -1
- package/dist/components/md-transfer-list.js +1 -1
- package/dist/components/{p-Eb44PPZa.js → p-1RSrsLOs.js} +2 -2
- package/dist/components/{p-D8oM1Kr3.js → p-2HV152w7.js} +2 -2
- package/dist/components/{p-BA2v4IuG.js → p-6ZDAcEKN.js} +2 -2
- package/dist/components/{p-BADA63mI.js → p-B2fYoYe9.js} +2 -2
- package/dist/components/p-B2fYoYe9.js.map +1 -0
- package/dist/components/{p-CCMritCA.js → p-C77M30dm.js} +2 -2
- package/dist/{components-csr/p-Bmu7RqHM.js → components/p-CNgkGl_1.js} +2 -2
- package/dist/components/p-CNgkGl_1.js.map +1 -0
- package/dist/components/{p-CtVItLby.js → p-D5Ht729E.js} +2 -2
- package/dist/components/p-DPqGg8C1.js +2 -0
- package/dist/components/p-DPqGg8C1.js.map +1 -0
- package/dist/components/{p-CTC8XAB6.js → p-De3E5Q8v.js} +2 -2
- package/dist/components/{p-B-JfuA2g.js → p-Dm_7DA1f.js} +2 -2
- package/dist/components/{p-DEzb9xsY.js → p-Dz3R-2Wn.js} +2 -2
- package/dist/components/{p-B-iHDK5h.js → p-Zjf9uhOr.js} +2 -2
- package/dist/components/{p-DfU4xY2F.js → p-ssLobpGS.js} +2 -2
- package/dist/components/{p-DYL-8C5C.js → p-zMR3UIR_.js} +2 -2
- package/dist/components-csr/md-accordion-item.js +1 -1
- package/dist/components-csr/md-app-bar.js +1 -1
- package/dist/components-csr/md-area-chart.js +1 -1
- package/dist/components-csr/md-area-chart.js.map +1 -1
- package/dist/components-csr/md-autocomplete.js +1 -1
- package/dist/components-csr/md-autocomplete.js.map +1 -1
- package/dist/components-csr/md-avatar.js +1 -1
- package/dist/components-csr/md-badge.js +1 -1
- package/dist/components-csr/md-bar-chart.js +1 -1
- package/dist/components-csr/md-bottom-sheet.js +1 -1
- package/dist/components-csr/md-breadcrumb-item.js +1 -1
- package/dist/components-csr/md-breadcrumbs.js +1 -1
- package/dist/components-csr/md-button-group.js +1 -1
- package/dist/components-csr/md-button.js +1 -1
- package/dist/components-csr/md-card.js +1 -1
- package/dist/components-csr/md-checkbox.js +1 -1
- package/dist/components-csr/md-chip.js +1 -1
- package/dist/components-csr/md-date-picker.js +1 -1
- package/dist/components-csr/md-date-picker.js.map +1 -1
- package/dist/components-csr/md-dialog.js +1 -1
- package/dist/components-csr/md-dialog.js.map +1 -1
- package/dist/components-csr/md-divider.js +1 -1
- package/dist/components-csr/md-divider.js.map +1 -1
- package/dist/components-csr/md-fab-menu-item.js +1 -1
- package/dist/components-csr/md-fab-menu.js +1 -1
- package/dist/components-csr/md-fab.js +1 -1
- package/dist/components-csr/md-icon-button.js +1 -1
- package/dist/components-csr/md-line-chart.js +1 -1
- package/dist/components-csr/md-line-chart.js.map +1 -1
- package/dist/components-csr/md-list-item.js +1 -1
- package/dist/components-csr/md-list.js +1 -1
- package/dist/components-csr/md-loading-indicator.js +1 -1
- package/dist/components-csr/md-menu-item.js +1 -1
- package/dist/components-csr/md-menu.js +1 -1
- package/dist/components-csr/md-multi-select.js +1 -1
- package/dist/components-csr/md-multi-select.js.map +1 -1
- package/dist/components-csr/md-navigation-bar.js +1 -1
- package/dist/components-csr/md-navigation-rail-tab.js +1 -1
- package/dist/components-csr/md-navigation-rail.js +1 -1
- package/dist/components-csr/md-navigation-tab.js +1 -1
- package/dist/components-csr/md-number-field.js +1 -1
- package/dist/components-csr/md-organization-chart.js +1 -1
- package/dist/components-csr/md-otp-field.js +1 -1
- package/dist/components-csr/md-radio.js +1 -1
- package/dist/components-csr/md-ripple.js +1 -1
- package/dist/components-csr/md-search.js +1 -1
- package/dist/components-csr/md-search.js.map +1 -1
- package/dist/components-csr/md-segmented-button.js +1 -1
- package/dist/components-csr/md-select-option.js +1 -1
- package/dist/components-csr/md-select.js +1 -1
- package/dist/components-csr/md-side-sheet.js +1 -1
- package/dist/components-csr/md-slider.js +1 -1
- package/dist/components-csr/md-snackbar.js +1 -1
- package/dist/components-csr/md-snackbar.js.map +1 -1
- package/dist/components-csr/md-sparkline.js +1 -1
- package/dist/components-csr/md-split-button.js +1 -1
- package/dist/components-csr/md-status-dot.js +1 -1
- package/dist/components-csr/md-step.js +1 -1
- package/dist/components-csr/md-step.js.map +1 -1
- package/dist/components-csr/md-stepper.js +1 -1
- package/dist/components-csr/md-stepper.js.map +1 -1
- package/dist/components-csr/md-sub-menu-item.js +1 -1
- package/dist/components-csr/md-tab.js +1 -1
- package/dist/components-csr/md-table-expand-toggle.js +1 -1
- package/dist/components-csr/md-table-pagination.js +1 -1
- package/dist/components-csr/md-table-pagination.js.map +1 -1
- package/dist/components-csr/md-table.js +1 -1
- package/dist/components-csr/md-text-field.js +1 -1
- package/dist/components-csr/md-time-picker.js +1 -1
- package/dist/components-csr/md-time-picker.js.map +1 -1
- package/dist/components-csr/md-tooltip.js +1 -1
- package/dist/components-csr/md-transfer-list.js +1 -1
- package/dist/components-csr/p-6WgHjhDg.js +2 -0
- package/dist/components-csr/p-6WgHjhDg.js.map +1 -0
- package/dist/components-csr/{p-C0DlKmRg.js → p-BEmwDSzw.js} +2 -2
- package/dist/components-csr/{p-DvXQXhgu.js → p-BQKzjYcY.js} +2 -2
- package/dist/components-csr/{p-CG6FaRlt.js → p-BWMwewtY.js} +2 -2
- package/dist/components-csr/{p--OUYjgKN.js → p-BZakoRau.js} +2 -2
- package/dist/components-csr/p-BZakoRau.js.map +1 -0
- package/dist/components-csr/{p-CSrxeWwL.js → p-Bkt_X-6v.js} +2 -2
- package/dist/components-csr/{p-Hm3X1iai.js → p-C3vB0Hd9.js} +2 -2
- package/dist/components-csr/{p-CrbzXk64.js → p-CF7mq5T7.js} +2 -2
- package/dist/components-csr/{p-DF19mmLl.js → p-CVMM-tdC.js} +2 -2
- package/dist/components-csr/{p-C4_7YnHT.js → p-DMQ-6aj8.js} +2 -2
- package/dist/components-csr/{p--TCJgZnE.js → p-DjKPc5EU.js} +2 -2
- package/dist/{components/p-Lsoo1B-2.js → components-csr/p-If0JHsYV.js} +2 -2
- package/dist/components-csr/p-If0JHsYV.js.map +1 -0
- package/dist/components-csr/{p-IWA0yIjJ.js → p-R_guULjT.js} +2 -2
- package/dist/components-csr/{p-uZbtHo-A.js → p-uSMrgqAy.js} +2 -2
- 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/{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/{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/lazy-loading-indicator-BWFcjJiK.js +67 -0
- package/dist/esm/lazy-loading-indicator-BWFcjJiK.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/md-accordion-item.entry.js +3 -3
- package/dist/esm/md-app-bar.entry.js +1 -1
- package/dist/esm/md-area-chart.entry.js +6 -6
- package/dist/esm/md-autocomplete.entry.js +4 -3
- package/dist/esm/md-autocomplete.entry.js.map +1 -1
- package/dist/esm/md-avatar_2.entry.js +3 -3
- package/dist/esm/md-badge.entry.js +2 -2
- package/dist/esm/md-bar-chart.entry.js +6 -6
- package/dist/esm/md-bottom-sheet.entry.js +4 -4
- package/dist/esm/md-breadcrumb-item.entry.js +1 -1
- package/dist/esm/md-breadcrumbs.entry.js +2 -2
- package/dist/esm/md-button-group.entry.js +2 -2
- package/dist/esm/{md-button_7.entry.js → md-button_6.entry.js} +15 -39
- package/dist/esm/md-button_6.entry.js.map +1 -0
- package/dist/esm/md-checkbox.entry.js +2 -2
- package/dist/esm/md-chip.entry.js +2 -2
- package/dist/esm/md-date-picker.entry.js +1 -1
- package/dist/esm/md-dialog.entry.js +2 -2
- package/dist/esm/md-divider.entry.js +2 -2
- package/dist/esm/md-fab-menu-item.entry.js +2 -2
- package/dist/esm/md-fab-menu.entry.js +2 -2
- package/dist/esm/md-fab.entry.js +2 -2
- package/dist/esm/md-line-chart.entry.js +6 -6
- package/dist/esm/md-list-item.entry.js +4 -4
- package/dist/esm/md-list.entry.js +3 -3
- 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_2.entry.js +5 -5
- package/dist/esm/md-multi-select.entry.js +5 -4
- package/dist/esm/md-multi-select.entry.js.map +1 -1
- package/dist/esm/md-navigation-bar.entry.js +1 -1
- package/dist/esm/md-navigation-rail-tab.entry.js +1 -1
- package/dist/esm/md-navigation-tab.entry.js +3 -3
- package/dist/esm/md-number-field.entry.js +2 -2
- package/dist/esm/md-organization-chart.entry.js +2 -2
- package/dist/esm/md-otp-field.entry.js +3 -3
- package/dist/esm/md-pie-chart.entry.js +2 -2
- package/dist/esm/md-search.entry.js +7 -6
- package/dist/esm/md-search.entry.js.map +1 -1
- package/dist/esm/md-select-option.entry.js +1 -1
- package/dist/esm/md-select.entry.js +5 -4
- package/dist/esm/md-select.entry.js.map +1 -1
- package/dist/esm/md-slider.entry.js +2 -2
- package/dist/esm/md-sparkline.entry.js +6 -6
- package/dist/esm/md-status-dot.entry.js +1 -1
- package/dist/esm/md-table.entry.js +3 -3
- package/dist/esm/md-text-field.entry.js +7 -7
- package/dist/esm/md-time-picker.entry.js +1 -1
- package/dist/esm/md-transfer-list.entry.js +1 -1
- package/dist/esm/md3.js +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/md3/md3.esm.js +1 -1
- package/dist/md3/p-08f1c469.entry.js +2 -0
- package/dist/md3/{p-7f53a423.entry.js.map → p-08f1c469.entry.js.map} +1 -1
- package/dist/md3/{p-7112374d.entry.js → p-108f89d7.entry.js} +2 -2
- package/dist/md3/{p-d7e99f9e.entry.js → p-1112bffc.entry.js} +2 -2
- package/dist/md3/{p-ef7b1826.entry.js → p-114c270b.entry.js} +2 -2
- package/dist/md3/{p-944e69e0.entry.js → p-1835fe36.entry.js} +2 -2
- package/dist/md3/{p-22633b2d.entry.js → p-2ba2db3b.entry.js} +2 -2
- package/dist/md3/{p-1d7e0203.entry.js → p-3f64a27d.entry.js} +2 -2
- package/dist/md3/{p-bed8dfec.entry.js → p-43c708ad.entry.js} +2 -2
- package/dist/md3/{p-ae360663.entry.js → p-4b7cf934.entry.js} +2 -2
- package/dist/md3/{p-27135a6b.entry.js → p-4f26bd60.entry.js} +2 -2
- package/dist/md3/{p-2befc42c.entry.js → p-56c7c570.entry.js} +2 -2
- package/dist/md3/{p-0a599351.entry.js → p-56ca0c3c.entry.js} +2 -2
- package/dist/md3/{p-96c06b24.entry.js → p-5b63149a.entry.js} +2 -2
- package/dist/md3/{p-4ba3623e.entry.js → p-5f668b0a.entry.js} +2 -2
- package/dist/md3/{p-9b9677cc.entry.js → p-6237ddac.entry.js} +2 -2
- package/dist/md3/{p-b243284b.entry.js → p-6d65fc6a.entry.js} +2 -2
- package/dist/md3/{p-8b1ea5dc.entry.js → p-707b6d7c.entry.js} +2 -2
- package/dist/md3/{p-a49df43d.entry.js → p-71f1660b.entry.js} +2 -2
- package/dist/md3/{p-7858833e.entry.js → p-7501170f.entry.js} +2 -2
- package/dist/md3/{p-6ea7117d.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-4aed552f.entry.js → p-80379565.entry.js} +2 -2
- package/dist/md3/p-830724e4.entry.js +2 -0
- package/dist/md3/p-830724e4.entry.js.map +1 -0
- package/dist/md3/{p-e3c37222.entry.js → p-87f88d62.entry.js} +2 -2
- package/dist/md3/p-8a7e0297.entry.js +2 -0
- package/dist/md3/p-8a7e0297.entry.js.map +1 -0
- package/dist/md3/{p-8135c606.entry.js → p-8bdcda53.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-6bf632c7.entry.js → p-90ccf4c3.entry.js} +2 -2
- package/dist/md3/{p-BjYKc1Ge.js → p-BdEoSBtL.js} +2 -2
- package/dist/md3/{p-BjYKc1Ge.js.map → p-BdEoSBtL.js.map} +1 -1
- package/dist/md3/{p-DzPKu-Ma.js → p-CGqeEMjY.js} +2 -2
- package/dist/md3/{p-DzPKu-Ma.js.map → p-CGqeEMjY.js.map} +1 -1
- package/dist/md3/{p-DvOKnoqK.js → p-CVFH1DkU.js} +2 -2
- 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-D17cVKxS.js +2 -0
- package/dist/md3/p-D17cVKxS.js.map +1 -0
- package/dist/md3/{p-Bx6--dQF.js → p-DGtztV3K.js} +2 -2
- package/dist/md3/{p-Bx6--dQF.js.map → p-DGtztV3K.js.map} +1 -1
- package/dist/md3/p-DnKDoE8K.js +2 -0
- package/dist/md3/p-DnKDoE8K.js.map +1 -0
- package/dist/md3/{p-5f39b49d.entry.js → p-ab568d1c.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-b54bbf88.entry.js +2 -0
- package/dist/md3/p-b54bbf88.entry.js.map +1 -0
- package/dist/md3/{p-21c89d1d.entry.js → p-ba011453.entry.js} +2 -2
- package/dist/md3/{p-cdcea99f.entry.js → p-c2944c87.entry.js} +2 -2
- package/dist/md3/{p-3a4bd4eb.entry.js → p-cc6e8afd.entry.js} +2 -2
- package/dist/md3/{p-c0476406.entry.js → p-d8885f53.entry.js} +2 -2
- package/dist/md3/{p-da0c36d9.entry.js → p-db6fb4e1.entry.js} +2 -2
- package/dist/md3/{p-5929e59c.entry.js → p-dcba2857.entry.js} +2 -2
- package/dist/md3/{p-925768ac.entry.js → p-e357e8ac.entry.js} +2 -2
- package/dist/md3/{p-e6b09e71.entry.js → p-e5c6795e.entry.js} +2 -2
- package/dist/md3/{p-1e85b8a8.entry.js → p-e871663b.entry.js} +2 -2
- package/dist/md3/p-f297d786.entry.js +2 -0
- package/dist/md3/{p-38f82d34.entry.js.map → p-f297d786.entry.js.map} +1 -1
- package/dist/md3/{p-b5586b66.entry.js → p-f5399b73.entry.js} +2 -2
- package/dist/md3/{p-5c35f916.entry.js → p-fd686966.entry.js} +2 -2
- package/dist/md3/{p-C_ogF68H.js → p-nhfFYWzy.js} +2 -2
- 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/hydrate/index.js +172 -106
- package/hydrate/index.mjs +172 -106
- package/package.json +18 -4
- package/dist/cjs/md-button_7.cjs.entry.js.map +0 -1
- package/dist/components/p-BADA63mI.js.map +0 -1
- package/dist/components/p-Lsoo1B-2.js.map +0 -1
- package/dist/components-csr/p--OUYjgKN.js.map +0 -1
- package/dist/components-csr/p-Bmu7RqHM.js.map +0 -1
- package/dist/esm/md-button_7.entry.js.map +0 -1
- package/dist/md3/p-2dda08b2.entry.js +0 -2
- package/dist/md3/p-2dda08b2.entry.js.map +0 -1
- package/dist/md3/p-38f82d34.entry.js +0 -2
- package/dist/md3/p-5db87a9d.entry.js +0 -2
- package/dist/md3/p-5db87a9d.entry.js.map +0 -1
- package/dist/md3/p-637baee1.entry.js +0 -2
- package/dist/md3/p-637baee1.entry.js.map +0 -1
- package/dist/md3/p-7f53a423.entry.js +0 -2
- package/dist/md3/p-RLxbNqRv.js +0 -2
- package/dist/md3/p-b7602557.entry.js +0 -2
- package/dist/md3/p-b7602557.entry.js.map +0 -1
- package/dist/md3/p-eddae19a.entry.js +0 -2
- package/dist/md3/p-eddae19a.entry.js.map +0 -1
- /package/dist/components/{p-Eb44PPZa.js.map → p-1RSrsLOs.js.map} +0 -0
- /package/dist/components/{p-D8oM1Kr3.js.map → p-2HV152w7.js.map} +0 -0
- /package/dist/components/{p-BA2v4IuG.js.map → p-6ZDAcEKN.js.map} +0 -0
- /package/dist/components/{p-CCMritCA.js.map → p-C77M30dm.js.map} +0 -0
- /package/dist/components/{p-CtVItLby.js.map → p-D5Ht729E.js.map} +0 -0
- /package/dist/components/{p-CTC8XAB6.js.map → p-De3E5Q8v.js.map} +0 -0
- /package/dist/components/{p-B-JfuA2g.js.map → p-Dm_7DA1f.js.map} +0 -0
- /package/dist/components/{p-DEzb9xsY.js.map → p-Dz3R-2Wn.js.map} +0 -0
- /package/dist/components/{p-B-iHDK5h.js.map → p-Zjf9uhOr.js.map} +0 -0
- /package/dist/components/{p-DfU4xY2F.js.map → p-ssLobpGS.js.map} +0 -0
- /package/dist/components/{p-DYL-8C5C.js.map → p-zMR3UIR_.js.map} +0 -0
- /package/dist/components-csr/{p-C0DlKmRg.js.map → p-BEmwDSzw.js.map} +0 -0
- /package/dist/components-csr/{p-DvXQXhgu.js.map → p-BQKzjYcY.js.map} +0 -0
- /package/dist/components-csr/{p-CG6FaRlt.js.map → p-BWMwewtY.js.map} +0 -0
- /package/dist/components-csr/{p-CSrxeWwL.js.map → p-Bkt_X-6v.js.map} +0 -0
- /package/dist/components-csr/{p-Hm3X1iai.js.map → p-C3vB0Hd9.js.map} +0 -0
- /package/dist/components-csr/{p-CrbzXk64.js.map → p-CF7mq5T7.js.map} +0 -0
- /package/dist/components-csr/{p-DF19mmLl.js.map → p-CVMM-tdC.js.map} +0 -0
- /package/dist/components-csr/{p-C4_7YnHT.js.map → p-DMQ-6aj8.js.map} +0 -0
- /package/dist/components-csr/{p--TCJgZnE.js.map → p-DjKPc5EU.js.map} +0 -0
- /package/dist/components-csr/{p-IWA0yIjJ.js.map → p-R_guULjT.js.map} +0 -0
- /package/dist/components-csr/{p-uZbtHo-A.js.map → p-uSMrgqAy.js.map} +0 -0
- /package/dist/md3/{p-7112374d.entry.js.map → p-108f89d7.entry.js.map} +0 -0
- /package/dist/md3/{p-d7e99f9e.entry.js.map → p-1112bffc.entry.js.map} +0 -0
- /package/dist/md3/{p-ef7b1826.entry.js.map → p-114c270b.entry.js.map} +0 -0
- /package/dist/md3/{p-944e69e0.entry.js.map → p-1835fe36.entry.js.map} +0 -0
- /package/dist/md3/{p-22633b2d.entry.js.map → p-2ba2db3b.entry.js.map} +0 -0
- /package/dist/md3/{p-1d7e0203.entry.js.map → p-3f64a27d.entry.js.map} +0 -0
- /package/dist/md3/{p-bed8dfec.entry.js.map → p-43c708ad.entry.js.map} +0 -0
- /package/dist/md3/{p-ae360663.entry.js.map → p-4b7cf934.entry.js.map} +0 -0
- /package/dist/md3/{p-27135a6b.entry.js.map → p-4f26bd60.entry.js.map} +0 -0
- /package/dist/md3/{p-2befc42c.entry.js.map → p-56c7c570.entry.js.map} +0 -0
- /package/dist/md3/{p-0a599351.entry.js.map → p-56ca0c3c.entry.js.map} +0 -0
- /package/dist/md3/{p-96c06b24.entry.js.map → p-5b63149a.entry.js.map} +0 -0
- /package/dist/md3/{p-4ba3623e.entry.js.map → p-5f668b0a.entry.js.map} +0 -0
- /package/dist/md3/{p-9b9677cc.entry.js.map → p-6237ddac.entry.js.map} +0 -0
- /package/dist/md3/{p-b243284b.entry.js.map → p-6d65fc6a.entry.js.map} +0 -0
- /package/dist/md3/{p-8b1ea5dc.entry.js.map → p-707b6d7c.entry.js.map} +0 -0
- /package/dist/md3/{p-a49df43d.entry.js.map → p-71f1660b.entry.js.map} +0 -0
- /package/dist/md3/{p-7858833e.entry.js.map → p-7501170f.entry.js.map} +0 -0
- /package/dist/md3/{p-6ea7117d.entry.js.map → p-7d1686a7.entry.js.map} +0 -0
- /package/dist/md3/{p-4aed552f.entry.js.map → p-80379565.entry.js.map} +0 -0
- /package/dist/md3/{p-e3c37222.entry.js.map → p-87f88d62.entry.js.map} +0 -0
- /package/dist/md3/{p-8135c606.entry.js.map → p-8bdcda53.entry.js.map} +0 -0
- /package/dist/md3/{p-6bf632c7.entry.js.map → p-90ccf4c3.entry.js.map} +0 -0
- /package/dist/md3/{p-5f39b49d.entry.js.map → p-ab568d1c.entry.js.map} +0 -0
- /package/dist/md3/{p-21c89d1d.entry.js.map → p-ba011453.entry.js.map} +0 -0
- /package/dist/md3/{p-cdcea99f.entry.js.map → p-c2944c87.entry.js.map} +0 -0
- /package/dist/md3/{p-3a4bd4eb.entry.js.map → p-cc6e8afd.entry.js.map} +0 -0
- /package/dist/md3/{p-c0476406.entry.js.map → p-d8885f53.entry.js.map} +0 -0
- /package/dist/md3/{p-da0c36d9.entry.js.map → p-db6fb4e1.entry.js.map} +0 -0
- /package/dist/md3/{p-5929e59c.entry.js.map → p-dcba2857.entry.js.map} +0 -0
- /package/dist/md3/{p-925768ac.entry.js.map → p-e357e8ac.entry.js.map} +0 -0
- /package/dist/md3/{p-e6b09e71.entry.js.map → p-e5c6795e.entry.js.map} +0 -0
- /package/dist/md3/{p-1e85b8a8.entry.js.map → p-e871663b.entry.js.map} +0 -0
- /package/dist/md3/{p-b5586b66.entry.js.map → p-f5399b73.entry.js.map} +0 -0
- /package/dist/md3/{p-5c35f916.entry.js.map → p-fd686966.entry.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as o,h as n,H as e,g as r}from"./p-WmvQpZnM.js";const s=()=>`:host{--_gap:var(--md-button-group-gap, max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px)));--_width:var(--md-button-group-width, auto);--_min-width:var(--md-button-group-min-width, auto);--_max-width:var(--md-button-group-max-width, none);--_height:var(--md-button-group-height, auto);--_min-height:var(--md-button-group-min-height, auto);--_max-height:var(--md-button-group-max-height, none);display:inline-flex;align-items:stretch;flex-wrap:nowrap;box-sizing:border-box;vertical-align:middle;inline-size:var(--_width);min-inline-size:var(--_min-width);max-inline-size:var(--_max-width);block-size:var(--_height);min-block-size:var(--_min-height);max-block-size:var(--_max-height)}::slotted(md-button),::slotted(md-icon-button){flex-shrink:0;--md-button-min-height:var(--md-button-group-max-height, var(--md-button-group-_unset));max-block-size:var(--_max-height)}:host(.md-button-group--full-width){display:flex;--_width:100%}:host(.md-button-group--full-width) ::slotted(md-button),:host(.md-button-group--full-width) ::slotted(md-icon-button){flex:1 1 0}:host(.md-button-group--connected.md-button-group--xs) ::slotted(md-button),:host(.md-button-group--connected.md-button-group--xs) ::slotted(md-icon-button),:host(.md-button-group--connected.md-button-group--sm) ::slotted(md-button),:host(.md-button-group--connected.md-button-group--sm) ::slotted(md-icon-button){min-width:48px}:host(.md-button-group--connected.md-button-group--xs){--_c-inner:4px;--_c-sel:16px;--_c-press:2px}:host(.md-button-group--connected.md-button-group--sm){--_c-inner:8px;--_c-sel:20px;--_c-press:4px}:host(.md-button-group--connected.md-button-group--md){--_c-inner:8px;--_c-sel:24px;--_c-press:4px}:host(.md-button-group--connected.md-button-group--lg){--_c-inner:16px;--_c-sel:28px;--_c-press:8px}:host(.md-button-group--connected.md-button-group--xl){--_c-inner:20px;--_c-sel:48px;--_c-press:12px}:host(.md-button-group--connected.md-button-group--round.md-button-group--xs){--_c-outer-btn:16px}:host(.md-button-group--connected.md-button-group--round.md-button-group--sm){--_c-outer-btn:20px}:host(.md-button-group--connected.md-button-group--round.md-button-group--md){--_c-outer-btn:24px}:host(.md-button-group--connected.md-button-group--round.md-button-group--lg){--_c-outer-btn:28px}:host(.md-button-group--connected.md-button-group--round.md-button-group--xl){--_c-outer-btn:48px}:host(.md-button-group--connected.md-button-group--round.md-button-group--xs){--_c-outer-icon:16px}:host(.md-button-group--connected.md-button-group--round.md-button-group--sm){--_c-outer-icon:20px}:host(.md-button-group--connected.md-button-group--round.md-button-group--md){--_c-outer-icon:28px}:host(.md-button-group--connected.md-button-group--round.md-button-group--lg){--_c-outer-icon:48px}:host(.md-button-group--connected.md-button-group--round.md-button-group--xl){--_c-outer-icon:68px}:host(.md-button-group--connected.md-button-group--square){--_c-outer-btn:var(--_c-inner);--_c-outer-icon:var(--_c-inner)}:host(.md-button-group--connected) ::slotted(md-button[connected-right]:not([connected-left])){border-start-start-radius:var(--_c-outer-btn) !important;border-end-start-radius:var(--_c-outer-btn) !important;border-start-end-radius:var(--_c-inner) !important;border-end-end-radius:var(--_c-inner) !important}:host(.md-button-group--connected) ::slotted(md-icon-button[connected-right]:not([connected-left])){border-start-start-radius:var(--_c-outer-icon) !important;border-end-start-radius:var(--_c-outer-icon) !important;border-start-end-radius:var(--_c-inner) !important;border-end-end-radius:var(--_c-inner) !important}:host(.md-button-group--connected) ::slotted(md-button[connected-left]:not([connected-right])){border-start-start-radius:var(--_c-inner) !important;border-end-start-radius:var(--_c-inner) !important;border-start-end-radius:var(--_c-outer-btn) !important;border-end-end-radius:var(--_c-outer-btn) !important}:host(.md-button-group--connected) ::slotted(md-icon-button[connected-left]:not([connected-right])){border-start-start-radius:var(--_c-inner) !important;border-end-start-radius:var(--_c-inner) !important;border-start-end-radius:var(--_c-outer-icon) !important;border-end-end-radius:var(--_c-outer-icon) !important}:host(.md-button-group--connected) ::slotted([connected-left][connected-right]){border-radius:var(--_c-inner) !important}:host(.md-button-group--connected) ::slotted(md-button.md-button--selected[connected-right]:not([connected-left])),:host(.md-button-group--connected) ::slotted(md-button.md-button--selected[connected-left]:not([connected-right])),:host(.md-button-group--connected) ::slotted(md-button.md-button--selected[connected-left][connected-right]),:host(.md-button-group--connected) ::slotted(md-icon-button.md-icon-button--selected[connected-right]:not([connected-left])),:host(.md-button-group--connected) ::slotted(md-icon-button.md-icon-button--selected[connected-left]:not([connected-right])),:host(.md-button-group--connected) ::slotted(md-icon-button.md-icon-button--selected[connected-left][connected-right]){border-radius:var(--_c-sel) !important}:host(.md-button-group--connected) ::slotted(md-button.md-button--pressed[connected-right]:not([connected-left])),:host(.md-button-group--connected) ::slotted(md-button.md-button--pressed[connected-left]:not([connected-right])),:host(.md-button-group--connected) ::slotted(md-button.md-button--pressed[connected-left][connected-right]),:host(.md-button-group--connected) ::slotted(md-icon-button.md-icon-button--pressed[connected-right]:not([connected-left])),:host(.md-button-group--connected) ::slotted(md-icon-button.md-icon-button--pressed[connected-left]:not([connected-right])),:host(.md-button-group--connected) ::slotted(md-icon-button.md-icon-button--pressed[connected-left][connected-right]){border-radius:var(--_c-press) !important}@media (prefers-reduced-motion: reduce){:host{transition:none}}@media (forced-colors: active){:host{forced-color-adjust:none}}:host(.md-button-group--xs){--_gap:var(--md-button-group-gap, max(10px, calc(18px + var(--md-sys-density-scale, 0) * 2px)))}:host(.md-button-group--sm){--_gap:var(--md-button-group-gap, max(6px, calc(12px + var(--md-sys-density-scale, 0) * 1.5px)))}:host(.md-button-group--connected){--_gap:var(--md-button-group-gap, 2px)}:host{gap:var(--_gap)}: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={xs:3,sm:4,md:5,lg:6,xl:8};const i=class{constructor(n){t(this,n);this.mdSelectionChange=o(this,"mdSelectionChange",7);this.variant="standard";this.size="sm";this.shape="round";this.selectionMode="single-select";this.required=false;this.fullWidth=false;this.density=0;this.motionAnimations=[];this.onGroupPointerDown=t=>{if(this.variant!=="standard")return;const o=t.target.closest("md-button, md-icon-button");if(o&&this.shouldMotion(o))this.runMotion(o)};this.onGroupKeyDown=t=>{if(this.variant!=="standard")return;if(t.key!=="Enter"&&t.key!==" ")return;const o=t.target.closest("md-button, md-icon-button");if(o&&this.shouldMotion(o))this.runMotion(o)};this.previousValues=[];this.onGroupClick=t=>{const o=t.target.closest?.("md-button, md-icon-button");if(!o)return;const n=this.getChildren();if(!n.includes(o))return;if(this.selectionMode==="single-select"){for(const t of n){if(t!==o)t.selected=false}}if(this.required){const t=n.some((t=>t.selected));if(!t){o.selected=true}}const e=this.collectSelectedValues(n);const r=new Set(this.previousValues);const s=new Set(e);const d=e.filter((t=>!r.has(t)));const i=this.previousValues.filter((t=>!s.has(t)));this.previousValues=e;this.activeChild=o;this.updateRovingTabindex();this.mdSelectionChange.emit({values:e,added:d,removed:i,originalEvent:t})};this.onArrowNav=t=>{const o=t.key;if(o!=="ArrowLeft"&&o!=="ArrowRight"&&o!=="Home"&&o!=="End")return;const n=this.getChildren().filter((t=>!t.disabled));if(n.length===0)return;const e=t.target.closest("md-button, md-icon-button");const r=e?n.indexOf(e):-1;const s=this.resolveDirection()==="rtl";let d=r;if(o==="Home"){d=0}else if(o==="End"){d=n.length-1}else{const t=o==="ArrowRight"!==s;const e=t?1:-1;d=r<0?t?0:n.length-1:(r+e+n.length)%n.length}const i=n[d];if(!i||i===e)return;t.preventDefault();this.activeChild=i;this.updateRovingTabindex();i.focus()};this.activeChild=null;this.onFocusIn=t=>{const o=t.target?.closest?.("md-button, md-icon-button");if(!o)return;if(o===this.activeChild)return;const n=this.getChildren();if(!n.includes(o))return;this.activeChild=o;this.updateRovingTabindex()}}onPropsChange(){this.syncChildren();this.updateRovingTabindex()}componentDidLoad(){this.observeSlot();this.syncChildren();this.updateRovingTabindex();this.el.addEventListener("click",this.onGroupClick);this.el.addEventListener("keydown",this.onArrowNav);this.el.addEventListener("focusin",this.onFocusIn);if(this.variant==="standard"){this.el.addEventListener("pointerdown",this.onGroupPointerDown);this.el.addEventListener("keydown",this.onGroupKeyDown,true)}}disconnectedCallback(){this.observer?.disconnect();this.el.removeEventListener("click",this.onGroupClick);this.el.removeEventListener("keydown",this.onArrowNav);this.el.removeEventListener("focusin",this.onFocusIn);this.el.removeEventListener("pointerdown",this.onGroupPointerDown);this.el.removeEventListener("keydown",this.onGroupKeyDown,true)}observeSlot(){if(typeof MutationObserver==="undefined")return;this.observer=new MutationObserver((()=>{this.syncChildren();this.updateRovingTabindex()}));this.observer.observe(this.el,{childList:true})}shouldMotion(t){if(!t.selected)return true;if(this.required)return false;return true}runMotion(t){const o=this.getChildren();const n=o.indexOf(t);if(n===-1)return;for(const t of this.motionAnimations){t.cancel()}this.motionAnimations=[];const e=d[this.size];const r=n>0;const s=n<o.length-1;const i=(r?1:0)+(s?1:0);if(i===0)return;const c=e/i;const u="cubic-bezier(0.2, 0, 0, 1)";const h=400;const a=150/h;for(let t=0;t<o.length;t++){const r=t===n;const s=t===n-1||t===n+1;if(!r&&!s)continue;const d=o[t];const i=r?e:-c;let m;if(d.tagName==="MD-BUTTON"){const t=getComputedStyle(d);const o=parseFloat(t.paddingLeft);const n=parseFloat(t.paddingRight);const e=`${Math.max(0,o+i)}px`;const r=`${Math.max(0,n+i)}px`;const s=`${o}px`;const c=`${n}px`;m=d.animate([{offset:0,paddingLeft:s,paddingRight:c,easing:u},{offset:a,paddingLeft:e,paddingRight:r,easing:u},{offset:1,paddingLeft:s,paddingRight:c}],{duration:h})}else{const t=parseFloat(getComputedStyle(d).width);const o=`${Math.max(0,t+i*2)}px`;const n=`${t}px`;m=d.animate([{offset:0,width:n,easing:u},{offset:a,width:o,easing:u},{offset:1,width:n}],{duration:h})}this.motionAnimations.push(m)}}collectSelectedValues(t){return t.filter((t=>t.selected)).map((t=>t.value||""))}componentWillLoad(){this.previousValues=this.collectSelectedValues(this.getChildren())}updateRovingTabindex(){const t=this.getChildren();if(t.length===0)return;let o=null;if(this.activeChild&&t.includes(this.activeChild)&&!this.activeChild.disabled){o=this.activeChild}if(!o&&this.selectionMode==="single-select"){o=t.find((t=>t.selected&&!t.disabled))||null}if(!o){o=t.find((t=>!t.disabled))||t[0]}this.activeChild=o;for(const n of t){n.groupTabindex=n===o?0:-1}}resolveDirection(){let t=this.el;while(t){const o=t.getAttribute?.("dir");if(o==="rtl"||o==="ltr")return o;t=t.parentElement}return"ltr"}getChildren(){return Array.from(this.el.querySelectorAll("md-button, md-icon-button"))}syncChildren(){const t=this.getChildren();const o=t.length;if(o===0)return;for(let n=0;n<o;n++){const e=t[n];e.toggle=true;e.shape=this.shape;e.size=this.size;if(this.variant==="connected"){e.connectedLeft=n>0;e.connectedRight=n<o-1}else{e.connectedLeft=false;e.connectedRight=false}}}render(){const t=this.selectionMode==="single-select";return n(e,{key:"afbb0014a97b31452f8a75ec35ea68c247851977",class:{"md-button-group":true,[`md-button-group--${this.variant}`]:true,[`md-button-group--${this.size}`]:true,[`md-button-group--${this.shape}`]:true,"md-button-group--full-width":this.fullWidth},role:t?"radiogroup":"group","aria-orientation":t?"horizontal":undefined},n("slot",{key:"26bc5eb1cbecfdf27571b4d929b22c47ca34f902"}))}get el(){return r(this)}static get watchers(){return{variant:[{onPropsChange:0}],size:[{onPropsChange:0}],shape:[{onPropsChange:0}],selectionMode:[{onPropsChange:0}],required:[{onPropsChange:0}]}}};i.style=s();export{i as md_button_group};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as o,h as n,H as e,g as r}from"./p-WmvQpZnM.js";const s=()=>`:host{--_gap:var(--md-button-group-gap, max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px)));--_width:var(--md-button-group-width, auto);--_min-width:var(--md-button-group-min-width, auto);--_max-width:var(--md-button-group-max-width, none);--_height:var(--md-button-group-height, auto);--_min-height:var(--md-button-group-min-height, auto);--_max-height:var(--md-button-group-max-height, none);display:inline-flex;align-items:stretch;flex-wrap:nowrap;box-sizing:border-box;vertical-align:middle;inline-size:var(--_width);min-inline-size:var(--_min-width);max-inline-size:var(--_max-width);block-size:var(--_height);min-block-size:var(--_min-height);max-block-size:var(--_max-height)}::slotted(md-button),::slotted(md-icon-button){flex-shrink:0;--md-button-min-height:var(--md-button-group-max-height, var(--md-button-group-_unset));max-block-size:var(--_max-height)}:host(.md-button-group--full-width){display:flex;--_width:100%}:host(.md-button-group--full-width) ::slotted(md-button),:host(.md-button-group--full-width) ::slotted(md-icon-button){flex:1 1 0}:host(.md-button-group--connected.md-button-group--xs) ::slotted(md-button),:host(.md-button-group--connected.md-button-group--xs) ::slotted(md-icon-button),:host(.md-button-group--connected.md-button-group--sm) ::slotted(md-button),:host(.md-button-group--connected.md-button-group--sm) ::slotted(md-icon-button){min-width:48px}:host(.md-button-group--connected.md-button-group--xs){--_c-inner:4px;--_c-sel:16px;--_c-press:2px}:host(.md-button-group--connected.md-button-group--sm){--_c-inner:8px;--_c-sel:20px;--_c-press:4px}:host(.md-button-group--connected.md-button-group--md){--_c-inner:8px;--_c-sel:24px;--_c-press:4px}:host(.md-button-group--connected.md-button-group--lg){--_c-inner:16px;--_c-sel:28px;--_c-press:8px}:host(.md-button-group--connected.md-button-group--xl){--_c-inner:20px;--_c-sel:48px;--_c-press:12px}:host(.md-button-group--connected.md-button-group--round.md-button-group--xs){--_c-outer-btn:16px}:host(.md-button-group--connected.md-button-group--round.md-button-group--sm){--_c-outer-btn:20px}:host(.md-button-group--connected.md-button-group--round.md-button-group--md){--_c-outer-btn:24px}:host(.md-button-group--connected.md-button-group--round.md-button-group--lg){--_c-outer-btn:28px}:host(.md-button-group--connected.md-button-group--round.md-button-group--xl){--_c-outer-btn:48px}:host(.md-button-group--connected.md-button-group--round.md-button-group--xs){--_c-outer-icon:16px}:host(.md-button-group--connected.md-button-group--round.md-button-group--sm){--_c-outer-icon:20px}:host(.md-button-group--connected.md-button-group--round.md-button-group--md){--_c-outer-icon:28px}:host(.md-button-group--connected.md-button-group--round.md-button-group--lg){--_c-outer-icon:48px}:host(.md-button-group--connected.md-button-group--round.md-button-group--xl){--_c-outer-icon:68px}:host(.md-button-group--connected.md-button-group--square){--_c-outer-btn:var(--_c-inner);--_c-outer-icon:var(--_c-inner)}:host(.md-button-group--connected) ::slotted(md-button[connected-right]:not([connected-left])){border-start-start-radius:var(--_c-outer-btn) !important;border-end-start-radius:var(--_c-outer-btn) !important;border-start-end-radius:var(--_c-inner) !important;border-end-end-radius:var(--_c-inner) !important}:host(.md-button-group--connected) ::slotted(md-icon-button[connected-right]:not([connected-left])){border-start-start-radius:var(--_c-outer-icon) !important;border-end-start-radius:var(--_c-outer-icon) !important;border-start-end-radius:var(--_c-inner) !important;border-end-end-radius:var(--_c-inner) !important}:host(.md-button-group--connected) ::slotted(md-button[connected-left]:not([connected-right])){border-start-start-radius:var(--_c-inner) !important;border-end-start-radius:var(--_c-inner) !important;border-start-end-radius:var(--_c-outer-btn) !important;border-end-end-radius:var(--_c-outer-btn) !important}:host(.md-button-group--connected) ::slotted(md-icon-button[connected-left]:not([connected-right])){border-start-start-radius:var(--_c-inner) !important;border-end-start-radius:var(--_c-inner) !important;border-start-end-radius:var(--_c-outer-icon) !important;border-end-end-radius:var(--_c-outer-icon) !important}:host(.md-button-group--connected) ::slotted([connected-left][connected-right]){border-radius:var(--_c-inner) !important}:host(.md-button-group--connected) ::slotted(md-button.md-button--selected[connected-right]:not([connected-left])),:host(.md-button-group--connected) ::slotted(md-button.md-button--selected[connected-left]:not([connected-right])),:host(.md-button-group--connected) ::slotted(md-button.md-button--selected[connected-left][connected-right]),:host(.md-button-group--connected) ::slotted(md-icon-button.md-icon-button--selected[connected-right]:not([connected-left])),:host(.md-button-group--connected) ::slotted(md-icon-button.md-icon-button--selected[connected-left]:not([connected-right])),:host(.md-button-group--connected) ::slotted(md-icon-button.md-icon-button--selected[connected-left][connected-right]){border-radius:var(--_c-sel) !important}:host(.md-button-group--connected) ::slotted(md-button.md-button--pressed[connected-right]:not([connected-left])),:host(.md-button-group--connected) ::slotted(md-button.md-button--pressed[connected-left]:not([connected-right])),:host(.md-button-group--connected) ::slotted(md-button.md-button--pressed[connected-left][connected-right]),:host(.md-button-group--connected) ::slotted(md-icon-button.md-icon-button--pressed[connected-right]:not([connected-left])),:host(.md-button-group--connected) ::slotted(md-icon-button.md-icon-button--pressed[connected-left]:not([connected-right])),:host(.md-button-group--connected) ::slotted(md-icon-button.md-icon-button--pressed[connected-left][connected-right]){border-radius:var(--_c-press) !important}@media (prefers-reduced-motion: reduce){:host{transition:none}}@media (forced-colors: active){:host{forced-color-adjust:none}}:host(.md-button-group--xs){--_gap:var(--md-button-group-gap, max(10px, calc(18px + var(--md-sys-density-scale, 0) * 2px)))}:host(.md-button-group--sm){--_gap:var(--md-button-group-gap, max(6px, calc(12px + var(--md-sys-density-scale, 0) * 1.5px)))}:host(.md-button-group--connected){--_gap:var(--md-button-group-gap, 2px)}:host{gap:var(--_gap)}: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={xs:3,sm:4,md:5,lg:6,xl:8};const i=class{constructor(n){t(this,n);this.mdSelectionChange=o(this,"mdSelectionChange",7);this.variant="standard";this.size="sm";this.shape="round";this.selectionMode="single-select";this.required=false;this.fullWidth=false;this.density=0;this.motionAnimations=[];this.onGroupPointerDown=t=>{if(this.variant!=="standard")return;const o=t.target.closest("md-button, md-icon-button");if(o&&this.shouldMotion(o))this.runMotion(o)};this.onGroupKeyDown=t=>{if(this.variant!=="standard")return;if(t.key!=="Enter"&&t.key!==" ")return;const o=t.target.closest("md-button, md-icon-button");if(o&&this.shouldMotion(o))this.runMotion(o)};this.previousValues=[];this.onGroupClick=t=>{const o=t.target.closest?.("md-button, md-icon-button");if(!o)return;const n=this.getChildren();if(!n.includes(o))return;if(this.selectionMode==="single-select"){for(const t of n){if(t!==o)t.selected=false}}if(this.required){const t=n.some((t=>t.selected));if(!t){o.selected=true}}const e=this.collectSelectedValues(n);const r=new Set(this.previousValues);const s=new Set(e);const d=e.filter((t=>!r.has(t)));const i=this.previousValues.filter((t=>!s.has(t)));this.previousValues=e;this.activeChild=o;this.updateRovingTabindex();this.mdSelectionChange.emit({values:e,added:d,removed:i,originalEvent:t})};this.onArrowNav=t=>{const o=t.key;if(o!=="ArrowLeft"&&o!=="ArrowRight"&&o!=="Home"&&o!=="End")return;const n=this.getChildren().filter((t=>!t.disabled));if(n.length===0)return;const e=t.target.closest("md-button, md-icon-button");const r=e?n.indexOf(e):-1;const s=this.resolveDirection()==="rtl";let d=r;if(o==="Home"){d=0}else if(o==="End"){d=n.length-1}else{const t=o==="ArrowRight"!==s;const e=t?1:-1;d=r<0?t?0:n.length-1:(r+e+n.length)%n.length}const i=n[d];if(!i||i===e)return;t.preventDefault();this.activeChild=i;this.updateRovingTabindex();i.focus()};this.activeChild=null;this.onFocusIn=t=>{const o=t.target?.closest?.("md-button, md-icon-button");if(!o)return;if(o===this.activeChild)return;const n=this.getChildren();if(!n.includes(o))return;this.activeChild=o;this.updateRovingTabindex()}}onPropsChange(){this.syncChildren();this.updateRovingTabindex()}componentDidLoad(){this.observeSlot();this.syncChildren();this.updateRovingTabindex();this.el.addEventListener("click",this.onGroupClick);this.el.addEventListener("keydown",this.onArrowNav);this.el.addEventListener("focusin",this.onFocusIn);if(this.variant==="standard"){this.el.addEventListener("pointerdown",this.onGroupPointerDown);this.el.addEventListener("keydown",this.onGroupKeyDown,true)}}disconnectedCallback(){this.observer?.disconnect();this.el.removeEventListener("click",this.onGroupClick);this.el.removeEventListener("keydown",this.onArrowNav);this.el.removeEventListener("focusin",this.onFocusIn);this.el.removeEventListener("pointerdown",this.onGroupPointerDown);this.el.removeEventListener("keydown",this.onGroupKeyDown,true)}observeSlot(){if(typeof MutationObserver==="undefined")return;this.observer=new MutationObserver((()=>{this.syncChildren();this.updateRovingTabindex()}));this.observer.observe(this.el,{childList:true})}shouldMotion(t){if(!t.selected)return true;if(this.required)return false;return true}runMotion(t){const o=this.getChildren();const n=o.indexOf(t);if(n===-1)return;for(const t of this.motionAnimations){t.cancel()}this.motionAnimations=[];const e=d[this.size];const r=n>0;const s=n<o.length-1;const i=(r?1:0)+(s?1:0);if(i===0)return;const c=e/i;const u="cubic-bezier(0.2, 0, 0, 1)";const h=400;const a=150/h;for(let t=0;t<o.length;t++){const r=t===n;const s=t===n-1||t===n+1;if(!r&&!s)continue;const d=o[t];const i=r?e:-c;let m;if(d.tagName==="MD-BUTTON"){const t=getComputedStyle(d);const o=parseFloat(t.paddingLeft);const n=parseFloat(t.paddingRight);const e=`${Math.max(0,o+i)}px`;const r=`${Math.max(0,n+i)}px`;const s=`${o}px`;const c=`${n}px`;m=d.animate([{offset:0,paddingLeft:s,paddingRight:c,easing:u},{offset:a,paddingLeft:e,paddingRight:r,easing:u},{offset:1,paddingLeft:s,paddingRight:c}],{duration:h})}else{const t=parseFloat(getComputedStyle(d).width);const o=`${Math.max(0,t+i*2)}px`;const n=`${t}px`;m=d.animate([{offset:0,width:n,easing:u},{offset:a,width:o,easing:u},{offset:1,width:n}],{duration:h})}this.motionAnimations.push(m)}}collectSelectedValues(t){return t.filter((t=>t.selected)).map((t=>t.value||""))}componentWillLoad(){this.previousValues=this.collectSelectedValues(this.getChildren())}updateRovingTabindex(){const t=this.getChildren();if(t.length===0)return;let o=null;if(this.activeChild&&t.includes(this.activeChild)&&!this.activeChild.disabled){o=this.activeChild}if(!o&&this.selectionMode==="single-select"){o=t.find((t=>t.selected&&!t.disabled))||null}if(!o){o=t.find((t=>!t.disabled))||t[0]}this.activeChild=o;for(const n of t){n.groupTabindex=n===o?0:-1}}resolveDirection(){let t=this.el;while(t){const o=t.getAttribute?.("dir");if(o==="rtl"||o==="ltr")return o;t=t.parentElement}return"ltr"}getChildren(){return Array.from(this.el.querySelectorAll("md-button, md-icon-button"))}syncChildren(){const t=this.getChildren();const o=t.length;if(o===0)return;for(let n=0;n<o;n++){const e=t[n];e.toggle=true;e.shape=this.shape;e.size=this.size;if(this.variant==="connected"){e.connectedLeft=n>0;e.connectedRight=n<o-1}else{e.connectedLeft=false;e.connectedRight=false}}}render(){const t=this.selectionMode==="single-select";return n(e,{key:"99fac3da7c1f65b51895c6e530ffc4d62da8b360",class:{"md-button-group":true,[`md-button-group--${this.variant}`]:true,[`md-button-group--${this.size}`]:true,[`md-button-group--${this.shape}`]:true,"md-button-group--full-width":this.fullWidth},role:t?"radiogroup":"group","aria-orientation":t?"horizontal":undefined},n("slot",{key:"1f63ab2203ce8b8cd7fb1180e101421a65c9ae8c"}))}get el(){return r(this)}static get watchers(){return{variant:[{onPropsChange:0}],size:[{onPropsChange:0}],shape:[{onPropsChange:0}],selectionMode:[{onPropsChange:0}],required:[{onPropsChange:0}]}}};i.style=s();export{i as md_button_group};
|
|
2
|
+
//# sourceMappingURL=p-707b6d7c.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as e,h as s,H as i,g as r}from"./p-WmvQpZnM.js";const n=()=>`:host{--_container-color:var(--md-list-container-color, var(--md-sys-color-surface, #fffbfe));--_container-shape:var(--md-list-container-shape, 0px);--_padding-block:var(--md-list-padding-block, var(--md-sys-spacing-inset-sm, 8px));--_padding-inline:var(--md-list-padding-inline, 0px);--_segmented-gap:var(--md-list-segmented-gap, 2px);--_drop-placeholder-color:var(--md-list-drop-placeholder-color, color-mix(in srgb, var(--md-sys-color-primary-container, #eaddff) 45%, transparent));--_drop-placeholder-outline-color:var(--md-list-drop-placeholder-outline-color, color-mix(in srgb, var(--md-sys-color-primary, #6750a4) 55%, transparent));--_drop-placeholder-outline-width:var(--md-list-drop-placeholder-outline-width, 2px);--_drop-placeholder-shape:var(--md-list-drop-placeholder-shape, var(--md-sys-shape-corner-large, 16px));--_drop-placeholder-opacity:var(--md-list-drop-placeholder-opacity, 1);display:flex;flex-direction:column;inline-size:100%;background-color:var(--_container-color);color:var(--md-sys-color-on-surface, #1c1b1f);border-radius:var(--_container-shape);padding-block:var(--_padding-block);padding-inline:var(--_padding-inline);box-sizing:border-box;overflow:clip}:host(.md-list--standard){--_container-color:var(--md-list-container-color, transparent);--_container-shape:var(--md-list-container-shape, 0px);gap:0;overflow:visible}:host(.md-list--standard) ::slotted(md-list-item){--md-list-item-container-shape:0px;}:host(.md-list--standard) ::slotted(md-list-item:first-of-type){--md-list-item-container-shape-start-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-start-end:var(--md-sys-shape-corner-large, 16px)}:host(.md-list--standard) ::slotted(md-list-item:last-of-type){--md-list-item-container-shape-end-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-end-end:var(--md-sys-shape-corner-large, 16px)}:host(.md-list--standard) ::slotted(md-list-item:only-of-type){--md-list-item-container-shape-start-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-start-end:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-end-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-end-end:var(--md-sys-shape-corner-large, 16px)}:host(.md-list--segmented){--_container-color:var(--md-list-container-color, transparent);--_container-shape:var(--md-list-container-shape, 0px);--_padding-inline:var(--md-list-padding-inline, 0px);--_padding-block:var(--md-list-padding-block, 0px);gap:var(--_segmented-gap);overflow:visible}:host(.md-list--segmented) ::slotted(md-list-item){--md-list-item-container-shape:var(--md-sys-shape-corner-extra-small, 4px);}:host(.md-list--segmented) ::slotted(md-list-item:first-of-type){--md-list-item-container-shape-start-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-start-end:var(--md-sys-shape-corner-large, 16px)}:host(.md-list--segmented) ::slotted(md-list-item:last-of-type){--md-list-item-container-shape-end-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-end-end:var(--md-sys-shape-corner-large, 16px)}:host(.md-list--segmented) ::slotted(md-list-item:only-of-type){--md-list-item-container-shape-start-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-start-end:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-end-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-end-end:var(--md-sys-shape-corner-large, 16px)}:host(.md-list--single-select),:host(.md-list--multi-select){}:host(:focus){outline:none}:host(.md-list--reordering){position:relative}.md-list__drop-placeholder{position:absolute;inset-inline-start:var(--_padding-inline);inset-inline-end:var(--_padding-inline);inset-block-start:0;box-sizing:border-box;z-index:0;pointer-events:none;border-radius:var(--_drop-placeholder-shape);background-color:var(--_drop-placeholder-color);border:var(--_drop-placeholder-outline-width) dashed var(--_drop-placeholder-outline-color);opacity:var(--_drop-placeholder-opacity);transition:transform var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@media (prefers-reduced-motion: reduce){.md-list__drop-placeholder{transition: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}`;function o(t){let e=t.getRootNode().activeElement;while(e){if(e===t)return true;e=e.parentElement??(e.getRootNode().host??null)}return false}const a=class{constructor(s){t(this,s);this.mdSelect=e(this,"mdSelect",7);this.mdActivate=e(this,"mdActivate",7);this.mdReorder=e(this,"mdReorder",7);this.listStyle="standard";this.selectionMode="none";this.interactionMode="single-action";this.reorderable=false;this.label="";this.labelledby="";this.roleOverride="";this.density=0;this.activeIndex=0;this.dropPlaceholder=null;this.typeaheadBuffer="";this.typeaheadTimer=null;this.childObserver=null;this.originalOrder=[];this.dragState=null;this.handleMdItemSelect=t=>{this.onExpandedItemSelect(t)};this.onDragMove=t=>{const e=this.dragState;if(!e||t.pointerId!==e.pointerId)return;const s=t.clientY-e.startClientY;e.item.style.transform=`translateY(${s}px)`;const i=e.rects[e.fromIndex];const r=i.center+s;let n=e.fromIndex;for(let t=0;t<e.rects.length;t++){if(t===e.fromIndex)continue;const s=e.rects[t];if(t<e.fromIndex&&r<s.center)n=Math.min(n,t);if(t>e.fromIndex&&r>s.center)n=Math.max(n,t)}if(n!==e.targetIndex){e.targetIndex=n;this.applySiblingShifts();this.dropPlaceholder={top:e.rects[n].top-e.listTop,height:e.rects[e.fromIndex].height}}};this.onDragEnd=t=>{const e=this.dragState;if(!e||t.pointerId!==e.pointerId)return;this.el.removeEventListener("pointermove",this.onDragMove);this.el.removeEventListener("pointerup",this.onDragEnd);this.el.removeEventListener("pointercancel",this.onDragEnd);try{this.el.releasePointerCapture(e.pointerId)}catch{}e.rects.forEach((t=>{t.item.classList.remove("md-list-item--shifting");t.item.style.transform=""}));e.item.classList.remove("md-list-item--dragged");this.dropPlaceholder=null;const{fromIndex:s,targetIndex:i}=e;this.dragState=null;if(i!==s){this.moveItem(s,i);this.emitReorder(s,i)}}}get items(){return Array.from(this.el.children).filter((t=>t.tagName==="MD-LIST-ITEM"))}get focusableItems(){return this.items.filter((t=>this.isItemFocusable(t)))}hasExpandableRows(){return this.items.some((t=>t.expandable||t.hasAttribute("expandable")))}get effectiveRole(){if(this.roleOverride)return this.roleOverride;if(this.selectionMode!=="none"){return this.hasExpandableRows()?"list":"listbox"}return"list"}get childDividers(){return Array.from(this.el.children).filter((t=>t.tagName==="MD-DIVIDER"))}syncDividers(){const t=this.effectiveRole;const e=t==="list"||t==="listbox";this.childDividers.forEach((t=>{if(e)t.setAttribute("aria-hidden","true");else t.removeAttribute("aria-hidden")}))}isItemFocusable(t){if(t.disabled)return false;if(this.selectionMode!=="none")return true;if(this.reorderable)return true;return t.type!=="text"}componentDidLoad(){this.syncSelectionMode();this.syncInteractionMode();this.syncReorderable();this.syncContainerRole();this.syncDividers();this.originalOrder=[...this.items];this.refreshRovingTabindex(this.findInitialActiveIndex(),false);this.el.addEventListener("mdItemSelect",this.handleMdItemSelect);if(typeof MutationObserver!=="undefined"){this.childObserver=new MutationObserver((t=>{const e=t.some((t=>t.type==="childList"));if(e){this.syncSelectionMode();this.syncInteractionMode();this.syncReorderable();this.syncContainerRole();this.syncDividers();this.items.forEach((t=>{if(!this.originalOrder.includes(t))this.originalOrder.push(t)}));this.refreshRovingTabindex(this.activeIndex,false)}}));this.childObserver.observe(this.el,{childList:true})}}disconnectedCallback(){this.el.removeEventListener("mdItemSelect",this.handleMdItemSelect);this.childObserver?.disconnect();this.childObserver=null;if(this.typeaheadTimer!==null){window.clearTimeout(this.typeaheadTimer);this.typeaheadTimer=null}if(this.dragState){this.el.removeEventListener("pointermove",this.onDragMove);this.el.removeEventListener("pointerup",this.onDragEnd);this.el.removeEventListener("pointercancel",this.onDragEnd);this.dragState=null;this.dropPlaceholder=null}}onSelectionModeChange(){this.syncSelectionMode();this.syncDividers();this.refreshRovingTabindex(this.activeIndex,false)}onInteractionModeChange(){this.syncInteractionMode()}onReorderableChange(){this.syncReorderable();this.refreshRovingTabindex(this.activeIndex,false)}onRoleOverrideChange(){this.syncContainerRole();this.syncDividers()}syncReorderable(){const t=this.reorderable;this.items.forEach((e=>{e.reorderable=t}))}syncContainerRole(){const t=this.effectiveRole;this.items.forEach((e=>{e.containerRole=t}))}syncInteractionMode(){const t=this.interactionMode;this.items.forEach((e=>{e.interactionMode=t;if(t==="single-action"){e.removeAttribute("data-interaction-mode")}else{e.setAttribute("data-interaction-mode",t)}}))}syncSelectionMode(){const t=this.selectionMode;const e=s=>{s.selectionMode=t;if(t==="none"){s.removeAttribute("data-selection-mode")}else{s.setAttribute("data-selection-mode",t)}if(s.expandable){if(s.selected)s.selected=false;Array.from(s.children).forEach((t=>{if(t.tagName==="MD-LIST-ITEM"&&t.getAttribute("slot")==="expanded-content"){e(t)}}))}};this.items.forEach(e)}findInitialActiveIndex(){const t=this.items;if(t.length===0)return 0;const e=t.findIndex((t=>t.selected&&!t.expandable&&this.isItemFocusable(t)));if(e>=0)return e;const s=t.findIndex((t=>this.isItemFocusable(t)));return s>=0?s:0}refreshRovingTabindex(t,e,s=false){const i=this.items;const r=this.focusableItems;if(i.length===0)return;if(r.length===0){i.forEach((t=>{t.tabbable=false;t.rovingFocusVisible=false}));return}let n=t;if(!i[n]||!this.isItemFocusable(i[n])){n=i.indexOf(r[0])}this.activeIndex=n;i.forEach(((t,e)=>{t.tabbable=e===n;t.rovingFocusVisible=s&&e===n}));if(e){this.mdActivate.emit({index:n,item:i[n]})}}onItemClick(t){const e=t.detail;const s=this.items;const i=s[e.index];if(!i||i.expandable)return;this.activateItem(e.index,true)}onExpandedItemSelect(t){if(this.selectionMode==="none")return;const e=this.findExpandableParentFromEvent(t);if(!e)return;const s=this.items.indexOf(e);if(s<0)return;this.mdSelect.emit({index:s,childIndex:t.detail.index,expanded:e.expanded,value:t.detail.value,selected:t.detail.selected,item:t.detail.item})}onRequestActivation(t){const e=t.composedPath().find((t=>t?.tagName==="MD-LIST-ITEM"));if(!e)return;const s=this.items.indexOf(e);if(s>=0&&s!==this.activeIndex){this.refreshRovingTabindex(s,true)}}onHostPointerDown(t){if(!this.reorderable||t.button!==0)return;const e=t.composedPath();const s=e.some((t=>t?.dataset?.listDragHandle==="true"));if(!s)return;const i=e.find((t=>t?.tagName==="MD-LIST-ITEM"));if(!i||i.disabled)return;t.preventDefault();this.startDrag(i,t)}startDrag(t,e){const s=this.items;const i=s.indexOf(t);if(i<0)return;const r=s.map((t=>{const e=t.getBoundingClientRect();return{item:t,top:e.top,height:e.height,center:e.top+e.height/2}}));const n=r.length>1?r[1].top-r[0].top:r[0]?.height??0;const o=this.el.getBoundingClientRect().top;this.dragState={item:t,pointerId:e.pointerId,startClientY:e.clientY,rects:r,fromIndex:i,targetIndex:i,rowGap:n,listTop:o};this.dropPlaceholder={top:r[i].top-o,height:r[i].height};t.classList.add("md-list-item--dragged");try{this.el.setPointerCapture(e.pointerId)}catch{}this.el.addEventListener("pointermove",this.onDragMove);this.el.addEventListener("pointerup",this.onDragEnd);this.el.addEventListener("pointercancel",this.onDragEnd)}applySiblingShifts(){const t=this.dragState;if(!t)return;const{fromIndex:e,targetIndex:s,rowGap:i,rects:r}=t;r.forEach(((r,n)=>{if(r.item===t.item)return;let o=0;if(e<s&&n>e&&n<=s)o=-i;else if(e>s&&n<e&&n>=s)o=i;r.item.classList.add("md-list-item--shifting");r.item.style.transform=o?`translateY(${o}px)`:""}))}onItemRequestReorder(t){if(!this.reorderable)return;t.stopPropagation();const{direction:e,from:s}=t.detail;const i=this.items;const r=e==="up"?s-1:s+1;if(s<0||r<0||r>=i.length)return;if(i[s]?.disabled)return;this.moveItem(s,r);this.emitReorder(s,r);const n=this.items[r];if(n){this.refreshRovingTabindex(r,false,true);requestAnimationFrame((()=>this.focusListItem(n)))}}moveItem(t,e){const s=this.items;const i=s[t];const r=s[e];if(!i||!r)return;if(t<e){this.el.insertBefore(i,r.nextSibling)}else{this.el.insertBefore(i,r)}}emitReorder(t,e){const s=this.items.map((t=>this.originalOrder.indexOf(t)));this.mdReorder.emit({from:t,to:e,order:s})}handleKeyDown(t){if(this.el.closest("md-search"))return;if(t.altKey&&(t.key==="ArrowUp"||t.key==="ArrowDown"))return;const e=this.focusableItems;if(e.length===0)return;const s=this.items;const i=s.find((t=>o(t)));const r=i?e.indexOf(i):-1;switch(t.key){case"ArrowDown":{t.preventDefault();const s=r<e.length-1?r+1:0;this.focusItem(e[s]);return}case"ArrowUp":{t.preventDefault();const s=r>0?r-1:e.length-1;this.focusItem(e[s]);return}case"Home":{t.preventDefault();this.focusItem(e[0]);return}case"End":{t.preventDefault();this.focusItem(e[e.length-1]);return}}if(t.key.length===1&&/\S/.test(t.key)&&!t.metaKey&&!t.ctrlKey&&!t.altKey){this.handleTypeahead(t.key.toLowerCase())}}handleTypeahead(t){this.typeaheadBuffer+=t;if(this.typeaheadTimer!==null){window.clearTimeout(this.typeaheadTimer)}this.typeaheadTimer=window.setTimeout((()=>{this.typeaheadBuffer="";this.typeaheadTimer=null}),500);const e=this.focusableItems;const s=this.typeaheadBuffer;const i=e.find((t=>{const e=(t.headline||t.textContent||"").trim().toLowerCase();return e.startsWith(s)}));if(i){this.focusItem(i)}}focusListItem(t){void t.setFocus({focusVisible:true,preventScroll:true})}focusItem(t){if(!t)return;const e=this.items.indexOf(t);if(e<0)return;this.refreshRovingTabindex(e,true,true);requestAnimationFrame((()=>this.focusListItem(t)))}onFocusOut(t){const e=t.relatedTarget;if(e&&this.el.contains(e))return;this.items.forEach((t=>{t.rovingFocusVisible=false}))}findExpandableParentFromEvent(t){const e=typeof t.composedPath==="function"?t.composedPath():[t.target];for(const t of e){const e=t;if(e?.tagName!=="MD-LIST-ITEM"||!e.expandable)continue;if(e.parentElement===this.el)return e}return null}activateItem(t,e){const s=this.items;const i=s[t];if(!i||i.expandable)return;if(this.selectionMode==="single-select"){s.forEach(((e,s)=>{if(s!==t&&e.selected)e.selected=false}));i.selected=true;if(e){this.mdSelect.emit({index:t,value:i.headline||(i.textContent??"").trim(),selected:true,item:i})}}else if(this.selectionMode==="multi-select"){i.selected=!i.selected;if(e){this.mdSelect.emit({index:t,value:i.headline||(i.textContent??"").trim(),selected:i.selected,item:i})}}}getRovingFocusItem(t){if(t.length===0)return null;const e=t.find((t=>t.tabbable));if(e)return e;const s=this.items[this.activeIndex];if(s&&t.includes(s))return s;return t[0]}async activateNext(){const t=this.focusableItems;if(t.length===0)return null;const e=this.getRovingFocusItem(t);const s=e?t.indexOf(e):-1;const i=s<t.length-1?s+1:0;this.focusItem(t[i]);return t[i]}async activatePrevious(){const t=this.focusableItems;if(t.length===0)return null;const e=this.getRovingFocusItem(t);const s=e?t.indexOf(e):-1;const i=s>0?s-1:t.length-1;this.focusItem(t[i]);return t[i]}async selectItem(t){if(this.selectionMode==="none")return;this.activateItem(t,false)}async getSelectedIndices(){return this.items.map(((t,e)=>t.selected?e:-1)).filter((t=>t>=0))}render(){const t=this.effectiveRole;const e=t==="listbox"&&this.selectionMode==="multi-select"?"true":null;return s(i,{key:"b276cebae42f64386ad013dc37c0e3926ea00594",class:{"md-list":true,[`md-list--${this.listStyle}`]:true,[`md-list--${this.selectionMode}`]:this.selectionMode!=="none",[`md-list--${this.interactionMode}`]:true,"md-list--reorderable":this.reorderable,"md-list--reordering":!!this.dropPlaceholder},role:t,"aria-label":this.label||null,"aria-labelledby":this.labelledby||null,"aria-multiselectable":e},this.dropPlaceholder&&s("div",{key:"50ef5fcce48b5ab1a53d1bd74d254048c919bba0",class:"md-list__drop-placeholder",part:"drop-placeholder","aria-hidden":"true",style:{transform:`translateY(${this.dropPlaceholder.top}px)`,blockSize:`${this.dropPlaceholder.height}px`}}),s("slot",{key:"3f3144e9735900e8ba29abfd2190b9c8ce585b56"}))}get el(){return r(this)}static get watchers(){return{selectionMode:[{onSelectionModeChange:0}],interactionMode:[{onInteractionModeChange:0}],reorderable:[{onReorderableChange:0}],roleOverride:[{onRoleOverrideChange:0}]}}};a.style=n();export{a as md_list};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as e,h as s,H as i,g as r}from"./p-WmvQpZnM.js";const n=()=>`:host{--_container-color:var(--md-list-container-color, var(--md-sys-color-surface, #fffbfe));--_container-shape:var(--md-list-container-shape, 0px);--_padding-block:var(--md-list-padding-block, var(--md-sys-spacing-inset-sm, 8px));--_padding-inline:var(--md-list-padding-inline, 0px);--_segmented-gap:var(--md-list-segmented-gap, 2px);--_drop-placeholder-color:var(--md-list-drop-placeholder-color, color-mix(in srgb, var(--md-sys-color-primary-container, #eaddff) 45%, transparent));--_drop-placeholder-outline-color:var(--md-list-drop-placeholder-outline-color, color-mix(in srgb, var(--md-sys-color-primary, #6750a4) 55%, transparent));--_drop-placeholder-outline-width:var(--md-list-drop-placeholder-outline-width, 2px);--_drop-placeholder-shape:var(--md-list-drop-placeholder-shape, var(--md-sys-shape-corner-large, 16px));--_drop-placeholder-opacity:var(--md-list-drop-placeholder-opacity, 1);display:flex;flex-direction:column;inline-size:100%;background-color:var(--_container-color);color:var(--md-sys-color-on-surface, #1c1b1f);border-radius:var(--_container-shape);padding-block:var(--_padding-block);padding-inline:var(--_padding-inline);box-sizing:border-box;overflow:clip}:host(.md-list--standard){--_container-color:var(--md-list-container-color, transparent);--_container-shape:var(--md-list-container-shape, 0px);gap:0;overflow:visible}:host(.md-list--standard) ::slotted(md-list-item){--md-list-item-container-shape:0px;}:host(.md-list--standard) ::slotted(md-list-item:first-of-type){--md-list-item-container-shape-start-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-start-end:var(--md-sys-shape-corner-large, 16px)}:host(.md-list--standard) ::slotted(md-list-item:last-of-type){--md-list-item-container-shape-end-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-end-end:var(--md-sys-shape-corner-large, 16px)}:host(.md-list--standard) ::slotted(md-list-item:only-of-type){--md-list-item-container-shape-start-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-start-end:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-end-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-end-end:var(--md-sys-shape-corner-large, 16px)}:host(.md-list--segmented){--_container-color:var(--md-list-container-color, transparent);--_container-shape:var(--md-list-container-shape, 0px);--_padding-inline:var(--md-list-padding-inline, 0px);--_padding-block:var(--md-list-padding-block, 0px);gap:var(--_segmented-gap);overflow:visible}:host(.md-list--segmented) ::slotted(md-list-item){--md-list-item-container-shape:var(--md-sys-shape-corner-extra-small, 4px);}:host(.md-list--segmented) ::slotted(md-list-item:first-of-type){--md-list-item-container-shape-start-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-start-end:var(--md-sys-shape-corner-large, 16px)}:host(.md-list--segmented) ::slotted(md-list-item:last-of-type){--md-list-item-container-shape-end-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-end-end:var(--md-sys-shape-corner-large, 16px)}:host(.md-list--segmented) ::slotted(md-list-item:only-of-type){--md-list-item-container-shape-start-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-start-end:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-end-start:var(--md-sys-shape-corner-large, 16px);--md-list-item-container-shape-end-end:var(--md-sys-shape-corner-large, 16px)}:host(.md-list--single-select),:host(.md-list--multi-select){}:host(:focus){outline:none}:host(.md-list--reordering){position:relative}.md-list__drop-placeholder{position:absolute;inset-inline-start:var(--_padding-inline);inset-inline-end:var(--_padding-inline);inset-block-start:0;box-sizing:border-box;z-index:0;pointer-events:none;border-radius:var(--_drop-placeholder-shape);background-color:var(--_drop-placeholder-color);border:var(--_drop-placeholder-outline-width) dashed var(--_drop-placeholder-outline-color);opacity:var(--_drop-placeholder-opacity);transition:transform var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@media (prefers-reduced-motion: reduce){.md-list__drop-placeholder{transition: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}`;function o(t){let e=t.getRootNode().activeElement;while(e){if(e===t)return true;e=e.parentElement??(e.getRootNode().host??null)}return false}const a=class{constructor(s){t(this,s);this.mdSelect=e(this,"mdSelect",7);this.mdActivate=e(this,"mdActivate",7);this.mdReorder=e(this,"mdReorder",7);this.listStyle="standard";this.selectionMode="none";this.interactionMode="single-action";this.reorderable=false;this.label="";this.labelledby="";this.roleOverride="";this.density=0;this.activeIndex=0;this.dropPlaceholder=null;this.typeaheadBuffer="";this.typeaheadTimer=null;this.childObserver=null;this.originalOrder=[];this.dragState=null;this.handleMdItemSelect=t=>{this.onExpandedItemSelect(t)};this.onDragMove=t=>{const e=this.dragState;if(!e||t.pointerId!==e.pointerId)return;const s=t.clientY-e.startClientY;e.item.style.transform=`translateY(${s}px)`;const i=e.rects[e.fromIndex];const r=i.center+s;let n=e.fromIndex;for(let t=0;t<e.rects.length;t++){if(t===e.fromIndex)continue;const s=e.rects[t];if(t<e.fromIndex&&r<s.center)n=Math.min(n,t);if(t>e.fromIndex&&r>s.center)n=Math.max(n,t)}if(n!==e.targetIndex){e.targetIndex=n;this.applySiblingShifts();this.dropPlaceholder={top:e.rects[n].top-e.listTop,height:e.rects[e.fromIndex].height}}};this.onDragEnd=t=>{const e=this.dragState;if(!e||t.pointerId!==e.pointerId)return;this.el.removeEventListener("pointermove",this.onDragMove);this.el.removeEventListener("pointerup",this.onDragEnd);this.el.removeEventListener("pointercancel",this.onDragEnd);try{this.el.releasePointerCapture(e.pointerId)}catch{}e.rects.forEach((t=>{t.item.classList.remove("md-list-item--shifting");t.item.style.transform=""}));e.item.classList.remove("md-list-item--dragged");this.dropPlaceholder=null;const{fromIndex:s,targetIndex:i}=e;this.dragState=null;if(i!==s){this.moveItem(s,i);this.emitReorder(s,i)}}}get items(){return Array.from(this.el.children).filter((t=>t.tagName==="MD-LIST-ITEM"))}get focusableItems(){return this.items.filter((t=>this.isItemFocusable(t)))}hasExpandableRows(){return this.items.some((t=>t.expandable||t.hasAttribute("expandable")))}get effectiveRole(){if(this.roleOverride)return this.roleOverride;if(this.selectionMode!=="none"){return this.hasExpandableRows()?"list":"listbox"}return"list"}get childDividers(){return Array.from(this.el.children).filter((t=>t.tagName==="MD-DIVIDER"))}syncDividers(){const t=this.effectiveRole;const e=t==="list"||t==="listbox";this.childDividers.forEach((t=>{if(e)t.setAttribute("aria-hidden","true");else t.removeAttribute("aria-hidden")}))}isItemFocusable(t){if(t.disabled)return false;if(this.selectionMode!=="none")return true;if(this.reorderable)return true;return t.type!=="text"}componentDidLoad(){this.syncSelectionMode();this.syncInteractionMode();this.syncReorderable();this.syncContainerRole();this.syncDividers();this.originalOrder=[...this.items];this.refreshRovingTabindex(this.findInitialActiveIndex(),false);this.el.addEventListener("mdItemSelect",this.handleMdItemSelect);if(typeof MutationObserver!=="undefined"){this.childObserver=new MutationObserver((t=>{const e=t.some((t=>t.type==="childList"));if(e){this.syncSelectionMode();this.syncInteractionMode();this.syncReorderable();this.syncContainerRole();this.syncDividers();this.items.forEach((t=>{if(!this.originalOrder.includes(t))this.originalOrder.push(t)}));this.refreshRovingTabindex(this.activeIndex,false)}}));this.childObserver.observe(this.el,{childList:true})}}disconnectedCallback(){this.el.removeEventListener("mdItemSelect",this.handleMdItemSelect);this.childObserver?.disconnect();this.childObserver=null;if(this.typeaheadTimer!==null){window.clearTimeout(this.typeaheadTimer);this.typeaheadTimer=null}if(this.dragState){this.el.removeEventListener("pointermove",this.onDragMove);this.el.removeEventListener("pointerup",this.onDragEnd);this.el.removeEventListener("pointercancel",this.onDragEnd);this.dragState=null;this.dropPlaceholder=null}}onSelectionModeChange(){this.syncSelectionMode();this.syncDividers();this.refreshRovingTabindex(this.activeIndex,false)}onInteractionModeChange(){this.syncInteractionMode()}onReorderableChange(){this.syncReorderable();this.refreshRovingTabindex(this.activeIndex,false)}onRoleOverrideChange(){this.syncContainerRole();this.syncDividers()}syncReorderable(){const t=this.reorderable;this.items.forEach((e=>{e.reorderable=t}))}syncContainerRole(){const t=this.effectiveRole;this.items.forEach((e=>{e.containerRole=t}))}syncInteractionMode(){const t=this.interactionMode;this.items.forEach((e=>{e.interactionMode=t;if(t==="single-action"){e.removeAttribute("data-interaction-mode")}else{e.setAttribute("data-interaction-mode",t)}}))}syncSelectionMode(){const t=this.selectionMode;const e=s=>{s.selectionMode=t;if(t==="none"){s.removeAttribute("data-selection-mode")}else{s.setAttribute("data-selection-mode",t)}if(s.expandable){if(s.selected)s.selected=false;Array.from(s.children).forEach((t=>{if(t.tagName==="MD-LIST-ITEM"&&t.getAttribute("slot")==="expanded-content"){e(t)}}))}};this.items.forEach(e)}findInitialActiveIndex(){const t=this.items;if(t.length===0)return 0;const e=t.findIndex((t=>t.selected&&!t.expandable&&this.isItemFocusable(t)));if(e>=0)return e;const s=t.findIndex((t=>this.isItemFocusable(t)));return s>=0?s:0}refreshRovingTabindex(t,e,s=false){const i=this.items;const r=this.focusableItems;if(i.length===0)return;if(r.length===0){i.forEach((t=>{t.tabbable=false;t.rovingFocusVisible=false}));return}let n=t;if(!i[n]||!this.isItemFocusable(i[n])){n=i.indexOf(r[0])}this.activeIndex=n;i.forEach(((t,e)=>{t.tabbable=e===n;t.rovingFocusVisible=s&&e===n}));if(e){this.mdActivate.emit({index:n,item:i[n]})}}onItemClick(t){const e=t.detail;const s=this.items;const i=s[e.index];if(!i||i.expandable)return;this.activateItem(e.index,true)}onExpandedItemSelect(t){if(this.selectionMode==="none")return;const e=this.findExpandableParentFromEvent(t);if(!e)return;const s=this.items.indexOf(e);if(s<0)return;this.mdSelect.emit({index:s,childIndex:t.detail.index,expanded:e.expanded,value:t.detail.value,selected:t.detail.selected,item:t.detail.item})}onRequestActivation(t){const e=t.composedPath().find((t=>t?.tagName==="MD-LIST-ITEM"));if(!e)return;const s=this.items.indexOf(e);if(s>=0&&s!==this.activeIndex){this.refreshRovingTabindex(s,true)}}onHostPointerDown(t){if(!this.reorderable||t.button!==0)return;const e=t.composedPath();const s=e.some((t=>t?.dataset?.listDragHandle==="true"));if(!s)return;const i=e.find((t=>t?.tagName==="MD-LIST-ITEM"));if(!i||i.disabled)return;t.preventDefault();this.startDrag(i,t)}startDrag(t,e){const s=this.items;const i=s.indexOf(t);if(i<0)return;const r=s.map((t=>{const e=t.getBoundingClientRect();return{item:t,top:e.top,height:e.height,center:e.top+e.height/2}}));const n=r.length>1?r[1].top-r[0].top:r[0]?.height??0;const o=this.el.getBoundingClientRect().top;this.dragState={item:t,pointerId:e.pointerId,startClientY:e.clientY,rects:r,fromIndex:i,targetIndex:i,rowGap:n,listTop:o};this.dropPlaceholder={top:r[i].top-o,height:r[i].height};t.classList.add("md-list-item--dragged");try{this.el.setPointerCapture(e.pointerId)}catch{}this.el.addEventListener("pointermove",this.onDragMove);this.el.addEventListener("pointerup",this.onDragEnd);this.el.addEventListener("pointercancel",this.onDragEnd)}applySiblingShifts(){const t=this.dragState;if(!t)return;const{fromIndex:e,targetIndex:s,rowGap:i,rects:r}=t;r.forEach(((r,n)=>{if(r.item===t.item)return;let o=0;if(e<s&&n>e&&n<=s)o=-i;else if(e>s&&n<e&&n>=s)o=i;r.item.classList.add("md-list-item--shifting");r.item.style.transform=o?`translateY(${o}px)`:""}))}onItemRequestReorder(t){if(!this.reorderable)return;t.stopPropagation();const{direction:e,from:s}=t.detail;const i=this.items;const r=e==="up"?s-1:s+1;if(s<0||r<0||r>=i.length)return;if(i[s]?.disabled)return;this.moveItem(s,r);this.emitReorder(s,r);const n=this.items[r];if(n){this.refreshRovingTabindex(r,false,true);requestAnimationFrame((()=>this.focusListItem(n)))}}moveItem(t,e){const s=this.items;const i=s[t];const r=s[e];if(!i||!r)return;if(t<e){this.el.insertBefore(i,r.nextSibling)}else{this.el.insertBefore(i,r)}}emitReorder(t,e){const s=this.items.map((t=>this.originalOrder.indexOf(t)));this.mdReorder.emit({from:t,to:e,order:s})}handleKeyDown(t){if(this.el.closest("md-search"))return;if(t.altKey&&(t.key==="ArrowUp"||t.key==="ArrowDown"))return;const e=this.focusableItems;if(e.length===0)return;const s=this.items;const i=s.find((t=>o(t)));const r=i?e.indexOf(i):-1;switch(t.key){case"ArrowDown":{t.preventDefault();const s=r<e.length-1?r+1:0;this.focusItem(e[s]);return}case"ArrowUp":{t.preventDefault();const s=r>0?r-1:e.length-1;this.focusItem(e[s]);return}case"Home":{t.preventDefault();this.focusItem(e[0]);return}case"End":{t.preventDefault();this.focusItem(e[e.length-1]);return}}if(t.key.length===1&&/\S/.test(t.key)&&!t.metaKey&&!t.ctrlKey&&!t.altKey){this.handleTypeahead(t.key.toLowerCase())}}handleTypeahead(t){this.typeaheadBuffer+=t;if(this.typeaheadTimer!==null){window.clearTimeout(this.typeaheadTimer)}this.typeaheadTimer=window.setTimeout((()=>{this.typeaheadBuffer="";this.typeaheadTimer=null}),500);const e=this.focusableItems;const s=this.typeaheadBuffer;const i=e.find((t=>{const e=(t.headline||t.textContent||"").trim().toLowerCase();return e.startsWith(s)}));if(i){this.focusItem(i)}}focusListItem(t){void t.setFocus({focusVisible:true,preventScroll:true})}focusItem(t){if(!t)return;const e=this.items.indexOf(t);if(e<0)return;this.refreshRovingTabindex(e,true,true);requestAnimationFrame((()=>this.focusListItem(t)))}onFocusOut(t){const e=t.relatedTarget;if(e&&this.el.contains(e))return;this.items.forEach((t=>{t.rovingFocusVisible=false}))}findExpandableParentFromEvent(t){const e=typeof t.composedPath==="function"?t.composedPath():[t.target];for(const t of e){const e=t;if(e?.tagName!=="MD-LIST-ITEM"||!e.expandable)continue;if(e.parentElement===this.el)return e}return null}activateItem(t,e){const s=this.items;const i=s[t];if(!i||i.expandable)return;if(this.selectionMode==="single-select"){s.forEach(((e,s)=>{if(s!==t&&e.selected)e.selected=false}));i.selected=true;if(e){this.mdSelect.emit({index:t,value:i.headline||(i.textContent??"").trim(),selected:true,item:i})}}else if(this.selectionMode==="multi-select"){i.selected=!i.selected;if(e){this.mdSelect.emit({index:t,value:i.headline||(i.textContent??"").trim(),selected:i.selected,item:i})}}}getRovingFocusItem(t){if(t.length===0)return null;const e=t.find((t=>t.tabbable));if(e)return e;const s=this.items[this.activeIndex];if(s&&t.includes(s))return s;return t[0]}async activateNext(){const t=this.focusableItems;if(t.length===0)return null;const e=this.getRovingFocusItem(t);const s=e?t.indexOf(e):-1;const i=s<t.length-1?s+1:0;this.focusItem(t[i]);return t[i]}async activatePrevious(){const t=this.focusableItems;if(t.length===0)return null;const e=this.getRovingFocusItem(t);const s=e?t.indexOf(e):-1;const i=s>0?s-1:t.length-1;this.focusItem(t[i]);return t[i]}async selectItem(t){if(this.selectionMode==="none")return;this.activateItem(t,false)}async getSelectedIndices(){return this.items.map(((t,e)=>t.selected?e:-1)).filter((t=>t>=0))}render(){const t=this.effectiveRole;const e=t==="listbox"&&this.selectionMode==="multi-select"?"true":null;return s(i,{key:"8daf2aaad9848b5d58ffbb98f9bb7d8920004f4d",class:{"md-list":true,[`md-list--${this.listStyle}`]:true,[`md-list--${this.selectionMode}`]:this.selectionMode!=="none",[`md-list--${this.interactionMode}`]:true,"md-list--reorderable":this.reorderable,"md-list--reordering":!!this.dropPlaceholder},role:t,"aria-label":this.label||null,"aria-labelledby":this.labelledby||null,"aria-multiselectable":e},this.dropPlaceholder&&s("div",{key:"88a98f3d21f89177d1f7d879fc406fe7e9cbb40c",class:"md-list__drop-placeholder",part:"drop-placeholder","aria-hidden":"true",style:{transform:`translateY(${this.dropPlaceholder.top}px)`,blockSize:`${this.dropPlaceholder.height}px`}}),s("slot",{key:"70452f5305b74576d8eff4ed4471a847fc061773"}))}get el(){return r(this)}static get watchers(){return{selectionMode:[{onSelectionModeChange:0}],interactionMode:[{onInteractionModeChange:0}],reorderable:[{onReorderableChange:0}],roleOverride:[{onRoleOverrideChange:0}]}}};a.style=n();export{a as md_list};
|
|
2
|
+
//# sourceMappingURL=p-71f1660b.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as t,h as s,H as a,g as i}from"./p-WmvQpZnM.js";import{t as o}from"./p-DYBUr7K_.js";const n=()=>`:host{--_container-color:var(--md-fab-menu-item-container-color, var(--md-sys-color-primary-container));--_label-color:var(--md-fab-menu-item-label-color, var(--md-sys-color-on-primary-container));--_icon-color:var(--md-fab-menu-item-icon-color, var(--_label-color));--_icon-size:var(--md-fab-menu-item-icon-size, max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px)));--_container-shape:var(--md-fab-menu-item-container-shape, var(--md-sys-shape-corner-full, 9999px));--_state-layer-color:var(--_label-color);display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:pointer;user-select:none;border:none;outline:none;box-sizing:border-box;min-height:max(32px, calc(48px + var(--md-sys-density-scale, 0) * 4px));padding-inline:var(--md-sys-spacing-inset-xl, 24px);gap:var(--md-sys-spacing-gap-sm, 8px);background-color:var(--_container-color);color:var(--_label-color);border-radius:var(--_container-shape);box-shadow:none;font-family:var(--md-sys-typescale-title-small-font-family, Roboto, sans-serif);font-size:max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-title-small-font-weight, 500);letter-spacing:var(--md-sys-typescale-title-small-letter-spacing, 0.1px);line-height:max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));transition:background-color 280ms var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));-webkit-tap-highlight-color:transparent;white-space:nowrap}:host(.md-fab-menu-item--with-icon){padding-inline-start:var(--md-sys-spacing-inset-lg, 16px)}.md-fab-menu-item__state-layer{position:absolute;inset:0;border-radius:inherit;background-color:var(--_state-layer-color);opacity:0;transition:opacity 280ms var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));pointer-events:none}:host(:hover) .md-fab-menu-item__state-layer{opacity:var(--md-sys-state-hover-state-layer-opacity, 0.08)}:host(:focus-visible) .md-fab-menu-item__state-layer,:host(.md-fab-menu-item--roving-focus-visible:not(:focus)) .md-fab-menu-item__state-layer{opacity:var(--md-sys-state-focus-state-layer-opacity, 0.12)}:host(:active) .md-fab-menu-item__state-layer{opacity:var(--md-sys-state-pressed-state-layer-opacity, 0.12)}:host(:focus:not(:focus-visible)){outline:none}:host(:focus-visible),:host(.md-fab-menu-item--roving-focus-visible:not(:focus)){outline:3px solid var(--md-sys-color-secondary);outline-offset:2px;z-index:1}:host(.md-fab-menu-item--disabled){cursor:default;pointer-events:none;--_container-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);--_label-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent)}:host([soft-disabled]){cursor:default;pointer-events:auto;--_container-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);--_label-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent)}:host(.md-fab-menu-item--disabled:hover) .md-fab-menu-item__state-layer,:host(.md-fab-menu-item--disabled:active) .md-fab-menu-item__state-layer,:host(.md-fab-menu-item--disabled:focus-visible) .md-fab-menu-item__state-layer{opacity:0}:host([soft-disabled]) .md-fab-menu-item__state-layer{display:none}.md-fab-menu-item__icon{color:var(--_icon-color);font-size:var(--_icon-size);inline-size:var(--_icon-size);block-size:var(--_icon-size);display:flex;align-items:center;justify-content:center;flex-shrink:0}slot[name="icon"]{display:contents}::slotted([slot="icon"]){color:var(--_icon-color);inline-size:var(--_icon-size);block-size:var(--_icon-size);flex-shrink:0;fill:currentColor}.md-fab-menu-item__label{display:flex;align-items:center;white-space:nowrap}.material-symbols-outlined{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');font-weight:normal;font-style:normal;font-size:var(--_icon-size, 20px);line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;overflow-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased}@media (prefers-reduced-motion: reduce){:host{transition:none}.md-fab-menu-item__state-layer{transition:none}}@media (forced-colors: active){:host{border:1px solid ButtonText;background-color:ButtonFace;color:ButtonText;forced-color-adjust:none}:host(:focus-visible){outline-color:Highlight}:host(.md-fab-menu-item--disabled){border-color:GrayText;color:GrayText;opacity:1}.md-fab-menu-item__state-layer{display:none}.md-fab-menu-item__icon,.md-fab-menu-item__label{color:inherit}}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}`;const r=class{constructor(s){e(this,s);this.mdClick=t(this,"mdClick",7);this.icon="";this.label="";this.disabled=false;this.softDisabled=false;this.rovingFocusVisible=false;this.density=0;this.hasSlottedIcon=false;this.handleClick=e=>{if(this.isDisabled){e.preventDefault();e.stopPropagation();return}this.mdClick.emit()};this.handleKeyDown=e=>{if(e.key==="Enter"||e.key===" "){e.preventDefault();if(!this.isDisabled){o(this.el);this.mdClick.emit()}}}}get isDisabled(){return this.disabled||this.softDisabled}componentWillLoad(){if(!this.el.hasAttribute("tabindex")){this.el.setAttribute("tabindex","-1")}}componentDidLoad(){const e=this.el.shadowRoot;if(!e)return;const t=e.querySelector('slot[name="icon"]');t?.addEventListener("slotchange",(()=>{this.hasSlottedIcon=t.assignedElements().length>0}))}render(){const e=!!this.icon;const t=this.isDisabled;return s(a,{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as t,h as s,H as a,g as i}from"./p-WmvQpZnM.js";import{t as o}from"./p-DYBUr7K_.js";const n=()=>`:host{--_container-color:var(--md-fab-menu-item-container-color, var(--md-sys-color-primary-container));--_label-color:var(--md-fab-menu-item-label-color, var(--md-sys-color-on-primary-container));--_icon-color:var(--md-fab-menu-item-icon-color, var(--_label-color));--_icon-size:var(--md-fab-menu-item-icon-size, max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px)));--_container-shape:var(--md-fab-menu-item-container-shape, var(--md-sys-shape-corner-full, 9999px));--_state-layer-color:var(--_label-color);display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:pointer;user-select:none;border:none;outline:none;box-sizing:border-box;min-height:max(32px, calc(48px + var(--md-sys-density-scale, 0) * 4px));padding-inline:var(--md-sys-spacing-inset-xl, 24px);gap:var(--md-sys-spacing-gap-sm, 8px);background-color:var(--_container-color);color:var(--_label-color);border-radius:var(--_container-shape);box-shadow:none;font-family:var(--md-sys-typescale-title-small-font-family, Roboto, sans-serif);font-size:max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-title-small-font-weight, 500);letter-spacing:var(--md-sys-typescale-title-small-letter-spacing, 0.1px);line-height:max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));transition:background-color 280ms var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));-webkit-tap-highlight-color:transparent;white-space:nowrap}:host(.md-fab-menu-item--with-icon){padding-inline-start:var(--md-sys-spacing-inset-lg, 16px)}.md-fab-menu-item__state-layer{position:absolute;inset:0;border-radius:inherit;background-color:var(--_state-layer-color);opacity:0;transition:opacity 280ms var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));pointer-events:none}:host(:hover) .md-fab-menu-item__state-layer{opacity:var(--md-sys-state-hover-state-layer-opacity, 0.08)}:host(:focus-visible) .md-fab-menu-item__state-layer,:host(.md-fab-menu-item--roving-focus-visible:not(:focus)) .md-fab-menu-item__state-layer{opacity:var(--md-sys-state-focus-state-layer-opacity, 0.12)}:host(:active) .md-fab-menu-item__state-layer{opacity:var(--md-sys-state-pressed-state-layer-opacity, 0.12)}:host(:focus:not(:focus-visible)){outline:none}:host(:focus-visible),:host(.md-fab-menu-item--roving-focus-visible:not(:focus)){outline:3px solid var(--md-sys-color-secondary);outline-offset:2px;z-index:1}:host(.md-fab-menu-item--disabled){cursor:default;pointer-events:none;--_container-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);--_label-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent)}:host([soft-disabled]){cursor:default;pointer-events:auto;--_container-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);--_label-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent)}:host(.md-fab-menu-item--disabled:hover) .md-fab-menu-item__state-layer,:host(.md-fab-menu-item--disabled:active) .md-fab-menu-item__state-layer,:host(.md-fab-menu-item--disabled:focus-visible) .md-fab-menu-item__state-layer{opacity:0}:host([soft-disabled]) .md-fab-menu-item__state-layer{display:none}.md-fab-menu-item__icon{color:var(--_icon-color);font-size:var(--_icon-size);inline-size:var(--_icon-size);block-size:var(--_icon-size);display:flex;align-items:center;justify-content:center;flex-shrink:0}slot[name="icon"]{display:contents}::slotted([slot="icon"]){color:var(--_icon-color);inline-size:var(--_icon-size);block-size:var(--_icon-size);flex-shrink:0;fill:currentColor}.md-fab-menu-item__label{display:flex;align-items:center;white-space:nowrap}.material-symbols-outlined{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');font-weight:normal;font-style:normal;font-size:var(--_icon-size, 20px);line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;overflow-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased}@media (prefers-reduced-motion: reduce){:host{transition:none}.md-fab-menu-item__state-layer{transition:none}}@media (forced-colors: active){:host{border:1px solid ButtonText;background-color:ButtonFace;color:ButtonText;forced-color-adjust:none}:host(:focus-visible){outline-color:Highlight}:host(.md-fab-menu-item--disabled){border-color:GrayText;color:GrayText;opacity:1}.md-fab-menu-item__state-layer{display:none}.md-fab-menu-item__icon,.md-fab-menu-item__label{color:inherit}}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}`;const r=class{constructor(s){e(this,s);this.mdClick=t(this,"mdClick",7);this.icon="";this.label="";this.disabled=false;this.softDisabled=false;this.rovingFocusVisible=false;this.density=0;this.hasSlottedIcon=false;this.handleClick=e=>{if(this.isDisabled){e.preventDefault();e.stopPropagation();return}this.mdClick.emit()};this.handleKeyDown=e=>{if(e.key==="Enter"||e.key===" "){e.preventDefault();if(!this.isDisabled){o(this.el);this.mdClick.emit()}}}}get isDisabled(){return this.disabled||this.softDisabled}componentWillLoad(){if(!this.el.hasAttribute("tabindex")){this.el.setAttribute("tabindex","-1")}}componentDidLoad(){const e=this.el.shadowRoot;if(!e)return;const t=e.querySelector('slot[name="icon"]');t?.addEventListener("slotchange",(()=>{this.hasSlottedIcon=t.assignedElements().length>0}))}render(){const e=!!this.icon;const t=this.isDisabled;return s(a,{key:"e699015c04bd99bff0b6115f748e6f5d3f4aef6a",class:{"md-fab-menu-item":true,"md-fab-menu-item--with-icon":e||this.hasSlottedIcon,"md-fab-menu-item--disabled":t,"md-fab-menu-item--roving-focus-visible":this.rovingFocusVisible},role:"menuitem","aria-disabled":t?"true":null,onClick:this.handleClick,onKeyDown:this.handleKeyDown},s("md-ripple",{key:"66d1d6c5ee657a7c5b2ec5ec3dac1308b6131d1c",disabled:t}),s("span",{key:"29baf1f4a5381ef65b9d508331ec7ab133dcc21b",class:"md-fab-menu-item__state-layer",part:"state-layer","aria-hidden":"true"}),s("slot",{key:"b5d40819f7a5ece262ca67095137a109b160b28a",name:"icon"},e&&s("span",{key:"ce2dd960172dea53be26ceefdc0aee394ee1f8ae",class:"md-fab-menu-item__icon material-symbols-outlined",part:"icon","aria-hidden":"true"},this.icon)),s("span",{key:"f35e75ed18e628c9dfcd972001b79b365e29b7a6",class:"md-fab-menu-item__label",part:"label"},this.label?this.label:s("slot",null)))}get el(){return i(this)}};r.style=n();export{r as md_fab_menu_item};
|
|
2
|
+
//# sourceMappingURL=p-7501170f.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as a,h as e,H as s,g as t}from"./p-WmvQpZnM.js";const o=()=>`:host{--_container-color:var(--md-badge-container-color, var(--md-sys-color-error, #B3261E));--_label-color:var(--md-badge-label-color, var(--md-sys-color-on-error, #FFFFFF));--_shape:var(--md-badge-container-shape, var(--md-sys-shape-corner-full, 9999px));--_icon-color:var(--md-badge-icon-color, var(--md-badge-label-color, var(--md-sys-color-on-error, #FFFFFF)));--_icon-size:var(--md-badge-icon-size, max(8px, calc(10px + var(--md-sys-density-scale, 0) * 0.5px)));--_offset-x:var(--md-badge-offset-x, 50%);--_offset-y:var(--md-badge-offset-y, -50%);--_large-height:var(--md-badge-large-height, max(12px, calc(16px + var(--md-sys-density-scale, 0) * 1px)));--_large-padding:var(--md-badge-large-padding, 0 max(2px, calc(4px + var(--md-sys-density-scale, 0) * 0.5px)));--_small-size:var(--md-badge-small-size, max(4px, calc(6px + var(--md-sys-density-scale, 0) * 0.5px)));display:inline-flex;align-items:center;justify-content:center;position:absolute;top:0;right:0;z-index:1;box-sizing:border-box;pointer-events:none;background-color:var(--_container-color);border-radius:var(--_shape)}:host(.md-badge--small){width:var(--_small-size);height:var(--_small-size);padding:0;transform:translate(var(--_offset-x), var(--_offset-y))}:host(.md-badge--large){min-width:var(--_large-height);height:var(--_large-height);padding:var(--_large-padding);transform:translate(var(--_offset-x), var(--_offset-y));color:var(--_label-color);font-family:var(--md-sys-typescale-label-small-font-family, Roboto, sans-serif);font-size:max(9px, calc(11px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-label-small-font-weight, 500);letter-spacing:var(--md-sys-typescale-label-small-letter-spacing, 0.5px);line-height:1}:host(.md-badge--large:not(.md-badge--has-content)){padding:0}.md-badge__label{display:block;white-space:nowrap;text-align:center}.md-badge__icon{font-size:var(--_icon-size);color:var(--_icon-color);line-height:1;display:flex;align-items:center;justify-content:center}::slotted(*){width:var(--_icon-size) !important;height:var(--_icon-size) !important;font-size:var(--_icon-size) !important;color:var(--_icon-color) !important;fill:var(--_icon-color) !important}.material-symbols-outlined{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');font-weight:normal;font-style:normal;font-size:var(--_icon-size, 10px);line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;overflow-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased}@media (forced-colors: active){:host{forced-color-adjust:none;background-color:Mark;color:MarkText}}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}`;const r=class{constructor(e){a(this,e);this.variant="large";this.value="";this.max=999;this.icon="";this.density=0;this.hasSlottedIcon=false;this.readSlottedIcon=()=>{this.hasSlottedIcon=Array.from(this.el.children).some((a=>a.getAttribute("slot")==="icon"))}}componentWillLoad(){this.readSlottedIcon()}get displayValue(){if(this.variant==="small"||!this.value)return"";const a=Number(this.value);if(!Number.isNaN(a)&&Number.isFinite(a)&&a>this.max){return`${this.max}+`}return this.value.slice(0,4)}get accessibleLabel(){if(this.variant==="small")return"notification";const a=this.displayValue;if(a)return a;if(this.icon)return this.icon;return undefined}render(){const a=this.variant==="small";const t=this.displayValue;const o=!a&&!!t;const r=!a&&(!!this.icon||this.hasSlottedIcon);const i=o||r;return e(s,{key:"81a83dc5494fb90262e948a16795763cbb077410",class:{"md-badge":true,"md-badge--small":a,"md-badge--large":!a,"md-badge--has-content":i},role:"status","aria-label":this.accessibleLabel},!a&&e("slot",{key:"011585801a80562b772518fafdfdb9bf3cdcf6ff",name:"icon",onSlotchange:this.readSlottedIcon},this.icon?e("span",{class:"md-badge__icon material-symbols-outlined",part:"icon","aria-hidden":"true"},this.icon):null),o&&e("span",{key:"20544a829f5cdc2b6a0e564aabcc310ee0bf80bb",class:"md-badge__label",part:"label"},t))}get el(){return t(this)}};r.style=o();export{r as md_badge};
|
|
2
|
+
//# sourceMappingURL=p-7d1686a7.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as i,f as s,h as e,H as o,g as h}from"./p-WmvQpZnM.js";import{L as a}from"./p-DnKDoE8K.js";import{s as n,g as r,c as l,r as c}from"./p-DWxN44zD.js";import{V as p,i as d,c as u}from"./p-Bz-JaJcA.js";const m=()=>`:host{--md-text-field-padding-inline-end:var(--md-sys-spacing-inset-lg, 16px);--_min-width:var(--md-autocomplete-min-width, 220px);--_chip-gap:var(--md-autocomplete-chip-gap, var(--md-sys-spacing-gap-xs, 4px));--_chip-radius:var(--md-autocomplete-chip-radius, 8px);--_caret-color:var(--md-autocomplete-caret-color, var(--md-sys-color-on-surface-variant));--_clear-color:var(--md-autocomplete-clear-color, var(--md-sys-color-on-surface-variant));--_option-icon-size:var(--md-autocomplete-option-icon-size, 20px);--_loading-color:var(--md-autocomplete-loading-color, var(--md-sys-color-on-surface-variant));display:inline-flex;flex-direction:column;inline-size:var(--md-autocomplete-width, 100%);min-inline-size:var(--_min-width);box-sizing:border-box;vertical-align:bottom;position:relative}:host(.md-autocomplete--chips-top) .md-autocomplete__chips{margin-block-start:0;margin-block-end:var(--md-sys-spacing-inset-sm, 8px)}:host(.md-autocomplete--chips-left),:host(.md-autocomplete--chips-right){flex-direction:row;align-items:center;gap:var(--md-sys-spacing-gap-sm, 8px)}:host(.md-autocomplete--chips-left) .md-autocomplete__field,:host(.md-autocomplete--chips-right) .md-autocomplete__field{flex:1 1 auto;inline-size:auto;min-inline-size:0}:host(.md-autocomplete--chips-left) .md-autocomplete__chips,:host(.md-autocomplete--chips-right) .md-autocomplete__chips{contain:none;flex:0 1 auto;max-inline-size:50%;margin-block-start:0}.md-autocomplete__field{display:block;inline-size:100%}.md-autocomplete__chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--_chip-gap);max-inline-size:100%;margin-block-start:var(--md-sys-spacing-inset-sm, 8px);contain:inline-size}.md-autocomplete__chips md-chip{--md-chip-container-shape:var(--_chip-radius)}.md-autocomplete__inline-chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--_chip-gap);min-inline-size:0;overflow:visible}.md-autocomplete__inline-chips md-chip{--md-chip-container-shape:var(--_chip-radius);flex-shrink:0}.md-autocomplete__caret{color:var(--_caret-color);font-size:var(--md-autocomplete-caret-size, 24px);line-height:1;display:inline-flex;align-items:center;justify-content:center;inline-size:24px;block-size:24px;cursor:pointer;transition:transform var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-autocomplete--open) .md-autocomplete__caret{transform:rotate(180deg)}.md-autocomplete__clear{--md-icon-button-container-width:28px;--md-icon-button-container-height:28px;--md-icon-button-icon-size:18px;color:var(--_clear-color);margin-inline-end:2px}.md-autocomplete__clear--hidden{visibility:hidden;pointer-events:none}.md-autocomplete__loader{display:inline-flex;align-items:center;justify-content:center;inline-size:24px;block-size:24px;--md-loading-indicator-size:var(--md-autocomplete-spinner-size, 22px);--md-loading-indicator-shape-size:var(--md-autocomplete-spinner-size, 22px)}md-menu::part(empty-text){display:flex;justify-content:center;padding:var(--md-sys-spacing-inset-md, 12px) var(--md-sys-spacing-inset-lg, 16px);color:var(--md-sys-color-on-surface-variant);text-align:center}.md-autocomplete__option-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--md-autocomplete-option-icon-color, var(--md-sys-color-on-surface-variant, #49454f));font-size:var(--_option-icon-size);inline-size:var(--_option-icon-size);block-size:var(--_option-icon-size)}.md-autocomplete__listbox{display:block}.md-autocomplete__vspacer{inline-size:100%;pointer-events:none}.md-autocomplete__loading{display:block;padding:var(--md-sys-spacing-inset-md, 12px) var(--md-sys-spacing-inset-lg, 16px);color:var(--_loading-color)}.md-autocomplete__sr-status{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host(.md-autocomplete--disabled),:host(.md-autocomplete--soft-disabled){pointer-events:none}:host(.md-autocomplete--soft-disabled) .md-autocomplete__field{pointer-events:auto}@media (prefers-reduced-motion: reduce){.md-autocomplete__caret,.md-autocomplete__clear{transition:none}}@media (forced-colors: active){.md-autocomplete__caret,.md-autocomplete__clear{color:CanvasText}}.material-symbols-outlined{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;overflow-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}`;let f=0;const y=200;const g=200;const b=class{constructor(o){t(this,o);this.mdChange=i(this,"mdChange",7);this.mdInput=i(this,"mdInput",7);this.mdOpen=i(this,"mdOpen",7);this.mdClose=i(this,"mdClose",7);this.mdClear=i(this,"mdClear",7);this.mdValidityChange=i(this,"mdValidityChange",5);if(o.$hostElement$["s-ei"]){this.internals=o.$hostElement$["s-ei"]}else{this.internals=o.$hostElement$.attachInternals();o.$hostElement$["s-ei"]=this.internals}this.valueMissingLabel="Please make a selection";this.reserveSupportingSpace=false;this.customValidityMessage="";this.variant="filled";this.label="";this.placeholder="";this.supportingText="";this.error=false;this.errorText="";this.disabled=false;this.softDisabled=false;this.required=false;this.density=0;this.options=[];this.multiple=false;this.chipPosition="below";this.value="";this.inputValue="";this.freeSolo=false;this.maxSelected=0;this.loading=false;this.noOptionsText="No options";this.noResultsText="No results";this.loadingText="Loading…";this.statusTemplate="{count} suggestions available";this.disableCloseOnSelect=false;this.clearOnBlur=false;this.clearable=true;this.clearIcon="close";this.dropdownIcon="arrow_drop_down";this.limitResults=0;this.open=false;this.virtualize="auto";this.filterMode="substring";this.placement="bottom-start";this.matchTriggerWidth=true;this.name="";this.triggerId=`md-autocomplete-${++f}`;this.focused=false;this.optionsData=[];this.labelMap=new Map;this.packing=false;this.typedSinceOpen=false;this.loadGen=0;this.pendingListFocus=null;this.providerSet=false;this.vc=new p({queryItem:t=>this.el.shadowRoot?.querySelector(`md-menu-item[data-vindex="${t}"]`)??null,requestRender:()=>s(this)});this.isSelected=t=>this.selectedArray.includes(t);this.defaultValue="";this.defaultInputValue="";this.lastValidityKey=null;this._syncGuard=false;this._lastEmit=null;this.vpWired=false;this.handleMenuOpen=()=>{this._syncGuard=true;this.open=true;this._syncGuard=false;if(this._lastEmit!=="open"){this._lastEmit="open";this.mdOpen.emit()}if(this.vc.active){this.vc.setQuery(this.query);this.attachMenuViewport()}};this.handleMenuClose=()=>{this._syncGuard=true;this.open=false;this._syncGuard=false;if(this._lastEmit!=="close"){this._lastEmit="close";this.mdClose.emit()}this.typedSinceOpen=false;this.vc.detachViewport();this.vpWired=false;if(!this.multiple&&!this.freeSolo){const t=typeof this.value==="string"&&this.value?this.labelMap.get(this.value)??this.value:"";if(this.inputValue!==t){this.inputValue=t;this.mdInput.emit(t)}}};this.removeChip=t=>i=>{i.stopPropagation();if("preventDefault"in i)i.preventDefault();if(this.disabled||this.softDisabled||!this.multiple)return;this.commitValue(this.selectedArray.filter((i=>i!==t)))};this.handleClear=()=>{if(this.disabled||this.softDisabled)return;this.inputValue="";this.mdInput.emit("");this.typedSinceOpen=false;if(this.vc.active)this.vc.setQuery("");this.commitValue(this.multiple?[]:"");this.mdClear.emit();this.fieldEl?.focus?.()};this.handleFieldInput=t=>{this.applyTyped(t.detail??"")};this.handleListboxKeyDown=t=>{if(t.ctrlKey||t.metaKey||t.altKey)return;const i=t.key.length===1;if(!i&&t.key!=="Backspace")return;t.preventDefault();t.stopPropagation();this.fieldEl?.focus?.();this.applyTyped(t.key==="Backspace"?this.inputValue.slice(0,-1):this.inputValue+t.key)};this.handleFieldKeyDown=t=>{if(this.disabled||this.softDisabled)return;switch(t.key){case"ArrowDown":t.preventDefault();if(!this.open){this.pendingListFocus="first";this.open=true}else{this.firstOptionItem()?.focus()}break;case"ArrowUp":t.preventDefault();if(!this.open){this.pendingListFocus="last";this.open=true}else{const t=this.el.shadowRoot?.querySelectorAll(".md-autocomplete__listbox md-menu-item:not([disabled])");t?.[t.length-1]?.focus()}break;case"Enter":if(this.freeSolo&&this.commitFreeSolo()){t.preventDefault();if(!this.multiple)this.open=false}break;case"Escape":if(this.open){t.preventDefault();this.open=false}break;case"Backspace":if(this.multiple&&!this.inputValue&&this.selectedArray.length>0){this.commitValue(this.selectedArray.slice(0,-1))}break}};this.handleFieldFocus=()=>{this.focused=true};this.handleFieldBlur=()=>{this.focused=false;if(this.open)return;if(this.clearOnBlur&&!this.multiple&&!this.freeSolo){const t=typeof this.value==="string"?this.labelMap.get(this.value):"";if(this.inputValue&&this.inputValue!==t){this.inputValue=t??"";this.mdInput.emit(this.inputValue)}}};this.renderChipItem=t=>e("md-chip",{key:t,part:"chip",exportparts:"remove:chip-remove,label:chip-label",variant:"input",selectable:false,label:this.labelMap.get(t)??t,disabled:this.disabled||this.softDisabled,removable:!this.disabled&&!this.softDisabled,onMdRemove:this.removeChip(t),onClick:t=>t.stopPropagation()})}async focusInput(){this.fieldEl?.focus?.()}async showMenu(){if(this.disabled)return;this.open=true}async closeMenu(){this.open=false}async loadOptions(t){const i=++this.loadGen;if(this.virtualize==="never"||!d()){const i=Array.isArray(t)?t:Array.from({length:t.count},((i,s)=>t.getRow(s)));this.vc.reset();this.optionsData=this.normalize(i);this.refreshLabelMap();return}this.optionsData=[];this.packing=true;try{this.vc.setFixedRowHeight(this.rowHeight);this.vc.setFilterMode(this.filterMode);await this.vc.load(Array.isArray(t)?this.normalize(t):t)}finally{if(i===this.loadGen)this.packing=false}if(i!==this.loadGen)return;if(this.open&&this.typedSinceOpen)this.vc.setQuery(this.query);this.refreshLabelMap();s(this)}async getLabels(t){if(this.vc.active)return Object.fromEntries(this.vc.getLabels(t));const i={};for(const s of t)i[s]=this.labelMap.get(s)??s;return i}normalize(t){return t.map((t=>({value:t.value,label:t.label??t.value,disabled:!!t.disabled,icon:t.icon,iconColor:t.iconColor,supportingText:t.supportingText??t.description,selected:!!t.selected})))}get optionList(){const t=this.options;if(Array.isArray(t))return t;if(typeof t==="string"&&t.trim()){try{const i=JSON.parse(t);return Array.isArray(i)?i:[]}catch{if(typeof console!=="undefined"){console.warn("[md-autocomplete] `options` attribute is not valid JSON:",t)}return[]}}return[]}refreshOptions(){const t=u(this.el,[]);const i=t.length>0?t:this.normalize(this.optionList);const e=this.virtualize==="always"||this.virtualize==="auto"&&i.length>y;const o=++this.loadGen;if(e&&d()&&i.length>0){this.optionsData=[];this.packing=true;this.vc.setFixedRowHeight(this.rowHeight);this.vc.setFilterMode(this.filterMode);void this.vc.load(i).then((t=>{if(o!==this.loadGen)return;if(!t){this.optionsData=i}this.packing=false;if(t&&this.open&&this.typedSinceOpen)this.vc.setQuery(this.query);this.refreshLabelMap();s(this)}))}else{this.vc.reset();this.optionsData=i;this.refreshLabelMap()}}onOptionChange(t){t.stopPropagation();this.refreshOptions()}get busy(){return this.loading||this.packing}get selectedArray(){if(this.multiple)return Array.isArray(this.value)?this.value:[];if(typeof this.value==="string"&&this.value)return[this.value];return[]}get query(){return this.typedSinceOpen?this.inputValue.trim():""}get filteredOptions(){const t=this.selectedArray;const i={inputValue:this.query,selected:t};let s=this.filterer?this.filterer(this.optionsData,i):this.defaultFilter(this.optionsData,i);if(this.limitResults>0)s=s.slice(0,this.limitResults);return s}defaultFilter(t,i){const s=i.inputValue.toLowerCase();if(!s)return t;return t.filter((t=>t.label.toLowerCase().includes(s)||t.value.toLowerCase().includes(s)||(t.supportingText?.toLowerCase().includes(s)??false)))}refreshLabelMap(){const t=this.selectedArray;if(t.length===0){if(this.labelMap.size)this.labelMap=new Map;return}const i=new Map;if(this.vc.active){const s=this.vc.getLabels(t);for(const e of t){i.set(e,s.get(e)??this.labelMap.get(e)??e)}}else{for(const s of t){const t=this.optionsData.find((t=>t.value===s));i.set(s,t?.label??this.labelMap.get(s)??s)}}this.labelMap=i}componentWillLoad(){this.refreshOptions();this.defaultValue=Array.isArray(this.value)?[...this.value]:this.value;this.defaultInputValue=this.inputValue;this.syncFormValue()}componentDidLoad(){if(this.open&&!this.disabled){void this.menuEl?.show?.({autoFocus:false});this.mdOpen.emit()}}disconnectedCallback(){clearTimeout(this.searchDebounce);this.vc.detachViewport()}formResetCallback(){this.value=Array.isArray(this.defaultValue)?[...this.defaultValue]:this.defaultValue;this.inputValue=this.defaultInputValue;this.typedSinceOpen=false;clearTimeout(this.searchDebounce);if(this.vc.active)this.vc.setQuery("")}syncFormValue(){this.updateValidity();this.refreshLabelMap();if(!this.multiple&&!this.open){const t=typeof this.value==="string"&&this.value?this.labelMap.get(this.value)??this.value:"";if(this.inputValue!==t)this.inputValue=t}if(this.multiple){const t=this.selectedArray;if(!t.length){n(this.internals,null);return}const i=new FormData;for(const s of t)i.append(this.name||"",s);n(this.internals,i);return}const t=typeof this.value==="string"?this.value:"";n(this.internals,t||null)}onMultipleFlip(){if(this.multiple){if(typeof this.value==="string")this.value=this.value?[this.value]:[];else this.syncFormValue()}else{if(Array.isArray(this.value))this.value=this.value[0]??"";else this.syncFormValue()}}updateValidity(){if(!this.internals?.setValidity)return;if(this.customValidityMessage){this.internals.setValidity({customError:true},this.customValidityMessage,this.fieldEl??this.el)}else if(this.required&&this.selectedArray.length===0){this.internals.setValidity({valueMissing:true},this.errorText||this.valueMissingLabel,this.fieldEl??this.el)}else{this.internals.setValidity({})}this.emitValidityChange()}async getValidity(){return r(this.internals)}emitValidityChange(){const t=r(this.internals);const i=`${t.valid}|${t.validationMessage}`;if(this.lastValidityKey===i)return;const s=this.lastValidityKey!==null;this.lastValidityKey=i;if(s)this.mdValidityChange.emit(t)}async checkValidity(){return l(this.internals)}async reportValidity(){return c(this.internals)}async setCustomValidity(t){this.customValidityMessage=t;this.updateValidity()}syncMenu(t){if(this._syncGuard||!this.menuEl)return;if(t){this.menuEl.show?.({autoFocus:false})}else{this.menuEl.close?.()}}attachMenuViewport(){void(async()=>{const t=await(this.menuEl?.getScrollViewport?.())??null;if(!t||this.vpWired)return;this.vpWired=true;await this.vc.attachViewport((async()=>t))})()}componentDidRender(){void this.syncComboboxRefs();if(!this.menuEl)return;if(this.vc.active&&!this.providerSet){void this.menuEl.setVirtualProvider?.(this.vc.provider);this.providerSet=true}else if(!this.vc.active&&this.providerSet){void this.menuEl.setVirtualProvider?.(null);this.providerSet=false}if(this.open&&this.vc.active&&!this.vpWired)this.attachMenuViewport();if(this.pendingListFocus&&this.open){const t=this.el.shadowRoot?.querySelectorAll(".md-autocomplete__listbox md-menu-item:not([disabled])");const i=this.pendingListFocus==="first"?t?.[0]:t?.[t.length-1];if(i){this.pendingListFocus=null;i.focus()}}else if(this.pendingListFocus&&!this.open){this.pendingListFocus=null}}async syncComboboxRefs(){const t=this.fieldEl;const i=await(t?.getInputElement?.());if(!i||!("ariaControlsElements"in i))return;const s=this.el.shadowRoot?.querySelector('[role="listbox"]');const e=this.open&&s?[s]:null;const o=i.ariaControlsElements;if(!e&&!o?.length)return;if(e&&o?.length===1&&o[0]===e[0])return;i.ariaControlsElements=e}commitValue(t){this.value=t;this.mdChange.emit(t)}pick(t,i,s,e){e?.stopPropagation();if(s)return;if(this.multiple){const s=this.selectedArray;const o=s.includes(t);const h=!o&&this.maxSelected>0&&s.length>=this.maxSelected;if(h){const t=e?.target;if(t)t.selected=false;return}this.labelMap=new Map(this.labelMap).set(t,i);const a=o?s.filter((i=>i!==t)):[...s,t];this.commitValue(a);this.inputValue="";this.mdInput.emit("");this.typedSinceOpen=false;if(this.vc.active)this.vc.setQuery("");this.fieldEl?.focus?.()}else{this.labelMap=new Map(this.labelMap).set(t,i);this.commitValue(t);this.inputValue=i;this.mdInput.emit(i);this.typedSinceOpen=false;if(this.vc.active)this.vc.setQuery("");if(!this.disableCloseOnSelect)this.open=false;this.fieldEl?.focus?.()}}commitFreeSolo(){if(!this.freeSolo)return false;const t=this.inputValue.trim();if(!t)return false;if(this.multiple){const i=this.selectedArray;if(i.includes(t))return true;if(this.maxSelected>0&&i.length>=this.maxSelected)return false;this.labelMap=new Map(this.labelMap).set(t,t);this.commitValue([...i,t]);this.inputValue="";this.mdInput.emit("")}else{this.commitValue(t)}return true}applyTyped(t){this.inputValue=t;this.typedSinceOpen=true;this.mdInput.emit(t);if(!this.open)this.open=true;if(this.vc.active){clearTimeout(this.searchDebounce);this.searchDebounce=setTimeout((()=>{this.vc.setQuery(this.query)}),g)}}firstOptionItem(){return this.el.shadowRoot?.querySelector(".md-autocomplete__listbox md-menu-item:not([disabled])")??null}get inlineChips(){return this.multiple&&this.chipPosition==="inline"}renderChips(){if(!this.multiple||this.inlineChips)return null;const t=this.selectedArray;if(t.length===0)return null;return e("div",{class:"md-autocomplete__chips",part:"chips",role:"group","aria-label":this.label?`${this.label} — selected`:"Selected"},t.map(this.renderChipItem))}renderInlineChips(){if(!this.inlineChips)return null;const t=this.selectedArray;if(t.length===0)return null;return e("div",{slot:"chips",class:"md-autocomplete__inline-chips",part:"chips",role:"group","aria-label":this.label?`${this.label} — selected`:"Selected"},t.map(this.renderChipItem))}renderClearButton(t=false){if(!this.clearable)return null;const i=this.multiple?this.selectedArray.length>0:!!this.inputValue||!!this.value;const s=t||!i;return e("md-icon-button",{class:{"md-autocomplete__clear":true,"md-autocomplete__clear--hidden":s},slot:"trailing-icon",part:"clear",variant:"standard",size:"xs",icon:this.clearIcon,"aria-label":"Clear value","aria-hidden":s?"true":undefined,onClick:t=>{t.stopPropagation();this.handleClear()}})}renderTrigger(){return e("md-text-field",{ref:t=>this.fieldEl=t,id:this.triggerId,class:"md-autocomplete__field",part:"field",variant:this.variant,label:this.label,placeholder:this.placeholder,value:this.inputValue,disabled:this.disabled,error:this.error,errorText:this.errorText,reserveSupportingSpace:this.reserveSupportingSpace,supportingText:this.supportingText,required:this.required,density:this.density,appearFocused:this.open||this.focused,"aria-haspopup":"listbox",inputRole:"combobox",inputExpanded:this.open,inputAriaAutocomplete:"list",chipsWrap:this.inlineChips,onMdInput:this.handleFieldInput,onClick:()=>{if(!this.disabled&&!this.softDisabled&&!this.open)this.open=true},onKeyDown:this.handleFieldKeyDown,onFocus:this.handleFieldFocus,onBlur:this.handleFieldBlur},this.renderInlineChips(),this.busy?[this.renderClearButton(true),e("span",{slot:"trailing-icon",class:"md-autocomplete__loader",part:"loading-spinner"},e("slot",{name:"loader"},e(a,{label:this.loadingText})))]:[this.renderClearButton(),e("span",{slot:"trailing-icon",class:"md-autocomplete__caret material-symbols-outlined",part:"caret","aria-hidden":"true",onClick:t=>{t.stopPropagation();if(!this.disabled&&!this.softDisabled)this.open=!this.open}},e("slot",{name:"dropdown-icon"},this.dropdownIcon))])}renderOptionIcon(t,i){if(!t)return null;return e("span",{slot:"leading-icon",part:"option-icon",class:"material-symbols-outlined md-autocomplete__option-icon",style:i?{color:i}:undefined,"aria-hidden":"true"},t)}renderVirtualOptions(){return e("div",{class:"md-autocomplete__listbox",role:"listbox",id:`${this.triggerId}-listbox`,"aria-label":this.label||"Options","aria-multiselectable":this.multiple?"true":undefined,onKeyDown:this.handleListboxKeyDown},e("div",{class:"md-autocomplete__vspacer",style:{height:`${this.vc.topPad}px`},"aria-hidden":"true"}),this.vc.windowRows.map(((t,i)=>{const s=this.vc.windowStart+i;const o=this.isSelected(t.value);return e("md-menu-item",{key:t.index,id:`${this.triggerId}-opt-${s}`,"data-vindex":s,presentation:"option",type:this.multiple?"checkbox":"radio","check-position":"start","keep-open":true,part:o?"option option-selected":"option",disabled:t.disabled,selected:o,headline:t.label,"supporting-text":t.supportingText||"","aria-setsize":this.vc.filteredLength,"aria-posinset":s+1,onMdClick:i=>this.pick(t.value,t.label,t.disabled,i)},this.renderOptionIcon(t.icon||undefined))})),e("div",{class:"md-autocomplete__vspacer",style:{height:`${this.vc.bottomPad}px`},"aria-hidden":"true"}))}renderMenu(){const t=this.vc.active;const i=t?[]:this.filteredOptions;const s=t?false:this.optionsData.length===0;const o=this.busy?"":t?this.vc.filteredLength===0?this.noResultsText:"":s?this.noOptionsText:i.length===0?this.noResultsText:"";const h=t?this.maxHeight??320:this.maxHeight;return e("md-menu",{ref:t=>this.menuEl=t,anchor:this.triggerId,placement:this.placement,"match-anchor-width":this.matchTriggerWidth,"max-height":h,persistent:this.disableCloseOnSelect,"empty-text":o,"auto-focus":false,listbox:true,"list-label":this.label||"Options",part:"menu",onMdOpen:this.handleMenuOpen,onMdClose:this.handleMenuClose},this.busy?e("div",{class:"md-autocomplete__loading",part:"loading",role:"status","aria-label":this.loadingText},e("md-progress-indicator",{variant:"linear",indeterminate:true,wave:true,part:"loading-progress",label:this.loadingText})):t?this.renderVirtualOptions():e("div",{class:"md-autocomplete__listbox",role:"listbox",id:`${this.triggerId}-listbox`,"aria-label":this.label||"Options","aria-multiselectable":this.multiple?"true":undefined,onKeyDown:this.handleListboxKeyDown},i.map(((t,i)=>e("md-menu-item",{key:t.value,id:`${this.triggerId}-opt-${i}`,presentation:"option",type:this.multiple?"checkbox":"radio","check-position":"start","keep-open":true,part:this.isSelected(t.value)?"option option-selected":"option",disabled:t.disabled,selected:this.isSelected(t.value),headline:t.label,"supporting-text":t.supportingText||"",onMdClick:i=>this.pick(t.value,t.label,t.disabled,i)},this.renderOptionIcon(t.icon,t.iconColor))))))}render(){const t=this.multiple&&(this.chipPosition==="top"||this.chipPosition==="left");const i=this.vc.active?this.vc.filteredLength:this.filteredOptions.length;const s=this.busy?this.loadingText:this.open?this.statusTemplate.replace("{count}",String(i)):"";return e(o,{key:"95493b711c8d67c0ad5156af5d6b406757003260",class:{"md-autocomplete":true,[`md-autocomplete--${this.variant}`]:true,"md-autocomplete--open":this.open,"md-autocomplete--disabled":this.disabled,"md-autocomplete--soft-disabled":this.softDisabled,"md-autocomplete--multiple":this.multiple,"md-autocomplete--loading":this.busy,[`md-autocomplete--chips-${this.chipPosition}`]:this.multiple},"aria-haspopup":"listbox","aria-busy":this.busy?"true":"false"},t&&this.renderChips(),this.renderTrigger(),!t&&this.renderChips(),this.renderMenu(),e("span",{key:"0f2678b39bb9644696e625623111d5ea73b7a7fa",class:"md-autocomplete__sr-status",role:"status","aria-live":"polite"},s))}static get formAssociated(){return true}get el(){return h(this)}static get watchers(){return{options:[{refreshOptions:0}],value:[{syncFormValue:0}],multiple:[{onMultipleFlip:0}],required:[{updateValidity:0}],valueMissingLabel:[{updateValidity:0}],open:[{syncMenu:0}]}}};b.style=m();export{b as md_autocomplete};
|
|
2
|
+
//# sourceMappingURL=p-7e7f0e45.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdAutocompleteCss","autocompleteIdCounter","VIRTUALIZE_THRESHOLD","SEARCH_DEBOUNCE_MS","MdAutocomplete","constructor","hostRef","this","valueMissingLabel","reserveSupportingSpace","customValidityMessage","variant","label","placeholder","supportingText","error","errorText","disabled","softDisabled","required","density","options","multiple","chipPosition","value","inputValue","freeSolo","maxSelected","loading","noOptionsText","noResultsText","loadingText","statusTemplate","disableCloseOnSelect","clearOnBlur","clearable","clearIcon","dropdownIcon","limitResults","open","virtualize","filterMode","placement","matchTriggerWidth","name","triggerId","focused","optionsData","labelMap","Map","packing","typedSinceOpen","loadGen","pendingListFocus","providerSet","vc","VirtualSelectController","queryItem","i","el","shadowRoot","querySelector","requestRender","forceUpdate","isSelected","val","selectedArray","includes","defaultValue","defaultInputValue","lastValidityKey","_syncGuard","_lastEmit","vpWired","handleMenuOpen","mdOpen","emit","active","setQuery","query","attachMenuViewport","handleMenuClose","mdClose","detachViewport","committed","get","mdInput","removeChip","e","stopPropagation","preventDefault","commitValue","filter","v","handleClear","mdClear","fieldEl","focus","handleFieldInput","applyTyped","detail","handleListboxKeyDown","ctrlKey","metaKey","altKey","isPrintable","key","length","slice","handleFieldKeyDown","firstOptionItem","all","querySelectorAll","commitFreeSolo","handleFieldFocus","handleFieldBlur","renderChipItem","h","part","exportparts","selectable","removable","onMdRemove","onClick","focusInput","showMenu","closeMenu","loadOptions","source","gen","isWasmSupported","rows","Array","isArray","from","count","_","getRow","reset","normalize","refreshLabelMap","setFixedRowHeight","rowHeight","setFilterMode","load","getLabels","values","Object","fromEntries","out","list","map","o","icon","iconColor","description","selected","optionList","raw","trim","parsed","JSON","parse","console","warn","refreshOptions","slotted","collectOptions","data","shouldVirtualize","then","ok","onOptionChange","busy","filteredOptions","state","results","filterer","defaultFilter","q","toLowerCase","size","next","resolved","set","opt","find","componentWillLoad","syncFormValue","componentDidLoad","menuEl","show","autoFocus","disconnectedCallback","clearTimeout","searchDebounce","formResetCallback","updateValidity","setFormValue","internals","FormData","append","single","onMultipleFlip","setValidity","customError","valueMissing","emitValidityChange","getValidity","getValidityOf","valid","validationMessage","primed","mdValidityChange","checkValidity","checkValidityOf","reportValidity","reportValidityOf","setCustomValidity","message","syncMenu","close","vp","getScrollViewport","attachViewport","async","componentDidRender","syncComboboxRefs","setVirtualProvider","provider","target","field","input","getInputElement","listbox","current","ariaControlsElements","mdChange","pick","exists","blocked","item","setTimeout","inlineChips","renderChips","class","role","renderInlineChips","slot","renderClearButton","forceHidden","hasValue","hidden","undefined","renderTrigger","ref","id","appearFocused","inputRole","inputExpanded","inputAriaAutocomplete","chipsWrap","onMdInput","onKeyDown","onFocus","onBlur","LazyLoadingIndicator","renderOptionIcon","style","color","renderVirtualOptions","height","topPad","windowRows","row","filteredIndex","windowStart","index","presentation","type","headline","filteredLength","onMdClick","bottomPad","renderMenu","virtual","filtered","datasetEmpty","emptyText","menuMaxHeight","maxHeight","anchor","persistent","onMdOpen","onMdClose","indeterminate","wave","render","chipsFirst","optionCount","srStatus","replace","String","Host"],"sources":["src/components/md-autocomplete/md-autocomplete.css?tag=md-autocomplete&encapsulation=shadow","src/components/md-autocomplete/md-autocomplete.tsx"],"sourcesContent":["/* ==========================================================\n md-autocomplete — Material Design 3 free-text + filterable\n dropdown. Composes md-text-field + md-menu.\n\n PUBLIC CSS CUSTOM PROPERTIES (override per-instance):\n --md-autocomplete-width Trigger width (default 100% of container)\n --md-autocomplete-min-width Minimum trigger width\n --md-autocomplete-chip-gap Gap between selected chips\n --md-autocomplete-chip-radius Chip corner radius\n --md-autocomplete-caret-color Trailing caret color\n --md-autocomplete-caret-size Caret glyph size (default 24px)\n --md-autocomplete-clear-color Clear button color\n --md-autocomplete-option-icon-size Leading-icon size in items\n --md-autocomplete-loading-color Color of the loading row\n --md-autocomplete-spinner-size Trigger busy-spinner size (default 22px)\n\n CSS PARTS:\n field Inner md-text-field\n chips Selected chips container\n caret Trailing dropdown caret\n clear Trailing clear button\n menu Popup md-menu\n loading Loading row inside the menu\n loading-spinner Trigger busy spinner (replaces clear/caret)\n\n SLOTS:\n loader Replaces the default trigger busy spinner\n dropdown-icon Replaces the caret glyph\n ========================================================== */\n\n:host {\n /* The text inset already includes the caret's 7px optical bearing (see\n md-text-field --_text-inset). Pull the TRAILING side back to the plain\n box inset so the caret's BOX sits 7px shallower and its INK lands on the\n same column as the text. */\n --md-text-field-padding-inline-end: var(--md-sys-spacing-inset-lg, 16px);\n --_min-width: var(--md-autocomplete-min-width, 220px);\n --_chip-gap: var(--md-autocomplete-chip-gap, var(--md-sys-spacing-gap-xs, 4px));\n --_chip-radius: var(--md-autocomplete-chip-radius, 8px);\n --_caret-color: var(--md-autocomplete-caret-color, var(--md-sys-color-on-surface-variant));\n --_clear-color: var(--md-autocomplete-clear-color, var(--md-sys-color-on-surface-variant));\n --_option-icon-size: var(--md-autocomplete-option-icon-size, 20px);\n --_loading-color: var(--md-autocomplete-loading-color, var(--md-sys-color-on-surface-variant));\n\n /* Fill the container (like md-select) — the trigger width must come from\n layout, never from the typed text (a shrink-to-fit inline-block would\n grow/shrink with the input's content). Flex column so chip-position can\n reorder the chips around the field. */\n display: inline-flex;\n flex-direction: column;\n inline-size: var(--md-autocomplete-width, 100%);\n min-inline-size: var(--_min-width);\n box-sizing: border-box;\n vertical-align: bottom;\n position: relative;\n}\n\n/* ── Chip positions around the field ───────────────────────── */\n\n:host(.md-autocomplete--chips-top) .md-autocomplete__chips {\n /* DOM order puts the chips first for top/left (focus + reading order must\n match the visual order) — no CSS `order` reshuffling. */\n margin-block-start: 0;\n margin-block-end: var(--md-sys-spacing-inset-sm, 8px);\n}\n\n:host(.md-autocomplete--chips-left),\n:host(.md-autocomplete--chips-right) {\n flex-direction: row;\n align-items: center;\n gap: var(--md-sys-spacing-gap-sm, 8px);\n}\n\n:host(.md-autocomplete--chips-left) .md-autocomplete__field,\n:host(.md-autocomplete--chips-right) .md-autocomplete__field {\n flex: 1 1 auto;\n inline-size: auto;\n min-inline-size: 0;\n}\n\n:host(.md-autocomplete--chips-left) .md-autocomplete__chips,\n:host(.md-autocomplete--chips-right) .md-autocomplete__chips {\n /* Beside the field: bounded content width (contain would collapse a row\n flex item to zero), wrapping within it. */\n contain: none;\n flex: 0 1 auto;\n max-inline-size: 50%;\n margin-block-start: 0;\n}\n\n\n.md-autocomplete__field {\n display: block;\n inline-size: 100%;\n}\n\n.md-autocomplete__chips {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--_chip-gap);\n max-inline-size: 100%;\n margin-block-start: var(--md-sys-spacing-inset-sm, 8px);\n /* Chips must not contribute intrinsic width: in a shrink-to-fit layout the\n row's max-content (all chips on one line) would widen the whole host as\n the selection grows. Contained, the trigger field alone sizes the host\n and the chips wrap within it. */\n contain: inline-size;\n}\n\n.md-autocomplete__chips md-chip {\n --md-chip-container-shape: var(--_chip-radius);\n}\n\n/* Chips INSIDE the field (chip-position=\"inline\"): slotted into md-text-field's\n `chips` slot with chips-wrap — they wrap onto new rows and the field grows. */\n.md-autocomplete__inline-chips {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--_chip-gap);\n min-inline-size: 0;\n overflow: visible;\n}\n\n.md-autocomplete__inline-chips md-chip {\n --md-chip-container-shape: var(--_chip-radius);\n flex-shrink: 0;\n}\n\n/* ── Trailing controls (caret + clear) ─────────────────────── */\n\n.md-autocomplete__caret {\n color: var(--_caret-color);\n /* Match the selects: 24px glyph, 200ms/standard rotation (see md-select.css). */\n font-size: var(--md-autocomplete-caret-size, 24px);\n line-height: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 24px;\n block-size: 24px;\n cursor: pointer;\n transition: transform var(--md-sys-motion-duration-short4, 200ms)\n var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));\n}\n\n:host(.md-autocomplete--open) .md-autocomplete__caret {\n transform: rotate(180deg);\n}\n\n/* The clear affordance is an md-icon-button (ring/ripple/a11y for free);\n sized down to sit inside the field's trailing cluster. */\n.md-autocomplete__clear {\n --md-icon-button-container-width: 28px;\n --md-icon-button-container-height: 28px;\n --md-icon-button-icon-size: 18px;\n color: var(--_clear-color);\n margin-inline-end: 2px;\n}\n\n/* Space stays reserved; the button is just invisible + inert while there is\n nothing to clear (visibility also drops it from the tab order / AT). */\n.md-autocomplete__clear--hidden {\n visibility: hidden;\n pointer-events: none;\n}\n\n/* Busy state: trigger spinner replacing the clear/caret cluster (see the\n selects — same sizing convention). */\n.md-autocomplete__loader {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 24px;\n block-size: 24px;\n --md-loading-indicator-size: var(--md-autocomplete-spinner-size, 22px);\n --md-loading-indicator-shape-size: var(--md-autocomplete-spinner-size, 22px);\n}\n\n/* ── Menu styling ──────────────────────────────────────────── */\n\n/* Centred, like the selects' empty states. */\nmd-menu::part(empty-text) {\n display: flex;\n justify-content: center;\n padding: var(--md-sys-spacing-inset-md, 12px) var(--md-sys-spacing-inset-lg, 16px);\n color: var(--md-sys-color-on-surface-variant);\n text-align: center;\n}\n\n.md-autocomplete__option-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--md-autocomplete-option-icon-color, var(--md-sys-color-on-surface-variant, #49454f));\n font-size: var(--_option-icon-size);\n inline-size: var(--_option-icon-size);\n block-size: var(--_option-icon-size);\n}\n\n/* Listbox wrapper (plain + virtualized) — the spacers preserve the full\n scroll height around the rendered window. */\n.md-autocomplete__listbox {\n display: block;\n}\n\n.md-autocomplete__vspacer {\n inline-size: 100%;\n pointer-events: none;\n}\n\n.md-autocomplete__loading {\n display: block;\n padding: var(--md-sys-spacing-inset-md, 12px) var(--md-sys-spacing-inset-lg, 16px);\n color: var(--_loading-color);\n}\n\n/* Visually-hidden polite status region (expanded count / busy). */\n.md-autocomplete__sr-status {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n\n/* ── Disabled ──────────────────────────────────────────────── */\n\n:host(.md-autocomplete--disabled),\n:host(.md-autocomplete--soft-disabled) {\n pointer-events: none;\n}\n\n:host(.md-autocomplete--soft-disabled) .md-autocomplete__field {\n pointer-events: auto;\n}\n\n/* ── RTL ────────────────────────────────────────────────────── */\n\n/* ── Reduced motion ────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .md-autocomplete__caret,\n .md-autocomplete__clear {\n transition: none;\n }\n}\n\n/* ── Forced colors (Windows High Contrast) ─────────────────── */\n\n@media (forced-colors: active) {\n .md-autocomplete__caret,\n .md-autocomplete__clear {\n color: CanvasText;\n }\n}\n\n/* ── Material Symbols font (shadow-root scope) ─────────────── */\n\n/* Caret, clear, and option icons render inside our shadow root\n (even when slotted into nested md-text-field / md-menu-item),\n so they need the font-family declared locally — shadow DOM\n does not inherit page-level CSS class rules. */\n.material-symbols-outlined {\n font-family: var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');\n font-weight: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n overflow-wrap: normal;\n direction: ltr;\n font-feature-settings: 'liga';\n -webkit-font-smoothing: antialiased;\n}\n\n/* ==========================================================\n DENSITY (local override)\n This component FORWARDS `density` to the md-text-field it embeds, which\n handles the field box — but that forward says nothing about this host, so its\n OWN chrome (dropdown surface, chips, frame gaps) stayed at density-0 whenever\n density came from the local prop rather than a global ancestor. Mapping the\n prop onto the shared signal here fixes that asymmetry; the spacing-token half\n of the rung arrives from the [density=\"-N\"] selector in tokens.css.\n ========================================================== */\n:host([density='-1']) { --md-sys-density-scale: -1; }\n:host([density='-2']) { --md-sys-density-scale: -2; }\n:host([density='-3']) { --md-sys-density-scale: -3; }\n:host([density='-4']) { --md-sys-density-scale: -4; }\n","import { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, forceUpdate, h } from '@stencil/core';\nimport { LazyLoadingIndicator } from '../../utils/lazy-loading-indicator';\nimport { setFormValue, checkValidityOf, reportValidityOf, getValidityOf } from '../../utils/form';\nimport {\n collectOptions,\n SelectOptionData,\n SelectOptionInit,\n OptionRowSource,\n} from '../../utils/select-options';\nimport { VirtualSelectController } from '../../utils/virtual-select-controller';\nimport { isWasmSupported, FilterMode } from '../../utils/wasm-option-store';\n\nlet autocompleteIdCounter = 0;\n\n/** Above this many options, `virtualize=\"auto\"` switches to the WASM path. */\nconst VIRTUALIZE_THRESHOLD = 200;\n\n/** Idle time after a keystroke before the virtualized query runs (debounce). */\nconst SEARCH_DEBOUNCE_MS = 200;\n\n/**\n * Programmatic option entry. Extends the shared select model with a\n * legacy `description` alias for `supportingText`.\n */\nexport interface MdAutocompleteOption extends SelectOptionInit {\n /** @deprecated Use `supportingText`. */\n description?: string;\n}\n\ninterface VirtualMenuEl extends HTMLElement {\n show?: (opts?: { autoFocus?: boolean }) => Promise<void>;\n close?: () => Promise<void>;\n setVirtualProvider?: (p: unknown | null) => Promise<void>;\n getScrollViewport?: () => Promise<HTMLElement | null>;\n}\n\n/**\n * `md-autocomplete` — Material Design 3 combobox: a text field that filters\n * a dropdown listbox **as you type in the input** (no separate search row),\n * with single or multiple (chips) selection.\n *\n * Built from the same primitives as `md-select` / `md-multi-select`:\n * - the shared option model (`options` array of `{ value, label,\n * supportingText?, icon?, iconColor?, disabled? }` or slotted\n * `<md-select-option>` children),\n * - `md-text-field` for the trigger (typing filters live),\n * - `md-menu` as a WAI-ARIA listbox popup (options carry `aria-selected`),\n * - `VirtualSelectController` for WASM-virtualized huge datasets\n * (`virtualize`, `loadOptions()`, `filter-mode`) — the same engine as\n * the selects, so tens of thousands of rows filter smoothly.\n *\n * Keyboard: typing filters; ArrowDown moves focus into the listbox (the\n * focus-moves-into-popup combobox variant — option focus is announced\n * directly); Enter selects; Escape closes back to the input; Backspace on an\n * empty multi input removes the last chip.\n *\n * ARIA: the real textbox — the `<input>` inside md-text-field's shadow root —\n * is promoted to `role=\"combobox\"` with `aria-expanded` / `aria-autocomplete`\n * (handed over via `input-role`, since only that component renders the input),\n * and points at this component's listbox through ARIA element reflection. An\n * IDREF could not: it would have to resolve inside md-text-field's tree, where\n * the listbox is not. See `syncComboboxRefs`.\n *\n * Extras kept from the surface this API mirrors: `free-solo` (commit arbitrary text),\n * `max-selected`, `clearable`, `disable-close-on-select`, `clear-on-blur`,\n * a custom `filterer` and `limit-results` (client-side path only).\n */\n@Component({\n tag: 'md-autocomplete',\n styleUrl: 'md-autocomplete.css',\n shadow: true,\n formAssociated: true,\n})\nexport class MdAutocomplete {\n @Element() el!: HTMLElement;\n\n\n /**\n * Localized constraint-validation message shown when `required` is unmet.\n * `errorText` still wins when set, so an app-supplied inline message and the\n * native bubble stay in agreement.\n */\n @Prop({ attribute: 'value-missing-label' }) valueMissingLabel: string = 'Please make a selection';\n\n\n /**\n * Always occupy the supporting-text line, even when there is no message, so a\n * validation error does not push the content below it down. Forwarded to the\n * embedded md-text-field. See that component for why it is opt-in.\n */\n @Prop({ attribute: 'reserve-supporting-space' }) reserveSupportingSpace: boolean = false;\n\n /** Message set via setCustomValidity(); non-empty wins over valueMissing. */\n private customValidityMessage = '';\n\n /**\n * Form-association handle. The selection is submitted under the host's\n * `name` via `setFormValue` (a single string, or repeated pairs when\n * `multiple`), so the control participates in `<form>`/`FormData` natively.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /** Visual variant of the inner text-field. */\n @Prop({ reflect: true }) variant: 'filled' | 'outlined' = 'filled';\n\n /** Floating label / accessible name. */\n @Prop() label: string = '';\n\n /** Placeholder for the input. */\n @Prop() placeholder: string = '';\n\n /** Supporting / helper text below the field. */\n @Prop({ attribute: 'supporting-text' }) supportingText: string = '';\n\n /** Error state — forwarded to the text-field. */\n @Prop({ reflect: true }) error: boolean = false;\n\n /** Error text rendered in place of supporting text when `error` is true. */\n @Prop({ attribute: 'error-text' }) errorText: string = '';\n\n /** Disabled — non-interactive. */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Soft-disabled — focusable but non-interactive. */\n @Prop({ reflect: true, attribute: 'soft-disabled' }) softDisabled: boolean = false;\n\n /** Required for native form parity. */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Density forwarded to the text-field. */\n @Prop({ reflect: true }) density: 0 | -1 | -2 | -3 | -4 = 0;\n\n /**\n * Programmatic options (shared select model; `description` is accepted as\n * a legacy alias for `supportingText`). Slotted `<md-select-option>`\n * children take precedence when present.\n *\n * Accepts either the array (property) or a **JSON string** (attribute), the\n * same contract `md-organization-chart.nodes` uses — so a plain-HTML page can\n * declare its dataset inline instead of reaching for a script:\n *\n * <md-autocomplete options='[{\"value\":\"a\",\"label\":\"Apple\"}]'></md-autocomplete>\n *\n * Malformed JSON degrades to an empty list rather than throwing: a broken\n * attribute must not take the whole field down.\n */\n @Prop() options: MdAutocompleteOption[] | string = [];\n\n /** Multi-select mode — the selection renders as removable chips. */\n @Prop({ reflect: true }) multiple: boolean = false;\n\n /** Where the selection chips live (`multiple` only): around the field\n * (`'below'` default, `'top'`, `'left'`, `'right'`) or `'inline'` inside\n * it, before the input, wrapping onto new rows as the selection grows\n * (the field grows with them). */\n @Prop({ attribute: 'chip-position', reflect: true }) chipPosition:\n | 'below'\n | 'top'\n | 'left'\n | 'right'\n | 'inline' = 'below';\n\n /**\n * Single-mode value — option `value` or free-solo string.\n * Multi-mode value — array of option `value`s.\n */\n @Prop({ mutable: true }) value: string | string[] = '';\n\n /** Live text of the input (separate from `value` so typing never commits). */\n @Prop({ mutable: true, attribute: 'input-value' }) inputValue: string = '';\n\n /** Allow committing arbitrary text (not just options) with Enter. */\n @Prop({ reflect: true, attribute: 'free-solo' }) freeSolo: boolean = false;\n\n /** When `multiple`, the max number of selected items (`0` = no limit). */\n @Prop({ attribute: 'max-selected' }) maxSelected: number = 0;\n\n /** Busy state: progress bar in the menu while an async dataset loads. */\n @Prop({ reflect: true }) loading: boolean = false;\n\n /** Empty-state text when the dataset has no options at all. */\n @Prop({ attribute: 'no-options-text' }) noOptionsText: string = 'No options';\n\n /** Empty-state text when the typed filter matches nothing. */\n @Prop({ attribute: 'no-results-text' }) noResultsText: string = 'No results';\n\n /** Text shown while `loading` is true. */\n @Prop({ attribute: 'loading-text' }) loadingText: string = 'Loading…';\n\n /** Template for the polite screen-reader status while the popup is open\n * (localisable). `{count}` is replaced with the visible option count. */\n @Prop({ attribute: 'status-template' }) statusTemplate: string = '{count} suggestions available';\n\n /**\n * Keep the menu open after a selection in **single** mode.\n *\n * `multiple` already stays open — picking several in a row is the point, and\n * it dismisses on an outside click, on the trigger, or on Escape. This prop\n * gives a single-select the same stickiness when a picker is being used to\n * scan rather than to commit.\n */\n @Prop({ attribute: 'disable-close-on-select', reflect: true }) disableCloseOnSelect: boolean = false;\n\n /** Clear a non-matching input on blur (strict single mode only). */\n @Prop({ attribute: 'clear-on-blur', reflect: true }) clearOnBlur: boolean = false;\n\n /** Show a clear (×) button on the trailing edge. */\n @Prop({ reflect: true }) clearable: boolean = true;\n\n /** Material Symbols glyph for the clear button. */\n @Prop({ attribute: 'clear-icon' }) clearIcon: string = 'close';\n\n /** Caret glyph; rotates 180° when open (matches md-select). Slot\n * `dropdown-icon` overrides it. */\n @Prop({ attribute: 'dropdown-icon' }) dropdownIcon: string = 'arrow_drop_down';\n\n /** Max items shown in the dropdown (`0` = unlimited; client-side path only). */\n @Prop({ attribute: 'limit-results' }) limitResults: number = 0;\n\n /** Open state. */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /**\n * Custom client-side filter (ignored while virtualized — the WASM engine\n * filters by `filter-mode` instead).\n */\n @Prop() filterer?: (\n options: SelectOptionData[],\n state: { inputValue: string; selected: string[] },\n ) => SelectOptionData[];\n\n /**\n * Virtualization strategy (same engine as `md-select`):\n * - `'auto'` (default): virtualize above 200 rows.\n * - `'always'`: always virtualize the `options` / `loadOptions` dataset.\n * - `'never'`: plain DOM rendering.\n */\n @Prop() virtualize: 'auto' | 'always' | 'never' = 'auto';\n\n /** Filter strategy for the virtualized (WASM) path. */\n @Prop({ attribute: 'filter-mode' }) filterMode: FilterMode = 'substring';\n\n /** Fixed virtualized row height (px). Auto-measured from the first row if unset. */\n @Prop({ attribute: 'row-height' }) rowHeight?: number;\n\n /** Menu placement. */\n @Prop() placement: 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' = 'bottom-start';\n\n /** Match the dropdown width to the trigger. */\n @Prop({ attribute: 'match-trigger-width' }) matchTriggerWidth: boolean = true;\n\n /** Max height of the dropdown menu (px). */\n @Prop({ attribute: 'max-height' }) maxHeight?: number;\n\n /** Form name. Multi-mode submits as repeated `name=value` pairs. */\n @Prop({ reflect: true }) name: string = '';\n\n /** Fires whenever the committed selection changes. */\n @Event() mdChange: EventEmitter<string | string[]>;\n\n /** Fires whenever the live input string changes. */\n @Event() mdInput: EventEmitter<string>;\n\n /** Fires when the menu opens. */\n @Event() mdOpen: EventEmitter<void>;\n\n /** Fires when the menu closes. */\n @Event() mdClose: EventEmitter<void>;\n\n /** Fires when the user clears the value. */\n @Event() mdClear: EventEmitter<void>;\n\n @State() private triggerId: string = `md-autocomplete-${++autocompleteIdCounter}`;\n @State() private focused: boolean = false;\n /** Normalised dataset for the plain-DOM path (empty while virtualized). */\n @State() private optionsData: SelectOptionData[] = [];\n /** value → label cache so chips / the input label survive off-window rows. */\n @State() private labelMap: Map<string, string> = new Map();\n\n /** True while a dataset is packing into the WASM store — presents the same\n * busy UI as `loading` until the rows are ready. */\n @State() private packing = false;\n\n /** True once the user typed since the menu opened — before that the full\n * list shows (reopening a committed single value must not filter to it). */\n private typedSinceOpen = false;\n\n /** Monotonic guard: only the NEWEST load may commit its results (a dataset\n * replaced mid-pack must not interleave or resurrect stale state). */\n private loadGen = 0;\n\n /** Deferred focus target inside the freshly-opened listbox (APG: ArrowDown\n * from a closed combobox opens AND focuses the first option). */\n private pendingListFocus: 'first' | 'last' | null = null;\n\n private fieldEl?: HTMLElement & { focus?: () => void };\n private menuEl?: VirtualMenuEl;\n private searchDebounce?: ReturnType<typeof setTimeout>;\n private providerSet = false;\n\n private vc = new VirtualSelectController({\n queryItem: (i) =>\n (this.el.shadowRoot?.querySelector(\n `md-menu-item[data-vindex=\"${i}\"]`,\n ) as HTMLElement | null) ?? null,\n requestRender: () => forceUpdate(this),\n });\n\n // ── Public API ───────────────────────────────────────────\n\n /** Programmatically focus the input. */\n @Method()\n async focusInput() {\n this.fieldEl?.focus?.();\n }\n\n /** Open the menu. */\n @Method()\n async showMenu() {\n if (this.disabled) return;\n this.open = true;\n }\n\n /** Close the menu. */\n @Method()\n async closeMenu() {\n this.open = false;\n }\n\n /**\n * Load a large dataset into the WASM-backed virtualized list (rows are\n * byte-packed off the JS heap). Accepts an array or a `{ count, getRow }`\n * factory. Falls back to plain DOM when `virtualize=\"never\"` or WASM is\n * unavailable.\n */\n @Method()\n async loadOptions(source: SelectOptionInit[] | OptionRowSource) {\n const gen = ++this.loadGen;\n if (this.virtualize === 'never' || !isWasmSupported()) {\n const rows = Array.isArray(source)\n ? source\n : Array.from({ length: source.count }, (_, i) => source.getRow(i));\n this.vc.reset();\n this.optionsData = this.normalize(rows);\n this.refreshLabelMap();\n return;\n }\n this.optionsData = [];\n this.packing = true;\n try {\n this.vc.setFixedRowHeight(this.rowHeight);\n this.vc.setFilterMode(this.filterMode);\n await this.vc.load(Array.isArray(source) ? this.normalize(source) : source);\n } finally {\n if (gen === this.loadGen) this.packing = false;\n }\n if (gen !== this.loadGen) return; // superseded by a newer load/refresh\n // A filter typed while the pack ran must apply to the fresh dataset.\n if (this.open && this.typedSinceOpen) this.vc.setQuery(this.query);\n this.refreshLabelMap();\n forceUpdate(this);\n }\n\n /** Resolve labels for a set of values (virtual-safe). */\n @Method()\n async getLabels(values: string[]): Promise<Record<string, string>> {\n if (this.vc.active) return Object.fromEntries(this.vc.getLabels(values));\n const out: Record<string, string> = {};\n for (const v of values) out[v] = this.labelMap.get(v) ?? v;\n return out;\n }\n\n // ── Option collection ────────────────────────────────────\n\n /** Accept the legacy `description` alias for `supportingText`. */\n private normalize(list: ReadonlyArray<MdAutocompleteOption>): SelectOptionData[] {\n return list.map((o) => ({\n value: o.value,\n label: o.label ?? o.value,\n disabled: !!o.disabled,\n icon: o.icon,\n iconColor: o.iconColor,\n supportingText: o.supportingText ?? o.description,\n selected: !!o.selected,\n }));\n }\n\n /**\n * `options` arrives as an array from a property binding, or as a JSON string\n * from an attribute. Everything downstream wants the array.\n */\n private get optionList(): MdAutocompleteOption[] {\n const raw = this.options;\n if (Array.isArray(raw)) return raw;\n if (typeof raw === 'string' && raw.trim()) {\n try {\n const parsed = JSON.parse(raw);\n return Array.isArray(parsed) ? parsed : [];\n } catch {\n // A malformed attribute is an authoring mistake, not a reason to break\n // the field — warn once and carry on with nothing.\n if (typeof console !== 'undefined') {\n console.warn('[md-autocomplete] `options` attribute is not valid JSON:', raw);\n }\n return [];\n }\n }\n return [];\n }\n\n @Watch('options')\n refreshOptions() {\n const slotted = collectOptions(this.el, []);\n const data = slotted.length > 0 ? slotted : this.normalize(this.optionList);\n const shouldVirtualize =\n this.virtualize === 'always' ||\n (this.virtualize === 'auto' && data.length > VIRTUALIZE_THRESHOLD);\n const gen = ++this.loadGen;\n\n if (shouldVirtualize && isWasmSupported() && data.length > 0) {\n this.optionsData = [];\n this.packing = true;\n this.vc.setFixedRowHeight(this.rowHeight);\n this.vc.setFilterMode(this.filterMode);\n void this.vc.load(data).then((ok) => {\n if (gen !== this.loadGen) return; // superseded by a newer load/refresh\n if (!ok) {\n this.optionsData = data;\n }\n this.packing = false;\n // A filter typed while the pack ran must apply to the fresh dataset.\n if (ok && this.open && this.typedSinceOpen) this.vc.setQuery(this.query);\n this.refreshLabelMap();\n forceUpdate(this);\n });\n } else {\n this.vc.reset();\n this.optionsData = data;\n this.refreshLabelMap();\n }\n }\n\n /** Slotted `<md-select-option>` mount/unmount/data change → re-read. */\n @Listen('mdSelectOptionChange')\n onOptionChange(e: Event) {\n e.stopPropagation();\n this.refreshOptions();\n }\n\n // ── Selection state ──────────────────────────────────────\n\n /** Effective busy state: consumer-driven `loading` OR an in-flight pack. */\n private get busy(): boolean {\n return this.loading || this.packing;\n }\n\n private get selectedArray(): string[] {\n if (this.multiple) return Array.isArray(this.value) ? this.value : [];\n if (typeof this.value === 'string' && this.value) return [this.value];\n return [];\n }\n\n private isSelected = (val: string) => this.selectedArray.includes(val);\n\n /** The active filter query: only what the user typed since open counts. */\n private get query(): string {\n return this.typedSinceOpen ? this.inputValue.trim() : '';\n }\n\n private get filteredOptions(): SelectOptionData[] {\n const selected = this.selectedArray;\n const state = { inputValue: this.query, selected };\n let results = this.filterer\n ? this.filterer(this.optionsData, state)\n : this.defaultFilter(this.optionsData, state);\n if (this.limitResults > 0) results = results.slice(0, this.limitResults);\n return results;\n }\n\n private defaultFilter(\n options: SelectOptionData[],\n state: { inputValue: string; selected: string[] },\n ): SelectOptionData[] {\n const q = state.inputValue.toLowerCase();\n if (!q) return options;\n return options.filter(\n (o) =>\n o.label.toLowerCase().includes(q) ||\n o.value.toLowerCase().includes(q) ||\n (o.supportingText?.toLowerCase().includes(q) ?? false),\n );\n }\n\n /** Rebuild the value→label cache (chips, single-mode input text). */\n private refreshLabelMap() {\n const values = this.selectedArray;\n if (values.length === 0) {\n if (this.labelMap.size) this.labelMap = new Map();\n return;\n }\n const next = new Map<string, string>();\n if (this.vc.active) {\n const resolved = this.vc.getLabels(values);\n for (const v of values) {\n next.set(v, resolved.get(v) ?? this.labelMap.get(v) ?? v);\n }\n } else {\n for (const v of values) {\n const opt = this.optionsData.find((o) => o.value === v);\n next.set(v, opt?.label ?? this.labelMap.get(v) ?? v);\n }\n }\n this.labelMap = next;\n }\n\n // ── Form association ─────────────────────────────────────\n\n private defaultValue: string | string[] = '';\n private defaultInputValue = '';\n\n componentWillLoad() {\n this.refreshOptions();\n this.defaultValue = Array.isArray(this.value) ? [...this.value] : this.value;\n this.defaultInputValue = this.inputValue;\n this.syncFormValue();\n }\n\n componentDidLoad() {\n // @Watch('open') does not fire for the initial value.\n if (this.open && !this.disabled) {\n void this.menuEl?.show?.({ autoFocus: false });\n this.mdOpen.emit();\n }\n }\n\n disconnectedCallback() {\n clearTimeout(this.searchDebounce);\n this.vc.detachViewport();\n }\n\n formResetCallback() {\n this.value = Array.isArray(this.defaultValue) ? [...this.defaultValue] : this.defaultValue;\n this.inputValue = this.defaultInputValue;\n // Stale filter state must not survive a reset.\n this.typedSinceOpen = false;\n clearTimeout(this.searchDebounce);\n if (this.vc.active) this.vc.setQuery('');\n }\n\n @Watch('value')\n syncFormValue() {\n this.updateValidity();\n this.refreshLabelMap();\n // Programmatic single-mode value set (menu closed): reflect the committed\n // label in the visible input — otherwise the field shows stale text until\n // the next interaction. Silent (no mdInput): this is not user typing.\n if (!this.multiple && !this.open) {\n const committed =\n typeof this.value === 'string' && this.value\n ? this.labelMap.get(this.value) ?? this.value\n : '';\n if (this.inputValue !== committed) this.inputValue = committed;\n }\n if (this.multiple) {\n const values = this.selectedArray;\n if (!values.length) {\n setFormValue(this.internals, null);\n return;\n }\n const data = new FormData();\n for (const v of values) data.append(this.name || '', v);\n setFormValue(this.internals, data);\n return;\n }\n const single = typeof this.value === 'string' ? this.value : '';\n setFormValue(this.internals, single || null);\n }\n\n /** Flipping `multiple` at runtime must re-shape the value and re-submit —\n * ElementInternals would otherwise keep the pre-flip payload. */\n @Watch('multiple')\n onMultipleFlip() {\n if (this.multiple) {\n if (typeof this.value === 'string') this.value = this.value ? [this.value] : [];\n else this.syncFormValue();\n } else {\n if (Array.isArray(this.value)) this.value = this.value[0] ?? '';\n else this.syncFormValue();\n }\n }\n\n @Watch('required')\n @Watch('valueMissingLabel')\n updateValidity() {\n if (!this.internals?.setValidity) return;\n // setCustomValidity() takes precedence over valueMissing, matching native.\n if (this.customValidityMessage) {\n this.internals.setValidity(\n { customError: true },\n this.customValidityMessage,\n (this.fieldEl as HTMLElement) ?? this.el,\n );\n } else if (this.required && this.selectedArray.length === 0) {\n this.internals.setValidity(\n { valueMissing: true },\n this.errorText || this.valueMissingLabel,\n (this.fieldEl as HTMLElement) ?? this.el,\n );\n } else {\n this.internals.setValidity({});\n }\n this.emitValidityChange();\n }\n\n /** Current validity: boolean, message and flags. Mirrors md-text-field. */\n @Method()\n async getValidity(): Promise<{\n valid: boolean;\n validationMessage: string;\n flags: Record<string, boolean>;\n }> {\n return getValidityOf(this.internals);\n }\n\n /**\n * Fires when this control's validity CHANGES — never on every keystroke, and\n * never for a re-publish that lands on the same state.\n *\n * `composed: false` is deliberate. Composites like md-select embed an\n * md-text-field, and a composed event escapes that inner shadow root, so a\n * listener on md-select would receive the inner field's event as well as the\n * host's — two events, different payloads, for one logical control. Keeping\n * it uncomposed means each component reports only for itself, while\n * `bubbles: true` still lets a <form> or app root hear every control.\n */\n @Event({ bubbles: true, composed: false }) mdValidityChange: EventEmitter<{\n valid: boolean;\n validationMessage: string;\n flags: Record<string, boolean>;\n }>;\n\n /** Last emitted validity, so a re-publish that changes nothing stays silent. */\n private lastValidityKey: string | null = null;\n\n /**\n * Emit mdValidityChange if validity actually moved.\n *\n * The FIRST call only primes the baseline. Initial state is not a change, and\n * emitting on mount would fire once per control on every page load — noise a\n * consumer would have to filter out, and misleading for anything logging\n * \"field became invalid\".\n */\n private emitValidityChange() {\n const v = getValidityOf(this.internals);\n const key = `${v.valid}|${v.validationMessage}`;\n if (this.lastValidityKey === key) return;\n const primed = this.lastValidityKey !== null;\n this.lastValidityKey = key;\n if (primed) this.mdValidityChange.emit(v);\n }\n\n /** Constraint-validation API, matching md-text-field and the native contract.\n * Validity was already published to the form here, but with no public method\n * a consumer could not ASK this control whether it was valid. */\n @Method()\n async checkValidity(): Promise<boolean> {\n return checkValidityOf(this.internals);\n }\n\n @Method()\n async reportValidity(): Promise<boolean> {\n return reportValidityOf(this.internals);\n }\n\n @Method()\n async setCustomValidity(message: string) {\n this.customValidityMessage = message;\n this.updateValidity();\n }\n\n // ── Menu open/close plumbing (mirrors md-select) ─────────\n\n private _syncGuard = false;\n private _lastEmit: 'open' | 'close' | null = null;\n\n @Watch('open')\n syncMenu(open: boolean) {\n if (this._syncGuard || !this.menuEl) return;\n if (open) {\n // Focus stays in the input — typing keeps filtering.\n this.menuEl.show?.({ autoFocus: false });\n } else {\n this.menuEl.close?.();\n }\n }\n\n /** True once the vc is wired to the menu's live scroll viewport. */\n private vpWired = false;\n\n /** Wire the vc to the menu's scroll viewport (listener + row measure +\n * recompute). The viewport only exists once the CAPPED virtual listbox has\n * rendered (the busy bar renders uncapped, without a scroll viewport), so a\n * null resolve just returns — componentDidRender retries every render\n * while the menu is open until the wiring lands. */\n private attachMenuViewport() {\n void (async () => {\n const vp = (await this.menuEl?.getScrollViewport?.()) ?? null;\n if (!vp || this.vpWired) return;\n this.vpWired = true;\n await this.vc.attachViewport(async () => vp);\n })();\n }\n\n private handleMenuOpen = () => {\n this._syncGuard = true;\n this.open = true;\n this._syncGuard = false;\n if (this._lastEmit !== 'open') {\n this._lastEmit = 'open';\n this.mdOpen.emit();\n }\n if (this.vc.active) {\n // Apply the live query (typing may have just opened the menu — the open\n // event lands after the keystroke, so the filter must be preserved).\n this.vc.setQuery(this.query);\n this.attachMenuViewport();\n }\n };\n\n private handleMenuClose = () => {\n this._syncGuard = true;\n this.open = false;\n this._syncGuard = false;\n if (this._lastEmit !== 'close') {\n this._lastEmit = 'close';\n this.mdClose.emit();\n }\n // Reset the typing gate on close, so REOPENING shows the full list (a\n // committed single value must not filter the list down to itself).\n this.typedSinceOpen = false;\n this.vc.detachViewport();\n this.vpWired = false;\n // Strict single mode: snap the input back to the committed label (or\n // empty) — typed-but-uncommitted text must not linger after the popup\n // closes, and the committed value itself is never touched by typing.\n if (!this.multiple && !this.freeSolo) {\n const committed =\n typeof this.value === 'string' && this.value\n ? this.labelMap.get(this.value) ?? this.value\n : '';\n if (this.inputValue !== committed) {\n this.inputValue = committed;\n this.mdInput.emit(committed);\n }\n }\n };\n\n /** Register/clear the virtual provider on the menu once it's rendered, and\n * (re)try the viewport wiring — the menu may have been opened while the\n * dataset was still packing, before the scroll viewport existed. */\n componentDidRender() {\n void this.syncComboboxRefs();\n if (!this.menuEl) return;\n if (this.vc.active && !this.providerSet) {\n void this.menuEl.setVirtualProvider?.(this.vc.provider);\n this.providerSet = true;\n } else if (!this.vc.active && this.providerSet) {\n void this.menuEl.setVirtualProvider?.(null);\n this.providerSet = false;\n }\n if (this.open && this.vc.active && !this.vpWired) this.attachMenuViewport();\n if (this.pendingListFocus && this.open) {\n const all = this.el.shadowRoot?.querySelectorAll(\n '.md-autocomplete__listbox md-menu-item:not([disabled])',\n );\n const target = (this.pendingListFocus === 'first' ? all?.[0] : all?.[all.length - 1]) as\n | HTMLElement\n | undefined;\n if (target) {\n this.pendingListFocus = null;\n target.focus();\n }\n } else if (this.pendingListFocus && !this.open) {\n this.pendingListFocus = null;\n }\n }\n\n /**\n * Point the combobox at its listbox ACROSS the shadow boundary.\n *\n * The textbox lives in md-text-field's shadow root and the listbox in this\n * one, so `aria-controls` as an IDREF is unusable — an IDREF only resolves\n * inside a single tree. ARIA element reflection takes element references\n * instead, and a reference from a descendant tree to an element in an\n * ancestor tree is in scope: verified in the accessibility tree, where the\n * combobox node gains a real `controls` relation to the listbox.\n *\n * Where reflection is unavailable the component is still a combobox with a\n * truthful expanded state, and ArrowDown moves REAL focus onto an option —\n * the APG variant that does not depend on a reference at all.\n */\n private async syncComboboxRefs() {\n const field = this.fieldEl as (HTMLElement & {\n getInputElement?: () => Promise<HTMLInputElement | null>;\n }) | undefined;\n const input = await field?.getInputElement?.();\n if (!input || !('ariaControlsElements' in input)) return;\n const listbox = this.el.shadowRoot?.querySelector('[role=\"listbox\"]') as HTMLElement | null;\n const next = this.open && listbox ? [listbox] : null;\n const current = (input as unknown as { ariaControlsElements: Element[] | null })\n .ariaControlsElements;\n // Idempotent: reassigning every render would churn the AX tree.\n if (!next && !current?.length) return;\n if (next && current?.length === 1 && current[0] === next[0]) return;\n (input as unknown as { ariaControlsElements: Element[] | null }).ariaControlsElements = next;\n }\n\n // ── Selection ────────────────────────────────────────────\n\n private commitValue(next: string | string[]) {\n this.value = next;\n this.mdChange.emit(next);\n }\n\n private pick(value: string, label: string, disabled: boolean | undefined, e?: CustomEvent) {\n // Composed mdClick would otherwise leak to host listeners.\n e?.stopPropagation();\n if (disabled) return;\n if (this.multiple) {\n const current = this.selectedArray;\n const exists = current.includes(value);\n const blocked = !exists && this.maxSelected > 0 && current.length >= this.maxSelected;\n if (blocked) {\n // md-menu-item self-toggled selected=true before this fired; revert it.\n const item = e?.target as (HTMLElement & { selected?: boolean }) | null;\n if (item) item.selected = false;\n return;\n }\n this.labelMap = new Map(this.labelMap).set(value, label);\n const next = exists ? current.filter((v) => v !== value) : [...current, value];\n this.commitValue(next);\n this.inputValue = '';\n this.mdInput.emit('');\n this.typedSinceOpen = false;\n if (this.vc.active) this.vc.setQuery('');\n // Multi-select stays OPEN on pick — choosing several in a row is the\n // whole point, and md-multi-select already behaves this way. Closing\n // after the first pick forced a reopen per item. It dismisses on an\n // outside click, on the trigger, or on Escape like any other popup.\n this.fieldEl?.focus?.();\n } else {\n this.labelMap = new Map(this.labelMap).set(value, label);\n this.commitValue(value);\n this.inputValue = label;\n this.mdInput.emit(label);\n // The selection ends the query session NOW — not at mdClose time. The\n // close event lands ~150ms later (menu animation); reopening within\n // that window must already show the full list, not a list filtered by\n // the committed label.\n this.typedSinceOpen = false;\n if (this.vc.active) this.vc.setQuery('');\n if (!this.disableCloseOnSelect) this.open = false;\n this.fieldEl?.focus?.();\n }\n }\n\n private commitFreeSolo(): boolean {\n if (!this.freeSolo) return false;\n const raw = this.inputValue.trim();\n if (!raw) return false;\n if (this.multiple) {\n const current = this.selectedArray;\n if (current.includes(raw)) return true;\n if (this.maxSelected > 0 && current.length >= this.maxSelected) return false;\n this.labelMap = new Map(this.labelMap).set(raw, raw);\n this.commitValue([...current, raw]);\n this.inputValue = '';\n this.mdInput.emit('');\n } else {\n this.commitValue(raw);\n }\n return true;\n }\n\n private removeChip = (val: string) => (e: CustomEvent | MouseEvent) => {\n e.stopPropagation();\n if ('preventDefault' in e) e.preventDefault();\n if (this.disabled || this.softDisabled || !this.multiple) return;\n this.commitValue(this.selectedArray.filter((v) => v !== val));\n };\n\n private handleClear = () => {\n if (this.disabled || this.softDisabled) return;\n this.inputValue = '';\n this.mdInput.emit('');\n this.typedSinceOpen = false;\n if (this.vc.active) this.vc.setQuery('');\n this.commitValue(this.multiple ? [] : '');\n this.mdClear.emit();\n this.fieldEl?.focus?.();\n };\n\n // ── Input handlers ───────────────────────────────────────\n\n /** Apply a typed input string (from the field, or a printable key redirected\n * out of the listbox): update state, open, and drive the (virtual) filter. */\n private applyTyped(raw: string) {\n this.inputValue = raw;\n this.typedSinceOpen = true;\n this.mdInput.emit(raw);\n if (!this.open) this.open = true;\n if (this.vc.active) {\n clearTimeout(this.searchDebounce);\n this.searchDebounce = setTimeout(() => {\n this.vc.setQuery(this.query);\n }, SEARCH_DEBOUNCE_MS);\n }\n // NB: typing never uncommits the value in strict single mode — a stray\n // keystroke (even a trailing space) must not deselect the committed\n // option. The input resyncs to the committed label when the popup closes\n // (see handleMenuClose), matching the MUI model.\n }\n\n private handleFieldInput = (e: CustomEvent<string>) => {\n this.applyTyped(e.detail ?? '');\n };\n\n /** Printable keys (and Backspace) pressed while focus is on an option:\n * an editable combobox keeps TYPING in the input — refocus it and extend\n * the query instead of letting md-menu's typeahead swallow the key. */\n private handleListboxKeyDown = (e: KeyboardEvent) => {\n if (e.ctrlKey || e.metaKey || e.altKey) return;\n const isPrintable = e.key.length === 1;\n if (!isPrintable && e.key !== 'Backspace') return;\n e.preventDefault();\n e.stopPropagation();\n this.fieldEl?.focus?.();\n this.applyTyped(\n e.key === 'Backspace' ? this.inputValue.slice(0, -1) : this.inputValue + e.key,\n );\n };\n\n /** First visible, enabled option row in this shadow root (plain or virtual). */\n private firstOptionItem(): HTMLElement | null {\n return (\n (this.el.shadowRoot?.querySelector(\n '.md-autocomplete__listbox md-menu-item:not([disabled])',\n ) as HTMLElement | null) ?? null\n );\n }\n\n private handleFieldKeyDown = (e: KeyboardEvent) => {\n if (this.disabled || this.softDisabled) return;\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!this.open) {\n // APG: ArrowDown on a closed combobox opens the popup AND moves\n // focus to the first option (deferred until the list renders).\n this.pendingListFocus = 'first';\n this.open = true;\n } else {\n // Focus-moves-into-popup combobox variant: the option takes real\n // focus (announced by AT); md-menu's roving model handles the rest.\n this.firstOptionItem()?.focus();\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (!this.open) {\n this.pendingListFocus = 'last';\n this.open = true;\n } else {\n const all = this.el.shadowRoot?.querySelectorAll(\n '.md-autocomplete__listbox md-menu-item:not([disabled])',\n );\n (all?.[all.length - 1] as HTMLElement | undefined)?.focus();\n }\n break;\n case 'Enter':\n if (this.freeSolo && this.commitFreeSolo()) {\n e.preventDefault();\n if (!this.multiple) this.open = false;\n }\n break;\n case 'Escape':\n if (this.open) {\n e.preventDefault();\n this.open = false;\n }\n break;\n case 'Backspace':\n if (this.multiple && !this.inputValue && this.selectedArray.length > 0) {\n this.commitValue(this.selectedArray.slice(0, -1));\n }\n break;\n }\n };\n\n private handleFieldFocus = () => {\n this.focused = true;\n };\n\n private handleFieldBlur = () => {\n this.focused = false;\n // Not while the popup is open — ArrowDown moves focus into the listbox,\n // and resetting the input there would wipe the active filter mid-browse.\n if (this.open) return;\n if (this.clearOnBlur && !this.multiple && !this.freeSolo) {\n const committed = typeof this.value === 'string' ? this.labelMap.get(this.value) : '';\n if (this.inputValue && this.inputValue !== committed) {\n this.inputValue = committed ?? '';\n this.mdInput.emit(this.inputValue);\n }\n }\n };\n\n // ── Render ───────────────────────────────────────────────\n\n /** A single removable value token (shared by the below + inline layouts). */\n private renderChipItem = (val: string) => (\n <md-chip\n key={val}\n part=\"chip\"\n exportparts=\"remove:chip-remove,label:chip-label\"\n variant=\"input\"\n // A display token of a selected value (role=group, not a nested\n // interactive button host) — only its ✕ removes it.\n selectable={false}\n label={this.labelMap.get(val) ?? val}\n disabled={this.disabled || this.softDisabled}\n removable={!this.disabled && !this.softDisabled}\n onMdRemove={this.removeChip(val)}\n onClick={(e: MouseEvent) => e.stopPropagation()}\n ></md-chip>\n );\n\n private get inlineChips(): boolean {\n return this.multiple && this.chipPosition === 'inline';\n }\n\n /** Chips BELOW the field (default layout). */\n private renderChips() {\n if (!this.multiple || this.inlineChips) return null;\n const selected = this.selectedArray;\n if (selected.length === 0) return null;\n return (\n <div\n class=\"md-autocomplete__chips\"\n part=\"chips\"\n role=\"group\"\n aria-label={this.label ? `${this.label} — selected` : 'Selected'}\n >\n {selected.map(this.renderChipItem)}\n </div>\n );\n }\n\n /** Chips INSIDE the field (md-text-field `chips` slot), wrapping onto new\n * rows — the field grows with them (`chips-wrap`). */\n private renderInlineChips() {\n if (!this.inlineChips) return null;\n const selected = this.selectedArray;\n if (selected.length === 0) return null;\n return (\n <div\n slot=\"chips\"\n class=\"md-autocomplete__inline-chips\"\n part=\"chips\"\n role=\"group\"\n aria-label={this.label ? `${this.label} — selected` : 'Selected'}\n >\n {selected.map(this.renderChipItem)}\n </div>\n );\n }\n\n private renderClearButton(forceHidden = false) {\n if (!this.clearable) return null;\n const hasValue = this.multiple\n ? this.selectedArray.length > 0\n : !!this.inputValue || !!this.value;\n // Always rendered (visibility-hidden when empty or busy): the button\n // popping in and out would change the field's intrinsic width, making the\n // trigger jump by its 30px whenever text appears in a shrink-to-fit layout.\n const hidden = forceHidden || !hasValue;\n return (\n <md-icon-button\n class={{\n 'md-autocomplete__clear': true,\n 'md-autocomplete__clear--hidden': hidden,\n }}\n slot=\"trailing-icon\"\n part=\"clear\"\n variant=\"standard\"\n size=\"xs\"\n icon={this.clearIcon}\n aria-label=\"Clear value\"\n aria-hidden={hidden ? 'true' : undefined}\n onClick={(e: MouseEvent) => {\n e.stopPropagation();\n this.handleClear();\n }}\n ></md-icon-button>\n );\n }\n\n private renderTrigger() {\n return (\n <md-text-field\n ref={(el) => (this.fieldEl = el as HTMLElement)}\n id={this.triggerId}\n class=\"md-autocomplete__field\"\n part=\"field\"\n variant={this.variant}\n label={this.label}\n placeholder={this.placeholder}\n value={this.inputValue}\n disabled={this.disabled}\n error={this.error}\n errorText={this.errorText}\n reserveSupportingSpace={this.reserveSupportingSpace}\n supportingText={this.supportingText}\n required={this.required}\n density={this.density}\n appearFocused={this.open || this.focused}\n // Mirrored by md-text-field onto the focused input (global ARIA attr,\n // valid on textbox) — the input truthfully announces its listbox popup.\n aria-haspopup=\"listbox\"\n // Promote the real textbox to a combobox: the role, the expanded state\n // and the typing relationship all have to sit on the element AT reads.\n // The listbox reference is wired separately (syncComboboxRefs) because\n // it has to cross md-text-field's shadow boundary.\n inputRole=\"combobox\"\n inputExpanded={this.open}\n inputAriaAutocomplete=\"list\"\n chipsWrap={this.inlineChips}\n onMdInput={this.handleFieldInput}\n onClick={() => {\n if (!this.disabled && !this.softDisabled && !this.open) this.open = true;\n }}\n onKeyDown={this.handleFieldKeyDown}\n onFocus={this.handleFieldFocus}\n onBlur={this.handleFieldBlur}\n >\n {this.renderInlineChips()}\n {this.busy ? (\n // Busy state (consumer `loading` OR a dataset packing into WASM): a\n // spinner replaces the CARET only; the (hidden) clear button keeps\n // its reserved slot so the trailing cluster — and therefore the\n // field width — is identical across idle/typing/busy/loaded.\n [\n this.renderClearButton(true),\n <span slot=\"trailing-icon\" class=\"md-autocomplete__loader\" part=\"loading-spinner\">\n <slot name=\"loader\">\n <LazyLoadingIndicator label={this.loadingText}></LazyLoadingIndicator>\n </slot>\n </span>,\n ]\n ) : (\n [\n this.renderClearButton(),\n <span\n slot=\"trailing-icon\"\n class=\"md-autocomplete__caret material-symbols-outlined\"\n part=\"caret\"\n aria-hidden=\"true\"\n onClick={(e: MouseEvent) => {\n e.stopPropagation();\n if (!this.disabled && !this.softDisabled) this.open = !this.open;\n }}\n >\n {/* Static glyph + CSS rotation on open — same caret as the selects\n (a glyph swap would double-flip with the rotate rule). */}\n <slot name=\"dropdown-icon\">{this.dropdownIcon}</slot>\n </span>,\n ]\n )}\n </md-text-field>\n );\n }\n\n private renderOptionIcon(icon?: string, iconColor?: string) {\n if (!icon) return null;\n return (\n <span\n slot=\"leading-icon\"\n part=\"option-icon\"\n class=\"material-symbols-outlined md-autocomplete__option-icon\"\n style={iconColor ? { color: iconColor } : undefined}\n aria-hidden=\"true\"\n >\n {icon}\n </span>\n );\n }\n\n private renderVirtualOptions() {\n return (\n <div\n class=\"md-autocomplete__listbox\"\n role=\"listbox\"\n id={`${this.triggerId}-listbox`}\n aria-label={this.label || 'Options'}\n aria-multiselectable={this.multiple ? 'true' : undefined}\n onKeyDown={this.handleListboxKeyDown}\n >\n <div\n class=\"md-autocomplete__vspacer\"\n style={{ height: `${this.vc.topPad}px` }}\n aria-hidden=\"true\"\n ></div>\n {this.vc.windowRows.map((row, i) => {\n const filteredIndex = this.vc.windowStart + i;\n const selected = this.isSelected(row.value);\n return (\n <md-menu-item\n key={row.index}\n id={`${this.triggerId}-opt-${filteredIndex}`}\n data-vindex={filteredIndex}\n presentation=\"option\"\n type={this.multiple ? 'checkbox' : 'radio'}\n check-position=\"start\"\n keep-open\n part={selected ? 'option option-selected' : 'option'}\n disabled={row.disabled}\n selected={selected}\n headline={row.label}\n supporting-text={row.supportingText || ''}\n aria-setsize={this.vc.filteredLength}\n aria-posinset={filteredIndex + 1}\n onMdClick={(e: CustomEvent) => this.pick(row.value, row.label, row.disabled, e)}\n >\n {this.renderOptionIcon(row.icon || undefined)}\n </md-menu-item>\n );\n })}\n <div\n class=\"md-autocomplete__vspacer\"\n style={{ height: `${this.vc.bottomPad}px` }}\n aria-hidden=\"true\"\n ></div>\n </div>\n );\n }\n\n private renderMenu() {\n const virtual = this.vc.active;\n const filtered = virtual ? [] : this.filteredOptions;\n const datasetEmpty = virtual ? false : this.optionsData.length === 0;\n const emptyText = this.busy\n ? ''\n : virtual\n ? this.vc.filteredLength === 0\n ? this.noResultsText\n : ''\n : datasetEmpty\n ? this.noOptionsText\n : filtered.length === 0\n ? this.noResultsText\n : '';\n const menuMaxHeight = virtual ? (this.maxHeight ?? 320) : this.maxHeight;\n\n return (\n <md-menu\n ref={(el) => (this.menuEl = el as VirtualMenuEl)}\n anchor={this.triggerId}\n placement={this.placement}\n match-anchor-width={this.matchTriggerWidth}\n max-height={menuMaxHeight}\n persistent={this.disableCloseOnSelect}\n empty-text={emptyText}\n auto-focus={false}\n listbox\n list-label={this.label || 'Options'}\n part=\"menu\"\n onMdOpen={this.handleMenuOpen}\n onMdClose={this.handleMenuClose}\n >\n {this.busy ? (\n <div class=\"md-autocomplete__loading\" part=\"loading\" role=\"status\" aria-label={this.loadingText}>\n <md-progress-indicator\n variant=\"linear\"\n indeterminate\n wave\n part=\"loading-progress\"\n label={this.loadingText}\n ></md-progress-indicator>\n </div>\n ) : virtual ? (\n this.renderVirtualOptions()\n ) : (\n <div\n class=\"md-autocomplete__listbox\"\n role=\"listbox\"\n id={`${this.triggerId}-listbox`}\n aria-label={this.label || 'Options'}\n aria-multiselectable={this.multiple ? 'true' : undefined}\n onKeyDown={this.handleListboxKeyDown}\n >\n {filtered.map((opt, i) => (\n <md-menu-item\n key={opt.value}\n id={`${this.triggerId}-opt-${i}`}\n presentation=\"option\"\n type={this.multiple ? 'checkbox' : 'radio'}\n check-position=\"start\"\n keep-open\n part={this.isSelected(opt.value) ? 'option option-selected' : 'option'}\n disabled={opt.disabled}\n selected={this.isSelected(opt.value)}\n headline={opt.label}\n supporting-text={opt.supportingText || ''}\n onMdClick={(e: CustomEvent) => this.pick(opt.value, opt.label, opt.disabled, e)}\n >\n {this.renderOptionIcon(opt.icon, opt.iconColor)}\n </md-menu-item>\n ))}\n </div>\n )}\n </md-menu>\n );\n }\n\n render() {\n const chipsFirst =\n this.multiple && (this.chipPosition === 'top' || this.chipPosition === 'left');\n const optionCount = this.vc.active ? this.vc.filteredLength : this.filteredOptions.length;\n const srStatus = this.busy\n ? this.loadingText\n : this.open\n ? this.statusTemplate.replace('{count}', String(optionCount))\n : '';\n return (\n <Host\n class={{\n 'md-autocomplete': true,\n [`md-autocomplete--${this.variant}`]: true,\n 'md-autocomplete--open': this.open,\n 'md-autocomplete--disabled': this.disabled,\n 'md-autocomplete--soft-disabled': this.softDisabled,\n 'md-autocomplete--multiple': this.multiple,\n 'md-autocomplete--loading': this.busy,\n [`md-autocomplete--chips-${this.chipPosition}`]: this.multiple,\n }}\n aria-haspopup=\"listbox\"\n aria-busy={this.busy ? 'true' : 'false'}\n >\n {chipsFirst && this.renderChips()}\n {this.renderTrigger()}\n {!chipsFirst && this.renderChips()}\n {this.renderMenu()}\n {/* Polite live status: the visible option count — which no ARIA\n attribute conveys — plus the busy text. The expanded state itself\n rides on the real textbox (`input-expanded` → aria-expanded, legal\n there because the input carries role=\"combobox\"; see renderTrigger). */}\n <span class=\"md-autocomplete__sr-status\" role=\"status\" aria-live=\"polite\">\n {srStatus}\n </span>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as s,h as t,H as o,g as a}from"./p-WmvQpZnM.js";const d=()=>`:host{--_size:var(--md-status-dot-size, max(6px, calc(12px + var(--md-sys-density-scale, 0) * 1.5px)));--_color:var(--md-status-dot-color, var(--md-sys-color-on-surface-variant, #49454F));--_pulse-color:var(--md-status-dot-pulse-color, transparent);--_outline-color:var(--md-status-dot-outline-color, var(--md-sys-color-surface, #FEF7FF));--_outline-width:var(--md-status-dot-outline-width, max(1px, calc(2px + var(--md-sys-density-scale, 0) * 0.25px)));position:absolute;inset-inline-end:var(--md-status-dot-inset-end, -2px);inset-block-end:var(--md-status-dot-inset-block-end, -2px);inline-size:var(--_size);block-size:var(--_size);border-radius:50%;background-color:var(--_color);box-sizing:border-box;pointer-events:none;user-select:none;z-index:1;outline:var(--_outline-width) solid var(--_outline-color);outline-offset:0;transition:background-color var(--md-sys-motion-duration-short2, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), outline-color var(--md-sys-motion-duration-short2, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-status-dot--small){--_size:var(--md-status-dot-size, max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px)));--_outline-width:var(--md-status-dot-outline-width, max(1px, calc(1.5px + var(--md-sys-density-scale, 0) * 0.125px)))}:host(.md-status-dot--medium){--_size:var(--md-status-dot-size, max(6px, calc(12px + var(--md-sys-density-scale, 0) * 1.5px)))}:host(.md-status-dot--large){--_size:var(--md-status-dot-size, max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px)));--_outline-width:var(--md-status-dot-outline-width, max(1.5px, calc(3px + var(--md-sys-density-scale, 0) * 0.375px)));inset-inline-end:var(--md-status-dot-inset-end, -3px);inset-block-end:var(--md-status-dot-inset-block-end, -3px)}:host(.md-status-dot--online){--_color:var(--md-status-dot-color, #2DC653);--_pulse-color:var(--md-status-dot-pulse-color, rgba(45, 198, 83, 0.55))}:host(.md-status-dot--away){--_color:var(--md-status-dot-color, #F4B400);--_pulse-color:var(--md-status-dot-pulse-color, rgba(244, 180, 0, 0.55))}:host(.md-status-dot--busy){--_color:var(--md-status-dot-color, #DB4437);--_pulse-color:var(--md-status-dot-pulse-color, rgba(219, 68, 55, 0.55))}:host(.md-status-dot--offline){--_color:var(--md-status-dot-color, var(--md-sys-color-outline, #79747E))}:host(.md-status-dot--invisible){--_color:var(--md-status-dot-color, var(--md-sys-color-surface, #FEF7FF));box-shadow:inset 0 0 0 2px var(--md-sys-color-outline, #79747E)}@keyframes md-status-dot-pulse{0%{box-shadow:0 0 0 0 var(--_pulse-color)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}@media (prefers-reduced-motion: no-preference){:host(.md-status-dot--live){animation:md-status-dot-pulse var(--md-status-dot-pulse-duration, 1.6s) ease-out infinite}}@media (forced-colors: active){:host{forced-color-adjust:none;background-color:Mark;outline-color:ButtonFace}:host(.md-status-dot--invisible){background-color:ButtonFace;box-shadow:inset 0 0 0 2px ButtonText}}: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 e=class{constructor(t){s(this,t);this.state="neutral";this.size="medium";this.live=false;this.label="";this.density=0}render(){const s=!!this.label.trim();const a=s?this.live?"status":"img":"presentation";return t(o,{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as s,h as t,H as o,g as a}from"./p-WmvQpZnM.js";const d=()=>`:host{--_size:var(--md-status-dot-size, max(6px, calc(12px + var(--md-sys-density-scale, 0) * 1.5px)));--_color:var(--md-status-dot-color, var(--md-sys-color-on-surface-variant, #49454F));--_pulse-color:var(--md-status-dot-pulse-color, transparent);--_outline-color:var(--md-status-dot-outline-color, var(--md-sys-color-surface, #FEF7FF));--_outline-width:var(--md-status-dot-outline-width, max(1px, calc(2px + var(--md-sys-density-scale, 0) * 0.25px)));position:absolute;inset-inline-end:var(--md-status-dot-inset-end, -2px);inset-block-end:var(--md-status-dot-inset-block-end, -2px);inline-size:var(--_size);block-size:var(--_size);border-radius:50%;background-color:var(--_color);box-sizing:border-box;pointer-events:none;user-select:none;z-index:1;outline:var(--_outline-width) solid var(--_outline-color);outline-offset:0;transition:background-color var(--md-sys-motion-duration-short2, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), outline-color var(--md-sys-motion-duration-short2, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-status-dot--small){--_size:var(--md-status-dot-size, max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px)));--_outline-width:var(--md-status-dot-outline-width, max(1px, calc(1.5px + var(--md-sys-density-scale, 0) * 0.125px)))}:host(.md-status-dot--medium){--_size:var(--md-status-dot-size, max(6px, calc(12px + var(--md-sys-density-scale, 0) * 1.5px)))}:host(.md-status-dot--large){--_size:var(--md-status-dot-size, max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px)));--_outline-width:var(--md-status-dot-outline-width, max(1.5px, calc(3px + var(--md-sys-density-scale, 0) * 0.375px)));inset-inline-end:var(--md-status-dot-inset-end, -3px);inset-block-end:var(--md-status-dot-inset-block-end, -3px)}:host(.md-status-dot--online){--_color:var(--md-status-dot-color, #2DC653);--_pulse-color:var(--md-status-dot-pulse-color, rgba(45, 198, 83, 0.55))}:host(.md-status-dot--away){--_color:var(--md-status-dot-color, #F4B400);--_pulse-color:var(--md-status-dot-pulse-color, rgba(244, 180, 0, 0.55))}:host(.md-status-dot--busy){--_color:var(--md-status-dot-color, #DB4437);--_pulse-color:var(--md-status-dot-pulse-color, rgba(219, 68, 55, 0.55))}:host(.md-status-dot--offline){--_color:var(--md-status-dot-color, var(--md-sys-color-outline, #79747E))}:host(.md-status-dot--invisible){--_color:var(--md-status-dot-color, var(--md-sys-color-surface, #FEF7FF));box-shadow:inset 0 0 0 2px var(--md-sys-color-outline, #79747E)}@keyframes md-status-dot-pulse{0%{box-shadow:0 0 0 0 var(--_pulse-color)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}@media (prefers-reduced-motion: no-preference){:host(.md-status-dot--live){animation:md-status-dot-pulse var(--md-status-dot-pulse-duration, 1.6s) ease-out infinite}}@media (forced-colors: active){:host{forced-color-adjust:none;background-color:Mark;outline-color:ButtonFace}:host(.md-status-dot--invisible){background-color:ButtonFace;box-shadow:inset 0 0 0 2px ButtonText}}: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 e=class{constructor(t){s(this,t);this.state="neutral";this.size="medium";this.live=false;this.label="";this.density=0}render(){const s=!!this.label.trim();const a=s?this.live?"status":"img":"presentation";return t(o,{key:"0f92384de5ace257aaeb5745ecd2937a1f876faa",class:{"md-status-dot":true,[`md-status-dot--${this.state}`]:true,[`md-status-dot--${this.size}`]:true,"md-status-dot--live":this.live,"md-status-dot--labelled":s},role:a,"aria-label":s?this.label:null,"aria-hidden":s?null:"true"})}get el(){return a(this)}};e.style=d();export{e as md_status_dot};
|
|
2
|
+
//# sourceMappingURL=p-80379565.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":[],"mappings":"","ignoreList":[]}
|