@awc-ui/core 1.0.0-beta.2 → 1.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/dist/cjs/app-globals-V2Kpy_OQ.js +8 -0
- package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
- package/dist/cjs/engine.wasm-9JtXME10.js +12 -0
- package/dist/cjs/engine.wasm-9JtXME10.js.map +1 -0
- package/dist/cjs/{index-DlQ_5_Mv.js → index-Bm07YAg9.js} +4 -15
- package/dist/cjs/index-Bm07YAg9.js.map +1 -0
- package/dist/cjs/loader.cjs.js +3 -2
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/md-accordion-item.cjs.entry.js +1 -1
- package/dist/cjs/md-accordion.cjs.entry.js +1 -1
- package/dist/cjs/md-app-bar.cjs.entry.js +1 -1
- package/dist/cjs/md-area-chart.cjs.entry.js +1 -1
- package/dist/cjs/md-autocomplete.cjs.entry.js +2 -2
- package/dist/cjs/md-avatar_2.cjs.entry.js +1 -1
- package/dist/cjs/md-badge.cjs.entry.js +1 -1
- package/dist/cjs/md-bar-chart.cjs.entry.js +1 -1
- package/dist/cjs/md-bottom-sheet.cjs.entry.js +1 -1
- package/dist/cjs/md-breadcrumb-item.cjs.entry.js +1 -1
- package/dist/cjs/md-breadcrumbs.cjs.entry.js +1 -1
- package/dist/cjs/md-button-group.cjs.entry.js +1 -1
- package/dist/cjs/md-button_7.cjs.entry.js +1 -1
- package/dist/cjs/md-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/md-chip.cjs.entry.js +1 -1
- package/dist/cjs/md-color-picker.cjs.entry.js +1 -1
- package/dist/cjs/md-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/md-dialog.cjs.entry.js +1 -1
- package/dist/cjs/md-divider.cjs.entry.js +1 -1
- package/dist/cjs/md-fab-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/md-fab-menu.cjs.entry.js +1 -1
- package/dist/cjs/md-fab.cjs.entry.js +1 -1
- package/dist/cjs/md-line-chart.cjs.entry.js +1 -1
- package/dist/cjs/md-list-item.cjs.entry.js +1 -1
- package/dist/cjs/md-list.cjs.entry.js +1 -1
- package/dist/cjs/md-menu-item-group.cjs.entry.js +1 -1
- package/dist/cjs/md-menu_2.cjs.entry.js +1 -1
- package/dist/cjs/md-meter.cjs.entry.js +1 -1
- package/dist/cjs/md-multi-select.cjs.entry.js +2 -2
- package/dist/cjs/md-navigation-bar.cjs.entry.js +1 -1
- package/dist/cjs/md-navigation-rail-tab.cjs.entry.js +1 -1
- package/dist/cjs/md-navigation-rail.cjs.entry.js +1 -1
- package/dist/cjs/md-navigation-tab.cjs.entry.js +1 -1
- package/dist/cjs/md-number-field.cjs.entry.js +1 -1
- package/dist/cjs/md-organization-chart.cjs.entry.js +1 -1
- package/dist/cjs/md-otp-field.cjs.entry.js +1 -1
- package/dist/cjs/md-pie-chart.cjs.entry.js +1 -1
- package/dist/cjs/md-progress-indicator.cjs.entry.js +1 -1
- package/dist/cjs/md-rating.cjs.entry.js +1 -1
- package/dist/cjs/md-search.cjs.entry.js +1 -1
- package/dist/cjs/md-segmented-button-set.cjs.entry.js +1 -1
- package/dist/cjs/md-segmented-button.cjs.entry.js +1 -1
- package/dist/cjs/md-select-option.cjs.entry.js +1 -1
- package/dist/cjs/md-select.cjs.entry.js +2 -2
- package/dist/cjs/md-side-sheet.cjs.entry.js +1 -1
- package/dist/cjs/md-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/md-slider.cjs.entry.js +1 -1
- package/dist/cjs/md-sparkline.cjs.entry.js +1 -1
- package/dist/cjs/md-split-button.cjs.entry.js +1 -1
- package/dist/cjs/md-status-dot.cjs.entry.js +1 -1
- package/dist/cjs/md-step.cjs.entry.js +1 -1
- package/dist/cjs/md-stepper.cjs.entry.js +1 -1
- package/dist/cjs/md-sub-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/md-switch.cjs.entry.js +1 -1
- package/dist/cjs/md-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/md-tab-panels.cjs.entry.js +1 -1
- package/dist/cjs/md-tab.cjs.entry.js +1 -1
- package/dist/cjs/md-table-body.cjs.entry.js +1 -1
- package/dist/cjs/md-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/md-table-container.cjs.entry.js +1 -1
- package/dist/cjs/md-table-expand-toggle.cjs.entry.js +1 -1
- package/dist/cjs/md-table-foot.cjs.entry.js +1 -1
- package/dist/cjs/md-table-head.cjs.entry.js +1 -1
- package/dist/cjs/md-table-pagination.cjs.entry.js +1 -1
- package/dist/cjs/md-table-row.cjs.entry.js +1 -1
- package/dist/cjs/md-table-sort-label.cjs.entry.js +1 -1
- package/dist/cjs/md-table-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/md-table.cjs.entry.js +1 -1
- package/dist/cjs/md-tabs.cjs.entry.js +1 -1
- package/dist/cjs/md-text-field.cjs.entry.js +1 -1
- package/dist/cjs/md-time-picker.cjs.entry.js +1 -1
- package/dist/cjs/md-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/md-transfer-list.cjs.entry.js +1 -1
- package/dist/cjs/md3.cjs.js +3 -2
- package/dist/cjs/md3.cjs.js.map +1 -1
- package/dist/cjs/{virtual-select-controller-CqriaZgm.js → virtual-select-controller-C5cSoKfB.js} +10 -9
- package/dist/cjs/virtual-select-controller-C5cSoKfB.js.map +1 -0
- package/dist/collection/wasm/engine-abi.js +8 -2
- package/dist/collection/wasm/engine-abi.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/md-accordion-item.js +1 -1
- package/dist/components/md-accordion.js +1 -1
- package/dist/components/md-app-bar.js +1 -1
- package/dist/components/md-area-chart.js +1 -1
- package/dist/components/md-area-chart.js.map +1 -1
- package/dist/components/md-autocomplete.js +1 -1
- package/dist/components/md-avatar.js +1 -1
- package/dist/components/md-badge.js +1 -1
- package/dist/components/md-bar-chart.js +1 -1
- package/dist/components/md-bottom-sheet.js +1 -1
- package/dist/components/md-breadcrumb-item.js +1 -1
- package/dist/components/md-breadcrumbs.js +1 -1
- package/dist/components/md-button-group.js +1 -1
- package/dist/components/md-button.js +1 -1
- package/dist/components/md-card.js +1 -1
- package/dist/components/md-checkbox.js +1 -1
- package/dist/components/md-chip.js +1 -1
- package/dist/components/md-color-picker.js +1 -1
- package/dist/components/md-date-picker.js +1 -1
- package/dist/components/md-dialog.js +1 -1
- package/dist/components/md-divider.js +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-list-item.js +1 -1
- package/dist/components/md-list.js +1 -1
- package/dist/components/md-loading-indicator.js +1 -1
- package/dist/components/md-menu-item-group.js +1 -1
- package/dist/components/md-menu-item.js +1 -1
- package/dist/components/md-menu.js +1 -1
- package/dist/components/md-meter.js +1 -1
- package/dist/components/md-multi-select.js +1 -1
- package/dist/components/md-navigation-bar.js +1 -1
- package/dist/components/md-navigation-rail-tab.js +1 -1
- package/dist/components/md-navigation-rail.js +1 -1
- package/dist/components/md-navigation-tab.js +1 -1
- package/dist/components/md-number-field.js +1 -1
- package/dist/components/md-organization-chart.js +1 -1
- package/dist/components/md-otp-field.js +1 -1
- package/dist/components/md-pie-chart.js +1 -1
- package/dist/components/md-progress-indicator.js +1 -1
- package/dist/components/md-radio.js +1 -1
- package/dist/components/md-rating.js +1 -1
- package/dist/components/md-ripple.js +1 -1
- package/dist/components/md-search.js +1 -1
- package/dist/components/md-segmented-button-set.js +1 -1
- package/dist/components/md-segmented-button.js +1 -1
- package/dist/components/md-select-option.js +1 -1
- package/dist/components/md-select.js +1 -1
- package/dist/components/md-side-sheet.js +1 -1
- package/dist/components/md-skeleton.js +1 -1
- package/dist/components/md-slider.js +1 -1
- package/dist/components/md-snackbar.js +1 -1
- package/dist/components/md-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-stepper.js +1 -1
- package/dist/components/md-sub-menu-item.js +1 -1
- package/dist/components/md-switch.js +1 -1
- package/dist/components/md-tab-panel.js +1 -1
- package/dist/components/md-tab-panels.js +1 -1
- package/dist/components/md-tab.js +1 -1
- package/dist/components/md-table-body.js +1 -1
- package/dist/components/md-table-cell.js +1 -1
- package/dist/components/md-table-container.js +1 -1
- package/dist/components/md-table-expand-toggle.js +1 -1
- package/dist/components/md-table-foot.js +1 -1
- package/dist/components/md-table-head.js +1 -1
- package/dist/components/md-table-pagination.js +1 -1
- package/dist/components/md-table-row.js +1 -1
- package/dist/components/md-table-sort-label.js +1 -1
- package/dist/components/md-table-toolbar.js +1 -1
- package/dist/components/md-table.js +1 -1
- package/dist/components/md-tabs.js +1 -1
- package/dist/components/md-text-field.js +1 -1
- package/dist/components/md-time-picker.js +1 -1
- package/dist/components/md-toolbar.js +1 -1
- package/dist/components/md-tooltip.js +1 -1
- package/dist/components/md-transfer-list.js +1 -1
- package/dist/components/p-B-JfuA2g.js +2 -0
- package/dist/components/p-B-JfuA2g.js.map +1 -0
- package/dist/components/p-B-iHDK5h.js +2 -0
- package/dist/components/p-B-iHDK5h.js.map +1 -0
- package/dist/components/p-BA2v4IuG.js +2 -0
- package/dist/components/p-BA2v4IuG.js.map +1 -0
- package/dist/components/p-BADA63mI.js +2 -0
- package/dist/components/p-BADA63mI.js.map +1 -0
- package/dist/components/p-BR6gfOQH.js +2 -0
- package/dist/components/p-BR6gfOQH.js.map +1 -0
- package/dist/components/p-Bz-JaJcA.js +2 -0
- package/dist/components/p-Bz-JaJcA.js.map +1 -0
- package/dist/components/p-CCMritCA.js +2 -0
- package/dist/components/p-CCMritCA.js.map +1 -0
- package/dist/components/p-CTC8XAB6.js +2 -0
- package/dist/components/p-CTC8XAB6.js.map +1 -0
- package/dist/components/p-CfBPnYW7.js +2 -0
- package/dist/components/p-CfBPnYW7.js.map +1 -0
- package/dist/components/p-CtVItLby.js +2 -0
- package/dist/components/p-CtVItLby.js.map +1 -0
- package/dist/components/p-D8oM1Kr3.js +2 -0
- package/dist/components/p-D8oM1Kr3.js.map +1 -0
- package/dist/components/{p-Ddiw2Kjw.js → p-DEzb9xsY.js} +2 -2
- package/dist/components/p-DEzb9xsY.js.map +1 -0
- package/dist/components/p-DYL-8C5C.js +2 -0
- package/dist/components/p-DYL-8C5C.js.map +1 -0
- package/dist/components/p-DfU4xY2F.js +2 -0
- package/dist/components/p-DfU4xY2F.js.map +1 -0
- package/dist/components/p-Eb44PPZa.js +2 -0
- package/dist/components/p-Eb44PPZa.js.map +1 -0
- package/dist/components/{p-UdGDg2oJ.js → p-Lsoo1B-2.js} +2 -2
- package/dist/components/p-Lsoo1B-2.js.map +1 -0
- package/dist/components/p-tSoecrcz.js +2 -0
- package/dist/components/p-tSoecrcz.js.map +1 -0
- package/dist/components-csr/index.js +2 -0
- package/dist/components-csr/index.js.map +1 -0
- package/dist/components-csr/md-accordion-item.js +2 -0
- package/dist/components-csr/md-accordion-item.js.map +1 -0
- package/dist/components-csr/md-accordion.js +2 -0
- package/dist/components-csr/md-accordion.js.map +1 -0
- package/dist/components-csr/md-app-bar.js +2 -0
- package/dist/components-csr/md-app-bar.js.map +1 -0
- package/dist/components-csr/md-area-chart.js +2 -0
- package/dist/components-csr/md-area-chart.js.map +1 -0
- package/dist/components-csr/md-autocomplete.js +2 -0
- package/dist/components-csr/md-autocomplete.js.map +1 -0
- package/dist/components-csr/md-avatar.js +2 -0
- package/dist/components-csr/md-avatar.js.map +1 -0
- package/dist/components-csr/md-badge.js +2 -0
- package/dist/components-csr/md-badge.js.map +1 -0
- package/dist/components-csr/md-bar-chart.js +2 -0
- package/dist/components-csr/md-bar-chart.js.map +1 -0
- package/dist/components-csr/md-bottom-sheet.js +2 -0
- package/dist/components-csr/md-bottom-sheet.js.map +1 -0
- package/dist/components-csr/md-breadcrumb-item.js +2 -0
- package/dist/components-csr/md-breadcrumb-item.js.map +1 -0
- package/dist/components-csr/md-breadcrumbs.js +2 -0
- package/dist/components-csr/md-breadcrumbs.js.map +1 -0
- package/dist/components-csr/md-button-group.js +2 -0
- package/dist/components-csr/md-button-group.js.map +1 -0
- package/dist/components-csr/md-button.js +2 -0
- package/dist/components-csr/md-button.js.map +1 -0
- package/dist/components-csr/md-card.js +2 -0
- package/dist/components-csr/md-card.js.map +1 -0
- package/dist/components-csr/md-checkbox.js +2 -0
- package/dist/components-csr/md-checkbox.js.map +1 -0
- package/dist/components-csr/md-chip.js +2 -0
- package/dist/components-csr/md-chip.js.map +1 -0
- package/dist/components-csr/md-color-picker.js +2 -0
- package/dist/components-csr/md-color-picker.js.map +1 -0
- package/dist/components-csr/md-date-picker.js +2 -0
- package/dist/components-csr/md-date-picker.js.map +1 -0
- package/dist/components-csr/md-dialog.js +2 -0
- package/dist/components-csr/md-dialog.js.map +1 -0
- package/dist/components-csr/md-divider.js +2 -0
- package/dist/components-csr/md-divider.js.map +1 -0
- package/dist/components-csr/md-fab-menu-item.js +2 -0
- package/dist/components-csr/md-fab-menu-item.js.map +1 -0
- package/dist/components-csr/md-fab-menu.js +2 -0
- package/dist/components-csr/md-fab-menu.js.map +1 -0
- package/dist/components-csr/md-fab.js +2 -0
- package/dist/components-csr/md-fab.js.map +1 -0
- package/dist/components-csr/md-icon-button.js +2 -0
- package/dist/components-csr/md-icon-button.js.map +1 -0
- package/dist/components-csr/md-line-chart.js +2 -0
- package/dist/components-csr/md-line-chart.js.map +1 -0
- package/dist/components-csr/md-list-item.js +2 -0
- package/dist/components-csr/md-list-item.js.map +1 -0
- package/dist/components-csr/md-list.js +2 -0
- package/dist/components-csr/md-list.js.map +1 -0
- package/dist/components-csr/md-loading-indicator.js +2 -0
- package/dist/components-csr/md-loading-indicator.js.map +1 -0
- package/dist/components-csr/md-menu-item-group.js +2 -0
- package/dist/components-csr/md-menu-item-group.js.map +1 -0
- package/dist/components-csr/md-menu-item.js +2 -0
- package/dist/components-csr/md-menu-item.js.map +1 -0
- package/dist/components-csr/md-menu.js +2 -0
- package/dist/components-csr/md-menu.js.map +1 -0
- package/dist/components-csr/md-meter.js +2 -0
- package/dist/components-csr/md-meter.js.map +1 -0
- package/dist/components-csr/md-multi-select.js +2 -0
- package/dist/components-csr/md-multi-select.js.map +1 -0
- package/dist/components-csr/md-navigation-bar.js +2 -0
- package/dist/components-csr/md-navigation-bar.js.map +1 -0
- package/dist/components-csr/md-navigation-rail-tab.js +2 -0
- package/dist/components-csr/md-navigation-rail-tab.js.map +1 -0
- package/dist/components-csr/md-navigation-rail.js +2 -0
- package/dist/components-csr/md-navigation-rail.js.map +1 -0
- package/dist/components-csr/md-navigation-tab.js +2 -0
- package/dist/components-csr/md-navigation-tab.js.map +1 -0
- package/dist/components-csr/md-number-field.js +2 -0
- package/dist/components-csr/md-number-field.js.map +1 -0
- package/dist/components-csr/md-organization-chart.js +2 -0
- package/dist/components-csr/md-organization-chart.js.map +1 -0
- package/dist/components-csr/md-otp-field.js +2 -0
- package/dist/components-csr/md-otp-field.js.map +1 -0
- package/dist/components-csr/md-pie-chart.js +2 -0
- package/dist/components-csr/md-pie-chart.js.map +1 -0
- package/dist/components-csr/md-progress-indicator.js +2 -0
- package/dist/components-csr/md-progress-indicator.js.map +1 -0
- package/dist/components-csr/md-radio.js +2 -0
- package/dist/components-csr/md-radio.js.map +1 -0
- package/dist/components-csr/md-rating.js +2 -0
- package/dist/components-csr/md-rating.js.map +1 -0
- package/dist/components-csr/md-ripple.js +2 -0
- package/dist/components-csr/md-ripple.js.map +1 -0
- package/dist/components-csr/md-search.js +2 -0
- package/dist/components-csr/md-search.js.map +1 -0
- package/dist/components-csr/md-segmented-button-set.js +2 -0
- package/dist/components-csr/md-segmented-button-set.js.map +1 -0
- package/dist/components-csr/md-segmented-button.js +2 -0
- package/dist/components-csr/md-segmented-button.js.map +1 -0
- package/dist/components-csr/md-select-option.js +2 -0
- package/dist/components-csr/md-select-option.js.map +1 -0
- package/dist/components-csr/md-select.js +2 -0
- package/dist/components-csr/md-select.js.map +1 -0
- package/dist/components-csr/md-side-sheet.js +2 -0
- package/dist/components-csr/md-side-sheet.js.map +1 -0
- package/dist/components-csr/md-skeleton.js +2 -0
- package/dist/components-csr/md-skeleton.js.map +1 -0
- package/dist/components-csr/md-slider.js +2 -0
- package/dist/components-csr/md-slider.js.map +1 -0
- package/dist/components-csr/md-snackbar.js +2 -0
- package/dist/components-csr/md-snackbar.js.map +1 -0
- package/dist/components-csr/md-sparkline.js +2 -0
- package/dist/components-csr/md-sparkline.js.map +1 -0
- package/dist/components-csr/md-split-button.js +2 -0
- package/dist/components-csr/md-split-button.js.map +1 -0
- package/dist/components-csr/md-status-dot.js +2 -0
- package/dist/components-csr/md-status-dot.js.map +1 -0
- package/dist/components-csr/md-step.js +2 -0
- package/dist/components-csr/md-step.js.map +1 -0
- package/dist/components-csr/md-stepper.js +2 -0
- package/dist/components-csr/md-stepper.js.map +1 -0
- package/dist/components-csr/md-sub-menu-item.js +2 -0
- package/dist/components-csr/md-sub-menu-item.js.map +1 -0
- package/dist/components-csr/md-switch.js +2 -0
- package/dist/components-csr/md-switch.js.map +1 -0
- package/dist/components-csr/md-tab-panel.js +2 -0
- package/dist/components-csr/md-tab-panel.js.map +1 -0
- package/dist/components-csr/md-tab-panels.js +2 -0
- package/dist/components-csr/md-tab-panels.js.map +1 -0
- package/dist/components-csr/md-tab.js +2 -0
- package/dist/components-csr/md-tab.js.map +1 -0
- package/dist/components-csr/md-table-body.js +2 -0
- package/dist/components-csr/md-table-body.js.map +1 -0
- package/dist/components-csr/md-table-cell.js +2 -0
- package/dist/components-csr/md-table-cell.js.map +1 -0
- package/dist/components-csr/md-table-container.js +2 -0
- package/dist/components-csr/md-table-container.js.map +1 -0
- package/dist/components-csr/md-table-expand-toggle.js +2 -0
- package/dist/components-csr/md-table-expand-toggle.js.map +1 -0
- package/dist/components-csr/md-table-foot.js +2 -0
- package/dist/components-csr/md-table-foot.js.map +1 -0
- package/dist/components-csr/md-table-head.js +2 -0
- package/dist/components-csr/md-table-head.js.map +1 -0
- package/dist/components-csr/md-table-pagination.js +2 -0
- package/dist/components-csr/md-table-pagination.js.map +1 -0
- package/dist/components-csr/md-table-row.js +2 -0
- package/dist/components-csr/md-table-row.js.map +1 -0
- package/dist/components-csr/md-table-sort-label.js +2 -0
- package/dist/components-csr/md-table-sort-label.js.map +1 -0
- package/dist/components-csr/md-table-toolbar.js +2 -0
- package/dist/components-csr/md-table-toolbar.js.map +1 -0
- package/dist/components-csr/md-table.js +2 -0
- package/dist/components-csr/md-table.js.map +1 -0
- package/dist/components-csr/md-tabs.js +2 -0
- package/dist/components-csr/md-tabs.js.map +1 -0
- package/dist/components-csr/md-text-field.js +2 -0
- package/dist/components-csr/md-text-field.js.map +1 -0
- package/dist/components-csr/md-time-picker.js +2 -0
- package/dist/components-csr/md-time-picker.js.map +1 -0
- package/dist/components-csr/md-toolbar.js +2 -0
- package/dist/components-csr/md-toolbar.js.map +1 -0
- package/dist/components-csr/md-tooltip.js +2 -0
- package/dist/components-csr/md-tooltip.js.map +1 -0
- package/dist/components-csr/md-transfer-list.js +2 -0
- package/dist/components-csr/md-transfer-list.js.map +1 -0
- package/dist/{components/p-DXXUoRSH.js → components-csr/p--OUYjgKN.js} +2 -2
- package/dist/{components/p-Dp-w93ot.js → components-csr/p--TCJgZnE.js} +2 -2
- package/dist/components-csr/p-BdEoSBtL.js +2 -0
- package/dist/components-csr/p-BdEoSBtL.js.map +1 -0
- package/dist/components-csr/p-Bmu7RqHM.js +2 -0
- package/dist/components-csr/p-Bx6--dQF.js +2 -0
- package/dist/components-csr/p-Bx6--dQF.js.map +1 -0
- package/dist/components-csr/p-Bz-JaJcA.js +2 -0
- package/dist/components-csr/p-Bz-JaJcA.js.map +1 -0
- package/dist/{components/p-uTEkf0sE.js → components-csr/p-C0DlKmRg.js} +2 -2
- package/dist/{components/p-Ch2-tttM.js → components-csr/p-C4_7YnHT.js} +2 -2
- package/dist/{components/p-BwXpiUsu.js → components-csr/p-CG6FaRlt.js} +2 -2
- package/dist/{components/p-B0Opn6dK.js → components-csr/p-CSrxeWwL.js} +2 -2
- package/dist/components-csr/p-C_ogF68H.js +2 -0
- package/dist/components-csr/p-C_ogF68H.js.map +1 -0
- package/dist/components-csr/p-Cch_V1vi.js +2 -0
- package/dist/components-csr/p-Cch_V1vi.js.map +1 -0
- package/dist/components-csr/p-CfBPnYW7.js +2 -0
- package/dist/components-csr/p-CfBPnYW7.js.map +1 -0
- package/dist/{components/p-B3MWYEEJ.js → components-csr/p-CrbzXk64.js} +2 -2
- package/dist/components-csr/p-CxhZdOPw.js +2 -0
- package/dist/components-csr/p-CxhZdOPw.js.map +1 -0
- package/dist/{components/p-7fN_yCXW.js → components-csr/p-DF19mmLl.js} +2 -2
- package/dist/components-csr/p-DWxN44zD.js +2 -0
- package/dist/components-csr/p-DWxN44zD.js.map +1 -0
- package/dist/components-csr/p-DYBUr7K_.js +2 -0
- package/dist/components-csr/p-DYBUr7K_.js.map +1 -0
- package/dist/{components/p-e2HRV63Y.js → components-csr/p-DfcpeJAu.js} +2 -2
- package/dist/components-csr/p-DvOKnoqK.js +2 -0
- package/dist/components-csr/p-DvOKnoqK.js.map +1 -0
- package/dist/{components/p-C8EP4S21.js → components-csr/p-DvXQXhgu.js} +2 -2
- package/dist/components-csr/p-DzPKu-Ma.js +2 -0
- package/dist/components-csr/p-DzPKu-Ma.js.map +1 -0
- package/dist/{components/p-stybaFzj.js → components-csr/p-Hm3X1iai.js} +2 -2
- package/dist/{components/p-6wZSqm_2.js → components-csr/p-IWA0yIjJ.js} +2 -2
- package/dist/components-csr/p-RLxbNqRv.js +2 -0
- package/dist/components-csr/p-RLxbNqRv.js.map +1 -0
- package/dist/components-csr/p-bSpXNc5J.js +2 -0
- package/dist/components-csr/p-bSpXNc5J.js.map +1 -0
- package/dist/components-csr/p-uZbtHo-A.js +2 -0
- package/dist/components-csr/package.json +3 -0
- package/dist/esm/app-globals-DQuL1Twl.js +6 -0
- package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
- package/dist/esm/engine.wasm-CfBPnYW7.js +10 -0
- package/dist/esm/engine.wasm-CfBPnYW7.js.map +1 -0
- package/dist/esm/{index-DTaX19_O.js → index-WmvQpZnM.js} +5 -15
- package/dist/esm/index-WmvQpZnM.js.map +1 -0
- package/dist/esm/loader.js +3 -2
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/md-accordion-item.entry.js +1 -1
- package/dist/esm/md-accordion.entry.js +1 -1
- package/dist/esm/md-app-bar.entry.js +1 -1
- package/dist/esm/md-area-chart.entry.js +1 -1
- package/dist/esm/md-autocomplete.entry.js +2 -2
- package/dist/esm/md-avatar_2.entry.js +1 -1
- package/dist/esm/md-badge.entry.js +1 -1
- package/dist/esm/md-bar-chart.entry.js +1 -1
- package/dist/esm/md-bottom-sheet.entry.js +1 -1
- package/dist/esm/md-breadcrumb-item.entry.js +1 -1
- package/dist/esm/md-breadcrumbs.entry.js +1 -1
- package/dist/esm/md-button-group.entry.js +1 -1
- package/dist/esm/md-button_7.entry.js +1 -1
- package/dist/esm/md-checkbox.entry.js +1 -1
- package/dist/esm/md-chip.entry.js +1 -1
- package/dist/esm/md-color-picker.entry.js +1 -1
- package/dist/esm/md-date-picker.entry.js +1 -1
- package/dist/esm/md-dialog.entry.js +1 -1
- package/dist/esm/md-divider.entry.js +1 -1
- package/dist/esm/md-fab-menu-item.entry.js +1 -1
- package/dist/esm/md-fab-menu.entry.js +1 -1
- package/dist/esm/md-fab.entry.js +1 -1
- package/dist/esm/md-line-chart.entry.js +1 -1
- package/dist/esm/md-list-item.entry.js +1 -1
- package/dist/esm/md-list.entry.js +1 -1
- package/dist/esm/md-menu-item-group.entry.js +1 -1
- package/dist/esm/md-menu_2.entry.js +1 -1
- package/dist/esm/md-meter.entry.js +1 -1
- package/dist/esm/md-multi-select.entry.js +2 -2
- 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-rail.entry.js +1 -1
- package/dist/esm/md-navigation-tab.entry.js +1 -1
- package/dist/esm/md-number-field.entry.js +1 -1
- package/dist/esm/md-organization-chart.entry.js +1 -1
- package/dist/esm/md-otp-field.entry.js +1 -1
- package/dist/esm/md-pie-chart.entry.js +1 -1
- package/dist/esm/md-progress-indicator.entry.js +1 -1
- package/dist/esm/md-rating.entry.js +1 -1
- package/dist/esm/md-search.entry.js +1 -1
- package/dist/esm/md-segmented-button-set.entry.js +1 -1
- package/dist/esm/md-segmented-button.entry.js +1 -1
- package/dist/esm/md-select-option.entry.js +1 -1
- package/dist/esm/md-select.entry.js +2 -2
- package/dist/esm/md-side-sheet.entry.js +1 -1
- package/dist/esm/md-skeleton.entry.js +1 -1
- package/dist/esm/md-slider.entry.js +1 -1
- package/dist/esm/md-sparkline.entry.js +1 -1
- package/dist/esm/md-split-button.entry.js +1 -1
- package/dist/esm/md-status-dot.entry.js +1 -1
- package/dist/esm/md-step.entry.js +1 -1
- package/dist/esm/md-stepper.entry.js +1 -1
- package/dist/esm/md-sub-menu-item.entry.js +1 -1
- package/dist/esm/md-switch.entry.js +1 -1
- package/dist/esm/md-tab-panel.entry.js +1 -1
- package/dist/esm/md-tab-panels.entry.js +1 -1
- package/dist/esm/md-tab.entry.js +1 -1
- package/dist/esm/md-table-body.entry.js +1 -1
- package/dist/esm/md-table-cell.entry.js +1 -1
- package/dist/esm/md-table-container.entry.js +1 -1
- package/dist/esm/md-table-expand-toggle.entry.js +1 -1
- package/dist/esm/md-table-foot.entry.js +1 -1
- package/dist/esm/md-table-head.entry.js +1 -1
- package/dist/esm/md-table-pagination.entry.js +1 -1
- package/dist/esm/md-table-row.entry.js +1 -1
- package/dist/esm/md-table-sort-label.entry.js +1 -1
- package/dist/esm/md-table-toolbar.entry.js +1 -1
- package/dist/esm/md-table.entry.js +1 -1
- package/dist/esm/md-tabs.entry.js +1 -1
- package/dist/esm/md-text-field.entry.js +1 -1
- package/dist/esm/md-time-picker.entry.js +1 -1
- package/dist/esm/md-toolbar.entry.js +1 -1
- package/dist/esm/md-transfer-list.entry.js +1 -1
- package/dist/esm/md3.js +3 -2
- package/dist/esm/md3.js.map +1 -1
- package/dist/esm/{virtual-select-controller-BEWIC0pC.js → virtual-select-controller-CR60w6DO.js} +10 -9
- package/dist/esm/virtual-select-controller-CR60w6DO.js.map +1 -0
- package/dist/md3/md3.css +1 -1
- package/dist/md3/md3.esm.js +1 -1
- package/dist/md3/md3.esm.js.map +1 -1
- package/dist/md3/{p-2e9503d7.entry.js → p-0a599351.entry.js} +2 -2
- package/dist/md3/p-1d7e0203.entry.js +2 -0
- package/dist/md3/{p-fb61868c.entry.js.map → p-1d7e0203.entry.js.map} +1 -1
- package/dist/md3/p-1e85b8a8.entry.js +2 -0
- package/dist/md3/{p-aaec2698.entry.js.map → p-1e85b8a8.entry.js.map} +1 -1
- package/dist/md3/{p-396089fd.entry.js → p-1edb5a0d.entry.js} +2 -2
- package/dist/md3/{p-c00f7514.entry.js → p-21c89d1d.entry.js} +2 -2
- package/dist/md3/p-22633b2d.entry.js +2 -0
- package/dist/md3/{p-6b2871a0.entry.js.map → p-22633b2d.entry.js.map} +1 -1
- package/dist/md3/{p-2e09a7b7.entry.js → p-27135a6b.entry.js} +2 -2
- package/dist/md3/{p-c063c823.entry.js → p-2befc42c.entry.js} +2 -2
- package/dist/md3/p-2dda08b2.entry.js +2 -0
- package/dist/md3/{p-21772851.entry.js.map → p-2dda08b2.entry.js.map} +1 -1
- package/dist/md3/p-3508d0e0.entry.js +2 -0
- package/dist/md3/{p-f31ab454.entry.js.map → p-3508d0e0.entry.js.map} +1 -1
- package/dist/md3/{p-b34d385b.entry.js → p-35b05b45.entry.js} +2 -2
- package/dist/md3/{p-c2dd8c8c.entry.js → p-38e9a583.entry.js} +2 -2
- package/dist/md3/{p-3cce1de3.entry.js → p-38f82d34.entry.js} +2 -2
- package/dist/md3/p-3a4bd4eb.entry.js +2 -0
- package/dist/md3/{p-72457a85.entry.js.map → p-3a4bd4eb.entry.js.map} +1 -1
- package/dist/md3/{p-be02624e.entry.js → p-3c0469aa.entry.js} +2 -2
- package/dist/md3/{p-63b8c8d1.entry.js → p-408ee4be.entry.js} +2 -2
- package/dist/md3/{p-3015c7e3.entry.js → p-4770b534.entry.js} +2 -2
- package/dist/md3/p-4aed552f.entry.js +2 -0
- package/dist/md3/{p-6c44cf13.entry.js.map → p-4aed552f.entry.js.map} +1 -1
- package/dist/md3/{p-c5af701b.entry.js → p-4ba3623e.entry.js} +2 -2
- package/dist/md3/{p-7b463fbe.entry.js → p-4f2e82cb.entry.js} +2 -2
- package/dist/md3/{p-be412e3f.entry.js → p-501bf161.entry.js} +2 -2
- package/dist/md3/{p-81843ff7.entry.js → p-5929e59c.entry.js} +2 -2
- package/dist/md3/{p-32bdd439.entry.js → p-5c35f916.entry.js} +2 -2
- package/dist/md3/{p-ac35ac5f.entry.js → p-5db87a9d.entry.js} +2 -2
- package/dist/md3/{p-6038b907.entry.js → p-5f39b49d.entry.js} +2 -2
- package/dist/md3/p-637baee1.entry.js +2 -0
- package/dist/md3/{p-47af9819.entry.js.map → p-637baee1.entry.js.map} +1 -1
- package/dist/md3/{p-05ae91b6.entry.js → p-6bf632c7.entry.js} +2 -2
- package/dist/md3/{p-4e3d6e40.entry.js → p-6ea7117d.entry.js} +2 -2
- package/dist/md3/{p-9ddbf247.entry.js → p-7112374d.entry.js} +2 -2
- package/dist/md3/{p-1a8ec5bc.entry.js → p-7858833e.entry.js} +2 -2
- package/dist/md3/p-7c8842bf.entry.js +2 -0
- package/dist/md3/{p-ba2ebde1.entry.js.map → p-7c8842bf.entry.js.map} +1 -1
- package/dist/md3/{p-4d82132d.entry.js → p-7f53a423.entry.js} +2 -2
- package/dist/md3/{p-b0431a5c.entry.js → p-8135c606.entry.js} +2 -2
- package/dist/md3/{p-4dda4cb0.entry.js → p-845ca9cc.entry.js} +2 -2
- package/dist/md3/{p-5b74694e.entry.js → p-89d47130.entry.js} +2 -2
- package/dist/md3/p-8a6fed13.entry.js +2 -0
- package/dist/md3/{p-a803da99.entry.js.map → p-8a6fed13.entry.js.map} +1 -1
- package/dist/md3/{p-e3124e1e.entry.js → p-8b1ea5dc.entry.js} +2 -2
- package/dist/md3/{p-c10a33c2.entry.js → p-8e7df348.entry.js} +2 -2
- package/dist/md3/{p-65195996.entry.js → p-925768ac.entry.js} +2 -2
- package/dist/md3/p-944e69e0.entry.js +2 -0
- package/dist/md3/{p-a3308c40.entry.js.map → p-944e69e0.entry.js.map} +1 -1
- package/dist/md3/{p-ac8762e5.entry.js → p-96c06b24.entry.js} +2 -2
- package/dist/md3/p-9b9677cc.entry.js +2 -0
- package/dist/md3/{p-e7dc5a32.entry.js.map → p-9b9677cc.entry.js.map} +1 -1
- package/dist/md3/p-Bz-JaJcA.js +2 -0
- package/dist/md3/p-Bz-JaJcA.js.map +1 -0
- package/dist/md3/p-CfBPnYW7.js +2 -0
- package/dist/md3/p-CfBPnYW7.js.map +1 -0
- package/dist/md3/p-DQuL1Twl.js +2 -0
- package/dist/md3/p-DQuL1Twl.js.map +1 -0
- package/dist/md3/p-WmvQpZnM.js +3 -0
- package/dist/md3/p-WmvQpZnM.js.map +1 -0
- package/dist/md3/p-a3623653.entry.js +2 -0
- package/dist/md3/{p-19ee9c33.entry.js.map → p-a3623653.entry.js.map} +1 -1
- package/dist/md3/{p-a5fee424.entry.js → p-a49df43d.entry.js} +2 -2
- package/dist/md3/{p-da4e27d4.entry.js → p-a4d4cfed.entry.js} +2 -2
- package/dist/md3/{p-5394254f.entry.js → p-a976498b.entry.js} +2 -2
- package/dist/md3/{p-bf7842f8.entry.js → p-adf8a415.entry.js} +2 -2
- package/dist/md3/{p-c861d774.entry.js → p-ae360663.entry.js} +2 -2
- package/dist/md3/{p-8eb0b6a4.entry.js → p-b243284b.entry.js} +2 -2
- package/dist/md3/{p-45280bf4.entry.js → p-b2d88292.entry.js} +2 -2
- package/dist/md3/{p-796f79f8.entry.js → p-b3b5247b.entry.js} +2 -2
- package/dist/md3/{p-5b799707.entry.js → p-b4266f6b.entry.js} +2 -2
- package/dist/md3/p-b5586b66.entry.js +2 -0
- package/dist/md3/{p-04e97f5d.entry.js.map → p-b5586b66.entry.js.map} +1 -1
- package/dist/md3/{p-a7ffb779.entry.js → p-b7602557.entry.js} +2 -2
- package/dist/md3/{p-6ba63c73.entry.js → p-bc24f0c9.entry.js} +2 -2
- package/dist/md3/{p-edb34a6d.entry.js → p-bed8dfec.entry.js} +2 -2
- package/dist/md3/{p-50555bb7.entry.js → p-c0476406.entry.js} +2 -2
- package/dist/md3/{p-0c2e824d.entry.js → p-c20fbb9e.entry.js} +2 -2
- package/dist/md3/{p-4e45b2ff.entry.js → p-c58c68d0.entry.js} +2 -2
- package/dist/md3/{p-fc0b325d.entry.js → p-cdcea99f.entry.js} +2 -2
- package/dist/md3/{p-0f764a1e.entry.js → p-d2e39c6e.entry.js} +2 -2
- package/dist/md3/p-d7e99f9e.entry.js +2 -0
- package/dist/md3/{p-cf07e761.entry.js.map → p-d7e99f9e.entry.js.map} +1 -1
- package/dist/md3/{p-c1ca6f6c.entry.js → p-da0c36d9.entry.js} +2 -2
- package/dist/md3/{p-77a01bcc.entry.js → p-e3c37222.entry.js} +2 -2
- package/dist/md3/{p-39cb7c24.entry.js → p-e6b09e71.entry.js} +2 -2
- package/dist/md3/{p-b4631a55.entry.js → p-eddae19a.entry.js} +2 -2
- package/dist/md3/{p-c6a12344.entry.js → p-ef7b1826.entry.js} +2 -2
- package/dist/md3/p-f1b69181.entry.js +2 -0
- package/dist/md3/{p-a986fd24.entry.js.map → p-f1b69181.entry.js.map} +1 -1
- package/dist/md3/{p-e6d7f0ff.entry.js → p-f403ad20.entry.js} +2 -2
- package/dist/md3/{p-708a9313.entry.js → p-f5fd9a0b.entry.js} +2 -2
- package/dist/md3/{p-aa0e7d4d.entry.js → p-f71af38f.entry.js} +2 -2
- package/dist/md3/{p-757e3aaf.entry.js → p-fac6da4c.entry.js} +2 -2
- package/dist/md3/{p-134b670a.entry.js → p-fc864f96.entry.js} +2 -2
- package/dist/types/wasm/engine-abi.d.ts +14 -0
- package/hydrate/index.js +19 -7
- package/hydrate/index.mjs +19 -7
- package/package.json +14 -3
- package/dist/cjs/index-DlQ_5_Mv.js.map +0 -1
- package/dist/cjs/virtual-select-controller-CqriaZgm.js.map +0 -1
- package/dist/components/p-BEWIC0pC.js +0 -2
- package/dist/components/p-BEWIC0pC.js.map +0 -1
- package/dist/components/p-MWBNn6Lj.js +0 -2
- package/dist/components/p-MWBNn6Lj.js.map +0 -1
- package/dist/esm/index-DTaX19_O.js.map +0 -1
- package/dist/esm/virtual-select-controller-BEWIC0pC.js.map +0 -1
- package/dist/md3/p-04e97f5d.entry.js +0 -2
- package/dist/md3/p-19ee9c33.entry.js +0 -2
- package/dist/md3/p-21772851.entry.js +0 -2
- package/dist/md3/p-47af9819.entry.js +0 -2
- package/dist/md3/p-6b2871a0.entry.js +0 -2
- package/dist/md3/p-6c44cf13.entry.js +0 -2
- package/dist/md3/p-72457a85.entry.js +0 -2
- package/dist/md3/p-BEWIC0pC.js +0 -2
- package/dist/md3/p-BEWIC0pC.js.map +0 -1
- package/dist/md3/p-DTaX19_O.js +0 -3
- package/dist/md3/p-DTaX19_O.js.map +0 -1
- package/dist/md3/p-a3308c40.entry.js +0 -2
- package/dist/md3/p-a803da99.entry.js +0 -2
- package/dist/md3/p-a986fd24.entry.js +0 -2
- package/dist/md3/p-aaec2698.entry.js +0 -2
- package/dist/md3/p-ba2ebde1.entry.js +0 -2
- package/dist/md3/p-cf07e761.entry.js +0 -2
- package/dist/md3/p-e7dc5a32.entry.js +0 -2
- package/dist/md3/p-f31ab454.entry.js +0 -2
- package/dist/md3/p-fb61868c.entry.js +0 -2
- /package/dist/{components/p-DXXUoRSH.js.map → components-csr/p--OUYjgKN.js.map} +0 -0
- /package/dist/{components/p-Dp-w93ot.js.map → components-csr/p--TCJgZnE.js.map} +0 -0
- /package/dist/{components/p-UdGDg2oJ.js.map → components-csr/p-Bmu7RqHM.js.map} +0 -0
- /package/dist/{components/p-uTEkf0sE.js.map → components-csr/p-C0DlKmRg.js.map} +0 -0
- /package/dist/{components/p-Ch2-tttM.js.map → components-csr/p-C4_7YnHT.js.map} +0 -0
- /package/dist/{components/p-BwXpiUsu.js.map → components-csr/p-CG6FaRlt.js.map} +0 -0
- /package/dist/{components/p-B0Opn6dK.js.map → components-csr/p-CSrxeWwL.js.map} +0 -0
- /package/dist/{components/p-B3MWYEEJ.js.map → components-csr/p-CrbzXk64.js.map} +0 -0
- /package/dist/{components/p-7fN_yCXW.js.map → components-csr/p-DF19mmLl.js.map} +0 -0
- /package/dist/{components/p-e2HRV63Y.js.map → components-csr/p-DfcpeJAu.js.map} +0 -0
- /package/dist/{components/p-C8EP4S21.js.map → components-csr/p-DvXQXhgu.js.map} +0 -0
- /package/dist/{components/p-stybaFzj.js.map → components-csr/p-Hm3X1iai.js.map} +0 -0
- /package/dist/{components/p-6wZSqm_2.js.map → components-csr/p-IWA0yIjJ.js.map} +0 -0
- /package/dist/{components/p-Ddiw2Kjw.js.map → components-csr/p-uZbtHo-A.js.map} +0 -0
- /package/dist/md3/{p-2e9503d7.entry.js.map → p-0a599351.entry.js.map} +0 -0
- /package/dist/md3/{p-396089fd.entry.js.map → p-1edb5a0d.entry.js.map} +0 -0
- /package/dist/md3/{p-c00f7514.entry.js.map → p-21c89d1d.entry.js.map} +0 -0
- /package/dist/md3/{p-2e09a7b7.entry.js.map → p-27135a6b.entry.js.map} +0 -0
- /package/dist/md3/{p-c063c823.entry.js.map → p-2befc42c.entry.js.map} +0 -0
- /package/dist/md3/{p-b34d385b.entry.js.map → p-35b05b45.entry.js.map} +0 -0
- /package/dist/md3/{p-c2dd8c8c.entry.js.map → p-38e9a583.entry.js.map} +0 -0
- /package/dist/md3/{p-3cce1de3.entry.js.map → p-38f82d34.entry.js.map} +0 -0
- /package/dist/md3/{p-be02624e.entry.js.map → p-3c0469aa.entry.js.map} +0 -0
- /package/dist/md3/{p-63b8c8d1.entry.js.map → p-408ee4be.entry.js.map} +0 -0
- /package/dist/md3/{p-3015c7e3.entry.js.map → p-4770b534.entry.js.map} +0 -0
- /package/dist/md3/{p-c5af701b.entry.js.map → p-4ba3623e.entry.js.map} +0 -0
- /package/dist/md3/{p-7b463fbe.entry.js.map → p-4f2e82cb.entry.js.map} +0 -0
- /package/dist/md3/{p-be412e3f.entry.js.map → p-501bf161.entry.js.map} +0 -0
- /package/dist/md3/{p-81843ff7.entry.js.map → p-5929e59c.entry.js.map} +0 -0
- /package/dist/md3/{p-32bdd439.entry.js.map → p-5c35f916.entry.js.map} +0 -0
- /package/dist/md3/{p-ac35ac5f.entry.js.map → p-5db87a9d.entry.js.map} +0 -0
- /package/dist/md3/{p-6038b907.entry.js.map → p-5f39b49d.entry.js.map} +0 -0
- /package/dist/md3/{p-05ae91b6.entry.js.map → p-6bf632c7.entry.js.map} +0 -0
- /package/dist/md3/{p-4e3d6e40.entry.js.map → p-6ea7117d.entry.js.map} +0 -0
- /package/dist/md3/{p-9ddbf247.entry.js.map → p-7112374d.entry.js.map} +0 -0
- /package/dist/md3/{p-1a8ec5bc.entry.js.map → p-7858833e.entry.js.map} +0 -0
- /package/dist/md3/{p-4d82132d.entry.js.map → p-7f53a423.entry.js.map} +0 -0
- /package/dist/md3/{p-b0431a5c.entry.js.map → p-8135c606.entry.js.map} +0 -0
- /package/dist/md3/{p-4dda4cb0.entry.js.map → p-845ca9cc.entry.js.map} +0 -0
- /package/dist/md3/{p-5b74694e.entry.js.map → p-89d47130.entry.js.map} +0 -0
- /package/dist/md3/{p-e3124e1e.entry.js.map → p-8b1ea5dc.entry.js.map} +0 -0
- /package/dist/md3/{p-c10a33c2.entry.js.map → p-8e7df348.entry.js.map} +0 -0
- /package/dist/md3/{p-65195996.entry.js.map → p-925768ac.entry.js.map} +0 -0
- /package/dist/md3/{p-ac8762e5.entry.js.map → p-96c06b24.entry.js.map} +0 -0
- /package/dist/md3/{p-a5fee424.entry.js.map → p-a49df43d.entry.js.map} +0 -0
- /package/dist/md3/{p-da4e27d4.entry.js.map → p-a4d4cfed.entry.js.map} +0 -0
- /package/dist/md3/{p-5394254f.entry.js.map → p-a976498b.entry.js.map} +0 -0
- /package/dist/md3/{p-bf7842f8.entry.js.map → p-adf8a415.entry.js.map} +0 -0
- /package/dist/md3/{p-c861d774.entry.js.map → p-ae360663.entry.js.map} +0 -0
- /package/dist/md3/{p-8eb0b6a4.entry.js.map → p-b243284b.entry.js.map} +0 -0
- /package/dist/md3/{p-45280bf4.entry.js.map → p-b2d88292.entry.js.map} +0 -0
- /package/dist/md3/{p-796f79f8.entry.js.map → p-b3b5247b.entry.js.map} +0 -0
- /package/dist/md3/{p-5b799707.entry.js.map → p-b4266f6b.entry.js.map} +0 -0
- /package/dist/md3/{p-a7ffb779.entry.js.map → p-b7602557.entry.js.map} +0 -0
- /package/dist/md3/{p-6ba63c73.entry.js.map → p-bc24f0c9.entry.js.map} +0 -0
- /package/dist/md3/{p-edb34a6d.entry.js.map → p-bed8dfec.entry.js.map} +0 -0
- /package/dist/md3/{p-50555bb7.entry.js.map → p-c0476406.entry.js.map} +0 -0
- /package/dist/md3/{p-0c2e824d.entry.js.map → p-c20fbb9e.entry.js.map} +0 -0
- /package/dist/md3/{p-4e45b2ff.entry.js.map → p-c58c68d0.entry.js.map} +0 -0
- /package/dist/md3/{p-fc0b325d.entry.js.map → p-cdcea99f.entry.js.map} +0 -0
- /package/dist/md3/{p-0f764a1e.entry.js.map → p-d2e39c6e.entry.js.map} +0 -0
- /package/dist/md3/{p-c1ca6f6c.entry.js.map → p-da0c36d9.entry.js.map} +0 -0
- /package/dist/md3/{p-77a01bcc.entry.js.map → p-e3c37222.entry.js.map} +0 -0
- /package/dist/md3/{p-39cb7c24.entry.js.map → p-e6b09e71.entry.js.map} +0 -0
- /package/dist/md3/{p-b4631a55.entry.js.map → p-eddae19a.entry.js.map} +0 -0
- /package/dist/md3/{p-c6a12344.entry.js.map → p-ef7b1826.entry.js.map} +0 -0
- /package/dist/md3/{p-e6d7f0ff.entry.js.map → p-f403ad20.entry.js.map} +0 -0
- /package/dist/md3/{p-708a9313.entry.js.map → p-f5fd9a0b.entry.js.map} +0 -0
- /package/dist/md3/{p-aa0e7d4d.entry.js.map → p-f71af38f.entry.js.map} +0 -0
- /package/dist/md3/{p-757e3aaf.entry.js.map → p-fac6da4c.entry.js.map} +0 -0
- /package/dist/md3/{p-134b670a.entry.js.map → p-fc864f96.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdSwitchCss","MdSwitch","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","valueMissingLabel","customValidityMessage","selected","disabled","softDisabled","required","name","value","icons","showOnlySelectedIcon","selectedIcon","unselectedIcon","density","pressed","programmaticFocus","initialSelected","lastValidityKey","toggle","isDisabled","proposed","inputEvent","mdInput","emit","defaultPrevented","mdChange","handleKeyDown","e","key","preventDefault","repeat","setTimeout","handlePointerDown","handlePointerUp","handleBlur","componentWillLoad","syncFormValue","onValueChange","formResetCallback","setFocus","el","focus","setFormValue","internals","syncValidity","setValidityState","missing","missingMessage","customMessage","emitValidityChange","getValidity","getValidityOf","v","valid","validationMessage","primed","mdValidityChange","checkValidity","checkValidityOf","reportValidity","reportValidityOf","setCustomValidity","message","render","showSelectedIcon","showUnselectedIcon","showIcon","h","Host","role","String","tabindex","class","onClick","onKeyDown","onPointerDown","onPointerUp","onPointerLeave","onPointerCancel","onBlur","part"],"sources":["src/components/md-switch/md-switch.css?tag=md-switch&encapsulation=shadow","src/components/md-switch/md-switch.tsx"],"sourcesContent":["/* ==========================================================\n md-switch — Material Design 3 Switch\n Spec: https://m3.material.io/components/switch/specs\n\n MD3-Expressive motion: the thumb morphs (16→24→28dp) and slides on a\n SPATIAL spring, colors cross-fade on an EFFECTS spring. All sizing derives\n from the track tokens via calc(), so resizing the track keeps the thumb\n aligned (no hand-tuned offsets).\n\n PUBLIC CSS CUSTOM PROPERTIES (override per-instance):\n --md-switch-track-width Track width (52px)\n --md-switch-track-height Track height (32px) — density knob\n --md-switch-handle-size Selected handle diameter (derived\n from track height; unselected +\n pressed scale from it)\n --md-switch-track-color Unselected track fill\n --md-switch-track-outline-color Unselected track outline\n --md-switch-handle-color Unselected handle fill\n --md-switch-selected-track-color Selected track fill\n --md-switch-selected-handle-color Selected handle fill\n --md-switch-icon-color Unselected icon color\n --md-switch-selected-icon-color Selected icon color\n --md-switch-state-layer-color Hover / focus / press overlay\n --md-switch-focus-ring-color Focus-ring color\n\n CSS PARTS:\n track Track container\n state-layer State-layer overlay (centered on handle)\n handle Handle / thumb\n icon Check or close icon\n\n SLOTS:\n (none)\n ========================================================== */\n\n/* ==========================================================\n 1. HOST — touch target, sizing, motion & base tokens\n ========================================================== */\n\n:host {\n /* ── Sizing (density scales from the track) ── */\n /* Track width shrinks proportionally with density to maintain the ~1.625\n aspect ratio (52:32). Each rung removes 6px width vs 4px height. */\n --_track-w: var(--md-switch-track-width, max(28px, calc(52px + var(--md-sys-density-scale, 0) * 6px)));\n /* Global density knob: the track height drives every derived size (handle,\n state layer, thumb travel). Each `data-density` rung (0…-4) trims 4px,\n floored at 16px; unchanged at density 0. The host min-block-size stays\n max(48px, …) so the touch target is preserved even as the track tightens. */\n --_track-h: max(16px, calc(var(--md-switch-track-height, 32px) + var(--md-sys-density-scale, 0) * 4px));\n --_track-border: 2px;\n /* State-layer / handle-container disc, proportional to the track. */\n --_sl: calc(var(--_track-h) + 8px);\n /* Thumb sizes: selected is the knob; unselected + pressed scale from it. */\n --_handle-sel: var(--md-switch-handle-size, calc(var(--_track-h) * 0.75));\n --_handle-unsel: calc(var(--_handle-sel) * 2 / 3);\n --_handle-press: calc(var(--_handle-sel) * 7 / 6);\n /* Thumb-centre travel, derived so the thumb stays inset by half the track\n height at each end regardless of track size. */\n --_offset-unsel: calc(var(--_track-h) / 2 - var(--_sl) / 2 - var(--_track-border));\n --_offset-sel: calc(var(--_track-w) - var(--_track-h) / 2 - var(--_sl) / 2 - var(--_track-border));\n\n /* ── Motion (M3-Expressive springs) ── */\n --_spring-spatial: var(--md-sys-motion-spring-spatial-fast-duration, 350ms)\n var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.90));\n --_spring-effects: var(--md-sys-motion-spring-effects-fast-duration, 150ms)\n var(--md-sys-motion-spring-effects-fast-easing, cubic-bezier(0.31, 0.94, 0.34, 1.00));\n\n /* ── Unselected color tokens ── */\n --_track-color: var(--md-switch-track-color, var(--md-sys-color-surface-container-highest, #E6E0E9));\n --_track-outline-color: var(--md-switch-track-outline-color, var(--md-sys-color-outline, #79747E));\n --_handle-color: var(--md-switch-handle-color, var(--md-sys-color-outline, #79747E));\n --_state-layer-color: var(--md-switch-state-layer-color, var(--md-sys-color-on-surface, #1C1B1F));\n --_icon-color: var(--md-switch-icon-color, var(--md-sys-color-surface-container-highest, #E6E0E9));\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-block-size: max(48px, var(--_track-h));\n inline-size: var(--_track-w);\n cursor: pointer;\n outline: none;\n -webkit-tap-highlight-color: transparent;\n user-select: none;\n vertical-align: middle;\n flex-shrink: 0;\n}\n\n/* ==========================================================\n 2. SELECTED — color overrides\n ========================================================== */\n\n:host(.md-switch--selected) {\n --_track-color: var(--md-switch-selected-track-color, var(--md-sys-color-primary, #6750A4));\n --_track-outline-color: var(--md-switch-selected-track-color, var(--md-sys-color-primary, #6750A4));\n --_handle-color: var(--md-switch-selected-handle-color, var(--md-sys-color-on-primary, #FFFFFF));\n --_state-layer-color: var(--md-switch-state-layer-color, var(--md-sys-color-primary, #6750A4));\n --_icon-color: var(--md-switch-selected-icon-color, var(--md-sys-color-on-primary-container, #21005D));\n}\n\n/* ==========================================================\n 3. INTERACTIVE STATES — hover / focus / press colors\n Per MD3 spec, handle & track outline colors shift on interaction.\n ========================================================== */\n\n/* ── Unselected ── */\n\n:host(:not(.md-switch--selected):hover:not(.md-switch--disabled)) {\n --_handle-color: var(--md-sys-color-on-surface-variant, #49454F);\n --_track-outline-color: var(--md-sys-color-on-surface, #1C1B1F);\n}\n\n:host(:not(.md-switch--selected):focus-visible:not(.md-switch--disabled)) {\n --_handle-color: var(--md-sys-color-on-surface-variant, #49454F);\n --_track-outline-color: var(--md-sys-color-on-surface, #1C1B1F);\n}\n\n:host(:not(.md-switch--selected).md-switch--pressed:not(.md-switch--disabled)) {\n --_handle-color: var(--md-sys-color-on-surface-variant, #49454F);\n --_track-outline-color: var(--md-sys-color-on-surface, #1C1B1F);\n}\n\n/* ── Selected ── */\n\n:host(.md-switch--selected:hover:not(.md-switch--disabled)) {\n --_handle-color: var(--md-sys-color-primary-container, #EADDFF);\n}\n\n:host(.md-switch--selected:focus-visible:not(.md-switch--disabled)) {\n --_handle-color: var(--md-sys-color-primary-container, #EADDFF);\n}\n\n:host(.md-switch--selected.md-switch--pressed:not(.md-switch--disabled)) {\n --_handle-color: var(--md-sys-color-primary-container, #EADDFF);\n}\n\n/* ==========================================================\n 4. TRACK — colors cross-fade on the effects spring\n ========================================================== */\n\n.md-switch__track {\n position: relative;\n inline-size: var(--_track-w);\n block-size: var(--_track-h);\n border-radius: var(--md-sys-shape-corner-full, 9999px);\n border: var(--_track-border) solid var(--_track-outline-color);\n background-color: var(--_track-color);\n box-sizing: border-box;\n transition:\n background-color var(--_spring-effects),\n border-color var(--_spring-effects);\n}\n\n/* ==========================================================\n 5. HANDLE CONTAINER — state-layer disc, slides on the spatial spring\n via inset-inline-start (auto-mirrors in RTL). Offsets are derived from\n the track tokens (see :host --_offset-*).\n ========================================================== */\n\n.md-switch__handle-container {\n position: absolute;\n inset-block-start: 50%;\n inset-inline-start: var(--_offset-unsel);\n inline-size: var(--_sl);\n block-size: var(--_sl);\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n transition: inset-inline-start var(--_spring-spatial);\n pointer-events: none;\n}\n\n:host(.md-switch--selected) .md-switch__handle-container {\n inset-inline-start: var(--_offset-sel);\n}\n\n/* ==========================================================\n 6. STATE LAYER — fills the handle container, centered on the handle\n ========================================================== */\n\n.md-switch__state-layer {\n position: absolute;\n inset: 0;\n border-radius: var(--md-sys-shape-corner-full, 9999px);\n background-color: var(--_state-layer-color);\n opacity: 0;\n transition: opacity var(--_spring-effects);\n pointer-events: none;\n}\n\n:host(:hover:not(.md-switch--disabled)) .md-switch__state-layer {\n opacity: var(--md-sys-state-hover-state-layer-opacity, 0.08);\n}\n\n:host(:focus-visible:not(.md-switch--disabled)) .md-switch__state-layer {\n opacity: var(--md-sys-state-focus-state-layer-opacity, 0.12);\n}\n\n:host(:active:not(.md-switch--disabled)) .md-switch__state-layer,\n:host(.md-switch--pressed:not(.md-switch--disabled)) .md-switch__state-layer {\n opacity: var(--md-sys-state-pressed-state-layer-opacity, 0.12);\n}\n\n/* ==========================================================\n 7. HANDLE — morphs size per state on the spatial spring\n Unselected (no icon): --_handle-unsel (16dp @ 32 track)\n Unselected (icon) / Selected: --_handle-sel (24dp)\n Pressed: --_handle-press (28dp)\n ========================================================== */\n\n.md-switch__handle {\n position: relative;\n z-index: 1;\n inline-size: var(--_handle-unsel);\n block-size: var(--_handle-unsel);\n border-radius: var(--md-sys-shape-corner-full, 9999px);\n background-color: var(--_handle-color);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition:\n inline-size var(--_spring-spatial),\n block-size var(--_spring-spatial),\n background-color var(--_spring-effects);\n}\n\n:host(.md-switch--selected) .md-switch__handle {\n inline-size: var(--_handle-sel);\n block-size: var(--_handle-sel);\n}\n\n:host(.md-switch--with-icon:not(.md-switch--selected)) .md-switch__handle {\n inline-size: var(--_handle-sel);\n block-size: var(--_handle-sel);\n}\n\n:host(.md-switch--pressed:not(.md-switch--disabled)) .md-switch__handle {\n inline-size: var(--_handle-press);\n block-size: var(--_handle-press);\n}\n\n/* ==========================================================\n 8. ICON — 16px Material Symbols\n ========================================================== */\n\n.md-switch__icon {\n font-size: 16px;\n inline-size: 16px;\n block-size: 16px;\n color: var(--_icon-color);\n pointer-events: none;\n line-height: 1;\n}\n\n/* Custom slotted icons (selected-icon / unselected-icon slots) — default to the\n glyph footprint + ink so a bare <svg>/<md-icon> fits without extra CSS. */\n.md-switch__handle ::slotted(*) {\n inline-size: 16px;\n block-size: 16px;\n font-size: 16px;\n color: var(--_icon-color);\n pointer-events: none;\n}\n\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 9. FOCUS RING\n ========================================================== */\n\n:host(:focus-visible:not([disabled])) .md-switch__track,\n:host(.md-switch--focus-ring:not([disabled])) .md-switch__track {\n outline: 3px solid var(--md-switch-focus-ring-color, var(--md-sys-color-secondary, #625B71));\n outline-offset: 2px;\n}\n\n/* ==========================================================\n 10. DISABLED\n ========================================================== */\n\n:host(.md-switch--disabled) {\n cursor: default;\n pointer-events: none;\n}\n\n:host([soft-disabled]) {\n cursor: default;\n pointer-events: auto;\n}\n\n:host([soft-disabled]) .md-switch__state-layer {\n display: none;\n}\n\n/* Disabled unselected */\n:host(.md-switch--disabled:not(.md-switch--selected)) {\n --_track-color: color-mix(in srgb, var(--md-sys-color-surface-container-highest, #E6E0E9) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);\n --_track-outline-color: color-mix(in srgb, var(--md-sys-color-on-surface, #1C1B1F) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);\n --_handle-color: color-mix(in srgb, var(--md-sys-color-on-surface, #1C1B1F) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent);\n --_icon-color: color-mix(in srgb, var(--md-sys-color-surface-container-highest, #E6E0E9) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent);\n}\n\n/* Disabled selected */\n:host(.md-switch--disabled.md-switch--selected) {\n --_track-color: color-mix(in srgb, var(--md-sys-color-on-surface, #1C1B1F) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);\n --_track-outline-color: color-mix(in srgb, var(--md-sys-color-on-surface, #1C1B1F) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);\n --_handle-color: var(--md-sys-color-surface, #FEF7FF);\n --_icon-color: color-mix(in srgb, var(--md-sys-color-on-surface, #1C1B1F) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent);\n}\n\n:host(.md-switch--disabled) .md-switch__state-layer {\n display: none;\n}\n\n/* ==========================================================\n 11. REDUCED MOTION\n ========================================================== */\n\n@media (prefers-reduced-motion: reduce) {\n .md-switch__handle,\n .md-switch__handle-container,\n .md-switch__track,\n .md-switch__state-layer {\n transition-duration: 0.01ms !important;\n }\n}\n\n/* ==========================================================\n 12. FORCED COLORS (Windows High Contrast)\n ========================================================== */\n\n@media (forced-colors: active) {\n .md-switch__track {\n border-color: CanvasText;\n }\n\n .md-switch__handle {\n background-color: CanvasText;\n }\n\n .md-switch__icon {\n color: Canvas;\n }\n\n :host(.md-switch--selected) .md-switch__track {\n background-color: Highlight;\n border-color: Highlight;\n }\n\n :host(.md-switch--selected) .md-switch__handle {\n background-color: HighlightText;\n }\n\n :host(.md-switch--selected) .md-switch__icon {\n color: Highlight;\n }\n\n :host(:focus-visible:not([disabled])) .md-switch__track,\n :host(.md-switch--focus-ring:not([disabled])) .md-switch__track {\n outline-color: Highlight;\n }\n\n :host(.md-switch--disabled) {\n opacity: 0.5;\n }\n}\n\n/* ==========================================================\n DENSITY (local override)\n Maps the local `density` prop onto the same --md-sys-density-scale signal a\n global `data-density` ancestor sets. Declared on :host, so a local rung wins\n over the inherited global one. Every density-sensitive value in this file\n derives from that single signal by calc — never add a fixed per-rung ladder.\n ========================================================== */\n:host([density='-1']) { --md-sys-density-scale: -1; }\n:host([density='-2']) { --md-sys-density-scale: -2; }\n:host([density='-3']) { --md-sys-density-scale: -3; }\n:host([density='-4']) { --md-sys-density-scale: -4; }\n","import { AttachInternals, Component, Element, Event, EventEmitter, Host, Method, Prop, State, Watch, h } from '@stencil/core';\nimport {\n setFormValue,\n setValidityState,\n checkValidityOf,\n reportValidityOf,\n getValidityOf,\n} from '../../utils/form';\n\n/**\n * `md-switch` — Material Design 3 switch (on/off toggle).\n *\n * Form-associated: inside a `<form>` it submits its `value` under `name` when\n * selected, and restores on form reset. It is a *labelable* element — wrap it in\n * a `<label>` (clicks on the label text toggle it and name it), or pass\n * `aria-label` / `aria-labelledby` on the host.\n *\n * @slot selected-icon - Custom icon shown on the handle when selected (replaces\n * the `selected-icon` glyph). Requires `icons` or\n * `show-only-selected-icon`.\n * @slot unselected-icon - Custom icon shown on the handle when unselected\n * (replaces the `unselected-icon` glyph). Requires `icons`.\n *\n * @part track - Track container\n * @part state-layer - State-layer overlay (centered on handle)\n * @part handle - Handle (thumb)\n * @part icon - Check / close icon\n */\n@Component({\n tag: 'md-switch',\n styleUrl: 'md-switch.css',\n shadow: true,\n formAssociated: true,\n})\nexport class MdSwitch {\n @Element() el!: HTMLElement;\n\n\n /**\n * Localized constraint-validation message shown when `required` is unmet.\n *\n * A prop rather than a hardcoded string, matching md-time-picker's\n * `value-missing-label`: components stay i18n-engine-agnostic and the\n * consumer localizes through its own dictionary. Native inputs get their\n * message from the browser's locale for free; a form-associated custom\n * element supplies its own, so leaving this hardcoded would ship an\n * English-only form to every locale.\n */\n @Prop({ attribute: 'value-missing-label' }) valueMissingLabel: string =\n 'Please turn this on if you want to proceed.';\n\n /** Message set via setCustomValidity(); non-empty wins over valueMissing. */\n private customValidityMessage = '';\n\n /**\n * Form-association handle. The switch submits `value` under the host's `name`\n * via `setFormValue`, so it participates in `<form>` / `FormData` natively\n * (a hidden shadow `<input>` would be invisible to `FormData`).\n */\n @AttachInternals() internals!: ElementInternals;\n\n // ─── Public Props ──────────────────────────────────────────\n\n /** Whether the switch is on (selected) */\n @Prop({ mutable: true, reflect: true }) selected: boolean = false;\n\n /** Prevents interaction and removes from tab order */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Visually disabled but remains focusable for discoverability */\n @Prop({ reflect: true, attribute: 'soft-disabled' }) softDisabled: boolean = false;\n\n /** Mark the control required for form validation / assistive tech. */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Name submitted with the owning `<form>`. */\n @Prop({ reflect: true }) name: string = '';\n\n /** Value submitted when the switch is selected. */\n @Prop() value: string = 'on';\n\n /** Show icons on both selected and unselected states (check / close) */\n @Prop() icons: boolean = false;\n\n /** Show icon only when selected */\n @Prop({ attribute: 'show-only-selected-icon' }) showOnlySelectedIcon: boolean = false;\n\n /** Material Symbols glyph shown on the handle when selected (override the\n * default check). Ignored when the `selected-icon` slot is filled. */\n @Prop({ attribute: 'selected-icon' }) selectedIcon: string = 'check';\n\n /** Material Symbols glyph shown on the handle when unselected (override the\n * default close). Ignored when the `unselected-icon` slot is filled. */\n @Prop({ attribute: 'unselected-icon' }) unselectedIcon: string = 'close';\n\n /**\n * Local density rung. Drives the same `--md-sys-density-scale` signal that a\n * global `data-density` ancestor sets, so a local value simply overrides the\n * inherited one. 0 = default, -4 = ultra-compact.\n */\n @Prop({ reflect: true }) density: 0 | -1 | -2 | -3 | -4 = 0;\n\n // ─── Events ────────────────────────────────────────────────\n\n /**\n * Fires **before** the state changes. Call `event.preventDefault()` to\n * block the internal toggle and manage state externally (controlled mode).\n *\n * ```ts\n * switch.addEventListener('mdInput', (e) => {\n * e.preventDefault(); // prevent internal toggle\n * myState.value = e.detail.selected; // update your own state\n * });\n * ```\n */\n @Event({ cancelable: true }) mdInput: EventEmitter<{ selected: boolean }>;\n\n /**\n * Fires **after** the internal state has committed. Use for side effects\n * like saving preferences, analytics, or syncing with other components.\n * Not cancelable — the toggle has already happened.\n *\n * ```ts\n * switch.addEventListener('mdChange', (e) => {\n * console.log('Switch is now', e.detail.selected ? 'ON' : 'OFF');\n * });\n * ```\n */\n @Event({ cancelable: false }) mdChange: EventEmitter<{ selected: boolean }>;\n\n // ─── Internal State ────────────────────────────────────────\n\n @State() private pressed = false;\n /** Script-initiated focus doesn't trigger :focus-visible — force the ring. */\n @State() private programmaticFocus = false;\n\n private initialSelected = false;\n\n private get isDisabled() {\n return this.disabled || this.softDisabled;\n }\n\n // ─── Lifecycle ─────────────────────────────────────────────\n // Because md-switch is form-associated it is a *labelable* element, so a\n // wrapping <label> both names it and forwards clicks NATIVELY — no manual\n // closest('label') wiring needed (that would double-toggle here, unlike the\n // non-form-associated md-checkbox which must hand-roll it).\n\n componentWillLoad() {\n this.initialSelected = this.selected;\n this.syncFormValue();\n }\n\n @Watch('selected')\n @Watch('value')\n onValueChange() {\n this.syncFormValue();\n }\n\n /** Restore the initial state when the owning form is reset. */\n formResetCallback() {\n this.selected = this.initialSelected;\n }\n\n // ─── Public methods ────────────────────────────────────────\n\n /** Programmatically focus the switch (shows the focus ring). */\n @Method()\n async setFocus() {\n this.programmaticFocus = true;\n this.el.focus();\n }\n\n // ─── Private ───────────────────────────────────────────────\n\n private syncFormValue() {\n setFormValue(this.internals, this.selected ? this.value : null);\n this.syncValidity();\n }\n\n /**\n * Publish `required` to the owning form. Without this the switch is\n * form-associated (its value reaches FormData) yet ALWAYS reports valid, so an\n * empty required control lets the form submit — `required` renders as a visual\n * hint and nothing more. Kept in the same place as the value sync so the two\n * can never drift.\n */\n @Watch('required')\n @Watch('valueMissingLabel')\n private syncValidity() {\n setValidityState(this.internals, {\n missing: this.required && !this.selected,\n missingMessage: this.valueMissingLabel,\n customMessage: this.customValidityMessage,\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 @Method()\n async checkValidity(): Promise<boolean> {\n return checkValidityOf(this.internals);\n }\n\n /** Like checkValidity(), but also shows the browser's validation message. */\n @Method()\n async reportValidity(): Promise<boolean> {\n return reportValidityOf(this.internals);\n }\n\n /** App/server-side validation: a non-empty message marks the control invalid\n * for its form until cleared with an empty string. */\n @Method()\n async setCustomValidity(message: string) {\n this.customValidityMessage = message;\n this.syncValidity();\n }\n\n private toggle = () => {\n if (this.isDisabled) return;\n\n const proposed = !this.selected;\n\n const inputEvent = this.mdInput.emit({ selected: proposed });\n if (inputEvent.defaultPrevented) return;\n\n this.selected = proposed;\n this.mdChange.emit({ selected: this.selected });\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.isDisabled) return;\n // WAI-ARIA switch pattern: Space toggles (Enter is reserved for form\n // submission — matching md-checkbox / md-radio).\n if (e.key === ' ') {\n e.preventDefault();\n if (e.repeat) return; // ignore OS key-repeat storms\n this.pressed = true;\n this.toggle();\n setTimeout(() => { this.pressed = false; }, 150);\n }\n };\n\n private handlePointerDown = () => {\n if (!this.isDisabled) this.pressed = true;\n };\n\n private handlePointerUp = () => {\n this.pressed = false;\n };\n\n private handleBlur = () => {\n this.programmaticFocus = false;\n };\n\n // ─── Render ────────────────────────────────────────────────\n\n render() {\n const showSelectedIcon = this.icons || this.showOnlySelectedIcon;\n const showUnselectedIcon = this.icons;\n const showIcon = this.selected ? showSelectedIcon : showUnselectedIcon;\n\n return (\n <Host\n role=\"switch\"\n aria-checked={String(this.selected)}\n aria-disabled={this.isDisabled ? 'true' : null}\n aria-required={this.required ? 'true' : null}\n tabindex={this.disabled ? '-1' : '0'}\n class={{\n 'md-switch': true,\n 'md-switch--selected': this.selected,\n 'md-switch--disabled': this.disabled || this.softDisabled,\n 'md-switch--pressed': this.pressed,\n 'md-switch--with-icon': showIcon,\n 'md-switch--focus-ring': this.programmaticFocus,\n }}\n onClick={this.toggle}\n onKeyDown={this.handleKeyDown}\n onPointerDown={this.handlePointerDown}\n onPointerUp={this.handlePointerUp}\n onPointerLeave={this.handlePointerUp}\n onPointerCancel={this.handlePointerUp}\n onBlur={this.handleBlur}\n >\n <div class=\"md-switch__track\" part=\"track\">\n <div class=\"md-switch__handle-container\">\n <span class=\"md-switch__state-layer\" part=\"state-layer\" aria-hidden=\"true\"></span>\n <span class=\"md-switch__handle\" part=\"handle\">\n {showIcon && (this.selected ? (\n <slot name=\"selected-icon\">\n <span class=\"md-switch__icon material-symbols-outlined\" part=\"icon\" aria-hidden=\"true\">\n {this.selectedIcon}\n </span>\n </slot>\n ) : (\n <slot name=\"unselected-icon\">\n <span class=\"md-switch__icon material-symbols-outlined\" part=\"icon\" aria-hidden=\"true\">\n {this.unselectedIcon}\n </span>\n </slot>\n ))}\n </span>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as e,H as t,h as s,d as a,t as i}from"./p-bSpXNc5J.js";const n=()=>`:host{display:block;min-inline-size:0}.md-tab-panel__body{min-inline-size:0}:host(:not([active])) .md-tab-panel__body{visibility:hidden}:host(:focus-visible){outline:3px solid var(--md-sys-color-primary, #6750A4);outline-offset:2px;border-radius:4px}`;const o=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.active=false}render(){return s(a,{key:"b42e5a3e5514eb1b6832aa5c52fbf59d85f434de",role:"tabpanel",tabindex:this.active?"0":"-1"},s("div",{key:"ba25423707fad30b1c1a73223cc8632f2fb1f8a9",class:"md-tab-panel__body"},s("slot",{key:"de8288a5547d7d9e545996edb4350763d5fbe9ea"})))}static get style(){return n()}},[257,"md-tab-panel",{active:[516]}]);function d(){if(typeof customElements==="undefined"){return}const e=["md-tab-panel"];e.forEach((e=>{switch(e){case"md-tab-panel":if(!customElements.get(i(e))){customElements.define(i(e),o)}break}}))}d();const l=o;const b=d;export{l as MdTabPanel,b as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=md-tab-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdTabPanelCss","MdTabPanel","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","active","render","h","Host","key","role","tabindex","class"],"sources":["src/components/md-tab-panel/md-tab-panel.css?tag=md-tab-panel&encapsulation=shadow","src/components/md-tab-panel/md-tab-panel.tsx"],"sourcesContent":["/* ==========================================================\n md-tab-panel — one panel of an md-tab-panels region\n ========================================================== */\n\n:host {\n display: block;\n min-inline-size: 0;\n}\n\n.md-tab-panel__body {\n min-inline-size: 0;\n}\n\n/* Inactive panels KEEP THEIR LAYOUT BOX (the md-tab-panels grid stacks all\n panels in one cell, so the region is always as large as the largest\n panel) — visibility removes them from paint, AT, and hit-testing. On the\n inner wrapper, NOT the host: Stencil's `.hydrated { visibility: inherit }`\n document rule would override any :host-level visibility. */\n:host(:not([active])) .md-tab-panel__body {\n visibility: hidden;\n}\n\n:host(:focus-visible) {\n outline: 3px solid var(--md-sys-color-primary, #6750A4);\n outline-offset: 2px;\n border-radius: 4px;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n/**\n * A single tab panel. Place inside `md-tab-panels`, one per tab, in tab\n * order. The parent manages `active`, `inert`, and the tabs↔panel ARIA\n * wiring; inactive panels stay in layout (hidden) so the region's size\n * never jumps between tabs.\n *\n * @slot - Panel content\n */\n@Component({\n tag: 'md-tab-panel',\n styleUrl: 'md-tab-panel.css',\n shadow: true,\n})\nexport class MdTabPanel {\n /** Managed by md-tab-panels — reflects the associated tab's selection. */\n @Prop({ reflect: true }) active: boolean = false;\n\n render() {\n return (\n <Host role=\"tabpanel\" tabindex={this.active ? '0' : '-1'}>\n {/* visibility lives on this wrapper: Stencil's document-level\n `.hydrated { visibility: inherit }` out-cascades any :host rule,\n but it cannot reach into the shadow tree. */}\n <div class=\"md-tab-panel__body\">\n <slot />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"gEAAA,MAAMA,EAAgB,IAAM,6P,MCefC,EAAUC,EAAA,MAAAD,UAAAE,EALvB,WAAAC,CAAAC,G,kEAO2BC,KAAAC,OAAkB,KAc5C,CAZC,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,KAAK,WAAWC,SAAUP,KAAKC,OAAS,IAAM,MAIlDE,EAAA,OAAAE,IAAA,2CAAKG,MAAM,sBACTL,EAAA,QAAAE,IAAA,8C","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as t,H as s,h as e,d as i,t as n}from"./p-bSpXNc5J.js";const a=()=>`:host{display:grid;min-inline-size:0}::slotted(md-tab-panel){grid-area:1 / 1}:host([sizing='active']) ::slotted(md-tab-panel:not([active])){display:none}`;const o=t(class t extends s{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.for="";this.sizing="stable";this.tabsEl=null;this.hasLoaded=false;this.uid=`md-tab-panels-${Math.random().toString(36).slice(2,7)}`;this.onTabChange=t=>{const s=t.detail;if(s&&typeof s.index==="number")this.show(s.index)}}onForChange(){this.unwire();this.wire()}componentDidLoad(){this.hasLoaded=true;const t=this.el.shadowRoot?.querySelector("slot");t?.addEventListener("slotchange",(()=>this.sync()));this.wire()}connectedCallback(){if(this.hasLoaded)queueMicrotask((()=>this.wire()))}disconnectedCallback(){this.unwire()}findTabs(){if(this.for){return this.el.getRootNode().getElementById?.(this.for)??document.getElementById(this.for)}let t=this.el.previousElementSibling;while(t){if(t.tagName==="MD-TABS")return t;t=t.previousElementSibling}return null}wire(){const t=this.findTabs();if(this.tabsEl&&this.tabsEl!==t)this.unwire();this.tabsEl=t;t?.addEventListener("mdTabChange",this.onTabChange);this.sync()}unwire(){this.tabsEl?.removeEventListener("mdTabChange",this.onTabChange);this.tabsEl=null}panels(){const t=this.el.shadowRoot?.querySelector("slot");return(t?.assignedElements({flatten:true})??[]).filter((t=>t.tagName==="MD-TAB-PANEL"))}sync(){const t=this.tabsEl;const s=t?Array.from(t.querySelectorAll("md-tab")):[];this.panels().forEach(((t,e)=>{if(!t.id)t.id=`${this.uid}-panel-${e}`;const i=s[e];if(i){if(!i.id)i.id=`${this.uid}-tab-${e}`;t.setAttribute("aria-labelledby",i.id);if(!i.hasAttribute("controls")&&!i.hasAttribute("aria-controls")){i.setAttribute("controls",t.id)}}}));const e=typeof t?.activeTabIndex==="number"?t.activeTabIndex:parseInt(t?.getAttribute("active-tab-index")??"0",10)||0;this.show(e)}show(t){this.panels().forEach(((s,e)=>{const i=e===t;if(i){s.setAttribute("active","");s.removeAttribute("inert")}else{s.removeAttribute("active");s.setAttribute("inert","")}}))}render(){return e(i,{key:"176366b596e7c98b35d37a6f2b315107b24eb408"},e("slot",{key:"919afd6c35c53aeabe49d8f9879fb9042c5de19e"}))}get el(){return this}static get watchers(){return{for:[{onForChange:0}]}}static get style(){return a()}},[257,"md-tab-panels",{for:[1],sizing:[513]},undefined,{for:[{onForChange:0}]}]);function h(){if(typeof customElements==="undefined"){return}const t=["md-tab-panels"];t.forEach((t=>{switch(t){case"md-tab-panels":if(!customElements.get(n(t))){customElements.define(n(t),o)}break}}))}h();const r=o;const c=h;export{r as MdTabPanels,c as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=md-tab-panels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdTabPanelsCss","MdTabPanels","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","for","sizing","tabsEl","hasLoaded","uid","Math","random","toString","slice","onTabChange","e","detail","index","show","onForChange","unwire","wire","componentDidLoad","slot","el","shadowRoot","querySelector","addEventListener","sync","connectedCallback","queueMicrotask","disconnectedCallback","findTabs","getRootNode","getElementById","document","n","previousElementSibling","tagName","tabs","removeEventListener","panels","assignedElements","flatten","filter","tabEls","Array","from","querySelectorAll","forEach","panel","i","id","tab","setAttribute","hasAttribute","activeTabIndex","parseInt","getAttribute","active","removeAttribute","render","h","Host","key"],"sources":["src/components/md-tab-panels/md-tab-panels.css?tag=md-tab-panels&encapsulation=shadow","src/components/md-tab-panels/md-tab-panels.tsx"],"sourcesContent":["/* ==========================================================\n md-tab-panels — size-stable tab panel region\n ========================================================== */\n\n:host {\n display: grid;\n min-inline-size: 0;\n}\n\n/* All panels share ONE grid cell: the region is always as wide/tall as the\n LARGEST panel, so switching tabs never resizes the surrounding layout\n (the whole point — a one-letter panel can't collapse the card). */\n::slotted(md-tab-panel) {\n grid-area: 1 / 1;\n}\n\n/* Opt-out: size to the active panel only. */\n:host([sizing='active']) ::slotted(md-tab-panel:not([active])) {\n display: none;\n}\n","import { Component, Element, Host, h, Prop, Watch } from '@stencil/core';\n\n/**\n * Panel region for `md-tabs`: place directly AFTER the tablist (or point\n * `for` at its id) with one `md-tab-panel` per tab, in tab order.\n *\n * - Shows the panel matching the tabs' `activeTabIndex`, following\n * `mdTabChange` automatically.\n * - `sizing=\"stable\"` (default): all panels stack in one grid cell and\n * inactive ones stay in layout (hidden), so the region — and any\n * shrink-to-fit card around it — keeps the SAME width/height no matter\n * which tab is active. `sizing=\"active\"` sizes to the active panel only.\n * - Wires the APG ARIA contract both ways: each tab gets `aria-controls`,\n * each panel gets `aria-labelledby`, ids auto-assigned where missing.\n *\n * @slot - `md-tab-panel` elements, one per tab\n */\n@Component({\n tag: 'md-tab-panels',\n styleUrl: 'md-tab-panels.css',\n shadow: true,\n})\nexport class MdTabPanels {\n @Element() el!: HTMLElement;\n\n /** id of the `md-tabs` to follow. Empty = nearest preceding md-tabs sibling. */\n @Prop() for: string = '';\n\n /** stable = reserve the largest panel's box; active = size to the active panel. */\n @Prop({ reflect: true }) sizing: 'stable' | 'active' = 'stable';\n\n private tabsEl: (HTMLElement & { activeTabIndex?: number }) | null = null;\n private hasLoaded = false;\n private uid = `md-tab-panels-${Math.random().toString(36).slice(2, 7)}`;\n\n private onTabChange = (e: Event) => {\n const detail = (e as CustomEvent<{ index: number }>).detail;\n if (detail && typeof detail.index === 'number') this.show(detail.index);\n };\n\n @Watch('for')\n onForChange() {\n this.unwire();\n this.wire();\n }\n\n componentDidLoad() {\n this.hasLoaded = true;\n const slot = this.el.shadowRoot?.querySelector('slot');\n slot?.addEventListener('slotchange', () => this.sync());\n this.wire();\n }\n\n connectedCallback() {\n // house rule: reconnects must rebind (disconnect tears the listener down)\n if (this.hasLoaded) queueMicrotask(() => this.wire());\n }\n\n disconnectedCallback() {\n this.unwire();\n }\n\n private findTabs(): (HTMLElement & { activeTabIndex?: number }) | null {\n if (this.for) {\n return (this.el.getRootNode() as Document | ShadowRoot).getElementById?.(this.for) ?? document.getElementById(this.for);\n }\n let n: Element | null = this.el.previousElementSibling;\n while (n) {\n if (n.tagName === 'MD-TABS') return n as HTMLElement;\n n = n.previousElementSibling;\n }\n return null;\n }\n\n private wire() {\n const tabs = this.findTabs();\n if (this.tabsEl && this.tabsEl !== tabs) this.unwire();\n this.tabsEl = tabs;\n tabs?.addEventListener('mdTabChange', this.onTabChange);\n this.sync();\n }\n\n private unwire() {\n this.tabsEl?.removeEventListener('mdTabChange', this.onTabChange);\n this.tabsEl = null;\n }\n\n private panels(): HTMLElement[] {\n const slot = this.el.shadowRoot?.querySelector('slot');\n // flatten — panels forwarded through wrapper slots are managed too\n return (slot?.assignedElements({ flatten: true }) ?? []).filter(\n (e) => e.tagName === 'MD-TAB-PANEL',\n ) as HTMLElement[];\n }\n\n /** Current index + ARIA wiring (tabs aria-controls ↔ panels aria-labelledby). */\n private sync() {\n const tabs = this.tabsEl;\n const tabEls = tabs ? (Array.from(tabs.querySelectorAll('md-tab')) as HTMLElement[]) : [];\n this.panels().forEach((panel, i) => {\n if (!panel.id) panel.id = `${this.uid}-panel-${i}`;\n const tab = tabEls[i];\n if (tab) {\n if (!tab.id) tab.id = `${this.uid}-tab-${i}`;\n panel.setAttribute('aria-labelledby', tab.id);\n if (!tab.hasAttribute('controls') && !tab.hasAttribute('aria-controls')) {\n tab.setAttribute('controls', panel.id);\n }\n }\n });\n const index = typeof tabs?.activeTabIndex === 'number'\n ? tabs.activeTabIndex\n : parseInt(tabs?.getAttribute('active-tab-index') ?? '0', 10) || 0;\n this.show(index);\n }\n\n private show(index: number) {\n this.panels().forEach((panel, i) => {\n const active = i === index;\n // mock-doc has no toggleAttribute — set/remove explicitly\n if (active) {\n panel.setAttribute('active', '');\n panel.removeAttribute('inert');\n } else {\n panel.removeAttribute('active');\n panel.setAttribute('inert', '');\n }\n });\n }\n\n render() {\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n}\n"],"mappings":"gEAAA,MAAMA,EAAiB,IAAM,4J,MCsBhBC,EAAWC,EAAA,MAAAD,UAAAE,EALxB,WAAAC,CAAAC,G,kEASUC,KAAAC,IAAc,GAGGD,KAAAE,OAA8B,SAE/CF,KAAAG,OAA6D,KAC7DH,KAAAI,UAAY,MACZJ,KAAAK,IAAM,iBAAiBC,KAAKC,SAASC,SAAS,IAAIC,MAAM,EAAG,KAE3DT,KAAAU,YAAeC,IACrB,MAAMC,EAAUD,EAAqCC,OACrD,GAAIA,UAAiBA,EAAOC,QAAU,SAAUb,KAAKc,KAAKF,EAAOC,MAAM,CAoG1E,CAhGC,WAAAE,GACEf,KAAKgB,SACLhB,KAAKiB,M,CAGP,gBAAAC,GACElB,KAAKI,UAAY,KACjB,MAAMe,EAAOnB,KAAKoB,GAAGC,YAAYC,cAAc,QAC/CH,GAAMI,iBAAiB,cAAc,IAAMvB,KAAKwB,SAChDxB,KAAKiB,M,CAGP,iBAAAQ,GAEE,GAAIzB,KAAKI,UAAWsB,gBAAe,IAAM1B,KAAKiB,Q,CAGhD,oBAAAU,GACE3B,KAAKgB,Q,CAGC,QAAAY,GACN,GAAI5B,KAAKC,IAAK,CACZ,OAAQD,KAAKoB,GAAGS,cAAwCC,iBAAiB9B,KAAKC,MAAQ8B,SAASD,eAAe9B,KAAKC,I,CAErH,IAAI+B,EAAoBhC,KAAKoB,GAAGa,uBAChC,MAAOD,EAAG,CACR,GAAIA,EAAEE,UAAY,UAAW,OAAOF,EACpCA,EAAIA,EAAEC,sB,CAER,OAAO,I,CAGD,IAAAhB,GACN,MAAMkB,EAAOnC,KAAK4B,WAClB,GAAI5B,KAAKG,QAAUH,KAAKG,SAAWgC,EAAMnC,KAAKgB,SAC9ChB,KAAKG,OAASgC,EACdA,GAAMZ,iBAAiB,cAAevB,KAAKU,aAC3CV,KAAKwB,M,CAGC,MAAAR,GACNhB,KAAKG,QAAQiC,oBAAoB,cAAepC,KAAKU,aACrDV,KAAKG,OAAS,I,CAGR,MAAAkC,GACN,MAAMlB,EAAOnB,KAAKoB,GAAGC,YAAYC,cAAc,QAE/C,OAAQH,GAAMmB,iBAAiB,CAAEC,QAAS,QAAW,IAAIC,QACtD7B,GAAMA,EAAEuB,UAAY,gB,CAKjB,IAAAV,GACN,MAAMW,EAAOnC,KAAKG,OAClB,MAAMsC,EAASN,EAAQO,MAAMC,KAAKR,EAAKS,iBAAiB,WAA+B,GACvF5C,KAAKqC,SAASQ,SAAQ,CAACC,EAAOC,KAC5B,IAAKD,EAAME,GAAIF,EAAME,GAAK,GAAGhD,KAAKK,aAAa0C,IAC/C,MAAME,EAAMR,EAAOM,GACnB,GAAIE,EAAK,CACP,IAAKA,EAAID,GAAIC,EAAID,GAAK,GAAGhD,KAAKK,WAAW0C,IACzCD,EAAMI,aAAa,kBAAmBD,EAAID,IAC1C,IAAKC,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,iBAAkB,CACvEF,EAAIC,aAAa,WAAYJ,EAAME,G,MAIzC,MAAMnC,SAAesB,GAAMiB,iBAAmB,SAC1CjB,EAAKiB,eACLC,SAASlB,GAAMmB,aAAa,qBAAuB,IAAK,KAAO,EACnEtD,KAAKc,KAAKD,E,CAGJ,IAAAC,CAAKD,GACXb,KAAKqC,SAASQ,SAAQ,CAACC,EAAOC,KAC5B,MAAMQ,EAASR,IAAMlC,EAErB,GAAI0C,EAAQ,CACVT,EAAMI,aAAa,SAAU,IAC7BJ,EAAMU,gBAAgB,Q,KACjB,CACLV,EAAMU,gBAAgB,UACtBV,EAAMI,aAAa,QAAS,G,KAKlC,MAAAO,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,QAAAE,IAAA,6C","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as t,H as e,c as a,h as i,d as s,t as n}from"./p-bSpXNc5J.js";import{t as o}from"./p-DYBUr7K_.js";import{d as r}from"./p-Hm3X1iai.js";const d=()=>`:host{--_container-color:var(--md-tab-container-color, transparent);--_active-label-color:var(--md-tab-active-label-color, var(--md-sys-color-primary, #6750A4));--_inactive-label-color:var(--md-tab-inactive-label-color, var(--md-sys-color-on-surface-variant, #49454F));--_active-icon-color:var(--md-tab-active-icon-color, var(--md-sys-color-primary, #6750A4));--_inactive-icon-color:var(--md-tab-inactive-icon-color, var(--md-sys-color-on-surface-variant, #49454F));--_indicator-color:var(--md-tab-active-indicator-color, var(--md-sys-color-primary, #6750A4));--_indicator-height:var(--md-tab-active-indicator-height, 3px);--_divider-color:var(--md-tab-divider-color, var(--md-tabs-divider-color, var(--md-sys-color-outline-variant, #CAC4D0)));--_icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));display:inline-flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:visible;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;flex:1;min-inline-size:max(48px, calc(90px + var(--md-sys-density-scale, 0) * 8px));block-size:calc(48px + var(--md-sys-density-scale, 0) * 4px);padding-inline:max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px));box-sizing:border-box;color:var(--_inactive-label-color);background-color:var(--_container-color);transition:color var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, ease)}:host(.md-tab--stacked.md-tab--primary){block-size:calc(64px + var(--md-sys-density-scale, 0) * 4px)}:host(.md-tab--active){color:var(--_active-label-color)}:host(.md-tab--active) .md-tab__icon{color:var(--_active-icon-color)}:host(.md-tab--secondary){align-items:stretch;--_active-label-color:var(--md-tab-active-label-color, var(--md-sys-color-on-surface, #1C1B1F));--_indicator-color:var(--md-tab-active-indicator-color, var(--md-sys-color-primary, #6750A4));--_indicator-height:var(--md-tab-active-indicator-height, 2px)}:host(.md-tab--disabled){cursor:default;pointer-events:none;color:color-mix( in srgb, var(--md-sys-color-on-surface, #1C1B1F) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent )}.md-tab__state-layer{position:absolute;inset:0;background-color:currentColor;opacity:0;pointer-events:none;transition:opacity var(--md-sys-motion-duration-short1, 50ms) var(--md-sys-motion-easing-standard, ease)}:host(:hover) .md-tab__state-layer{opacity:var(--md-sys-state-hover-state-layer-opacity, 0.08)}:host(:focus-visible) .md-tab__state-layer{opacity:var(--md-sys-state-focus-state-layer-opacity, 0.12)}:host(:active) .md-tab__state-layer{opacity:var(--md-sys-state-pressed-state-layer-opacity, 0.12)}:host(:focus-visible){outline:3px solid var(--md-sys-color-secondary, #625B71);outline-offset:-3px}:host(.md-tab--primary) .md-tab__inner{flex:1;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;inline-size:max-content;max-inline-size:100%;min-block-size:0;position:relative;z-index:1}:host(.md-tab--secondary) .md-tab__inner{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch;inline-size:100%;min-block-size:0;position:relative;z-index:1}.md-tab__content{display:flex;flex-direction:column;align-items:center;gap:2px;position:relative;max-inline-size:100%;min-inline-size:0}:host(.md-tab--primary) .md-tab__content{flex:1 1 auto;justify-content:center;min-block-size:0}.md-tab__content--inline{flex-direction:row;gap:var(--md-sys-spacing-gap-sm, 8px)}.md-tab__icon-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center}.md-tab__icon{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');font-size:var(--_icon-size);inline-size:var(--_icon-size);block-size:var(--_icon-size);line-height:1;font-weight:normal;font-style:normal;letter-spacing:normal;text-transform:none;white-space:nowrap;overflow-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;color:var(--_inactive-icon-color);transition:color var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, ease)}::slotted([slot="icon"]){display:inline-flex;align-items:center;justify-content:center;inline-size:var(--_icon-size);block-size:var(--_icon-size);font-size:var(--_icon-size);color:inherit;fill:currentColor;pointer-events:none}.md-tab__label{font-family:var(--md-sys-typescale-title-small-font-family, Roboto, sans-serif);font-size:max(11px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-title-small-font-weight, 500);line-height:max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));letter-spacing:var(--md-sys-typescale-title-small-letter-spacing, 0.1px);white-space:nowrap;display:inline-flex;align-items:center;gap:var(--md-sys-spacing-gap-xs, 4px);max-inline-size:100%;min-inline-size:0}.md-tab__label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0}.md-tab__badge{position:absolute;inset-block-start:-4px;inset-inline-end:-8px;min-inline-size:6px;min-block-size:6px;padding-inline:3px;border-radius:var(--md-sys-shape-corner-full, 9999px);background-color:var(--md-sys-color-error, #B3261E);color:var(--md-sys-color-on-error, #FFFFFF);font-size:10px;font-weight:500;line-height:14px;text-align:center;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:2}.md-tab__badge:empty{padding:0;inline-size:6px;block-size:6px}.md-tab__badge--inline{position:relative;inset-block-start:auto;inset-inline-end:auto}:host(.md-tab--stacked) .md-tab__badge{inset-block-start:-2px;inset-inline-end:-6px}.md-tab__indicator{flex-shrink:0;background-color:var(--_indicator-color);block-size:var(--_indicator-height);opacity:0}:host(.md-tab--primary) .md-tab__indicator{position:relative;align-self:stretch;min-inline-size:24px;margin-block-start:2px;border-radius:var(--md-sys-shape-corner-full, 9999px) var(--md-sys-shape-corner-full, 9999px) 0 0;transform:scaleX(0.88);transform-origin:center;transition:transform var(--md-tab-glide-duration, var(--md-sys-motion-duration-medium4, 400ms)) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)), opacity var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-tab--primary) .md-tab__indicator--active{opacity:1;transform:translateX(var(--md-tab-glide-x, 0px)) scaleX(var(--md-tab-glide-scale, 1))}:host(.md-tab--secondary)>.md-tab__indicator{position:absolute;inset-inline:0;inset-block-end:0;inline-size:100%;max-inline-size:none;border-radius:2px 2px 0 0;transform:none;transform-origin:center;margin-block-start:0;z-index:1;transition:transform var(--md-tab-glide-duration, var(--md-sys-motion-duration-medium4, 400ms)) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)), opacity var(--md-sys-motion-duration-short3, 150ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-tab--secondary)>.md-tab__indicator.md-tab__indicator--active{opacity:1;transform:translateX(var(--md-tab-glide-x, 0px)) scaleX(var(--md-tab-glide-scale, 1))}.md-tab__divider{position:absolute;inset-block-end:0;inset-inline:0;block-size:1px;background-color:var(--_divider-color);z-index:0}.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);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}.md-tab__icon-wrapper ::slotted([slot='badge']){position:absolute;inset-block-start:2px;inset-inline-end:-8px;z-index:1}.md-tab__label ::slotted([slot='badge']){position:static;margin-inline-start:var(--md-sys-spacing-inset-xs, 4px)}@media (prefers-reduced-motion: reduce){.md-tab__indicator,.md-tab__state-layer{transition-duration:0.01ms !important}}@media (forced-colors: active){.md-tab__indicator{background-color:SelectedItem}:host(.md-tab--active) .md-tab__label{text-decoration:underline;color:SelectedItem}.md-tab__divider{background-color:CanvasText}:host(.md-tab--disabled){color:GrayText}}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}`;const c=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.mdTabClick=a(this,"mdTabClick",7);this.label="";this.icon="";this.active=false;this.disabled=false;this.inlineIcon=false;this.variant="primary";this.controls="";this.density=0;this.hasSlottedIcon=false;this.didLoad=false;this.warnedName=false;this.handleClick=()=>{if(this.disabled)return;this.mdTabClick.emit()};this.handleKeyDown=t=>{if(t.key==="Enter"||t.key===" "){t.preventDefault();if(!this.disabled){o(this.el);this.mdTabClick.emit()}}}}onDisabledChange(){this.syncStandaloneTabindex();this.el.dispatchEvent(new CustomEvent("mdTabDisabledChange",{bubbles:true}))}connectedCallback(){if(this.didLoad){queueMicrotask((()=>this.syncStandaloneTabindex()))}}componentWillLoad(){this.hasSlottedIcon=Array.from(this.el.children).some((t=>t.getAttribute("slot")==="icon"))}componentDidLoad(){this.didLoad=true;this.syncStandaloneTabindex();this.checkAccessibleName();const t=this.el.shadowRoot;if(!t)return;const e=t.querySelector('slot[name="icon"]');e?.addEventListener("slotchange",(()=>{this.hasSlottedIcon=e.assignedElements().length>0;this.checkAccessibleName()}))}checkAccessibleName(){return}hasTablistAncestor(){let t=this.el;while(t){if(t.tagName==="MD-TABS")return true;const e=t;t=e.assignedSlot??(t instanceof ShadowRoot?t.host:t.parentNode)}return false}syncStandaloneTabindex(){if(this.hasTablistAncestor())return;this.el.setAttribute("tabindex",this.disabled?"-1":"0")}render(){const t=!!this.icon||this.hasSlottedIcon;const e=!!this.label;const a=this.badge!==undefined;const n=this.inlineIcon&&t&&e;const o=t&&e&&!n;return i(s,{key:"f32d633ee759bb012060d73aa3c3905af41a6897",class:{"md-tab":true,[`md-tab--${this.variant}`]:true,"md-tab--active":this.active,"md-tab--disabled":this.disabled,"md-tab--inline-icon":n,"md-tab--stacked":o,"md-tab--icon-only":t&&!e},role:"tab","aria-selected":this.active?"true":"false","aria-disabled":this.disabled?"true":null,"aria-controls":this.controls||null,onClick:this.handleClick,onKeyDown:this.handleKeyDown},i("md-ripple",{key:"d17e9eeb19b97015db61e0ece0315574ab249d07",disabled:this.disabled}),i("span",{key:"14694eacb977eba5e237af7be7db08831a7d8d54",class:"md-tab__state-layer",part:"state-layer","aria-hidden":"true"}),i("span",{key:"e375db0da4fba50532387bec0072c7d5a555310b",class:"md-tab__inner"},i("span",{key:"eb5cd54e380543d23561e1a0b952604e039bbd2f",class:{"md-tab__content":true,"md-tab__content--inline":n},part:"content"},t&&i("span",{key:"7538d5f0222dfc41bda882c9ac3355031e23c17b",class:"md-tab__icon-wrapper"},i("slot",{key:"b4ecc54c1cb1dfa59fcb7c89c9f72fef5baf58eb",name:"icon"},i("span",{key:"ae8668fe6571d37dd99ce3a1f38c01d821c15e22",class:"md-tab__icon material-symbols-outlined",part:"icon","aria-hidden":"true"},this.icon)),i("slot",{key:"28d4fd59cde7ee4a35c74248ba921aa0e9c9275e",name:"badge"},a&&i("span",{key:"d8e5de8403b9d71ae023e023c18df315b76a2ba8",class:"md-tab__badge","aria-label":this.badge||"notification"},this.badge))),e&&i("span",{key:"4ad10ca62cdcd4f198760a11808b4e5637278d94",class:"md-tab__label",part:"label"},i("span",{key:"67d8113aa4e1db5d04ed99567c0c9efc3af37b92",class:"md-tab__label-text"},this.label),!t&&i("slot",{key:"77b8a07667a13c21b21b6b9f95885e5d2ad2daad",name:"badge"},a&&i("span",{key:"bda28af4562a7943c35d424a7ceae8d13f4151c8",class:"md-tab__badge md-tab__badge--inline","aria-label":this.badge||"notification"},this.badge)))),this.variant==="primary"?i("span",{class:{"md-tab__indicator":true,"md-tab__indicator--active":this.active},part:"indicator","aria-hidden":"true"}):null),this.variant==="secondary"?i("span",{class:{"md-tab__indicator":true,"md-tab__indicator--active":this.active},part:"indicator","aria-hidden":"true"}):null,i("span",{key:"b5dbf48d5986c950d728e10060ccb42a47050621",class:"md-tab__divider",part:"divider","aria-hidden":"true"}))}get el(){return this}static get watchers(){return{disabled:[{onDisabledChange:0}]}}static get style(){return d()}},[257,"md-tab",{label:[1],icon:[1],active:[1540],disabled:[516],inlineIcon:[516,"inline-icon"],variant:[513],badge:[1],controls:[1],density:[514],hasSlottedIcon:[32]},undefined,{disabled:[{onDisabledChange:0}]}]);function l(){if(typeof customElements==="undefined"){return}const t=["md-tab","md-ripple"];t.forEach((t=>{switch(t){case"md-tab":if(!customElements.get(n(t))){customElements.define(n(t),c)}break;case"md-ripple":if(!customElements.get(n(t))){r()}break}}))}l();const m=c;const b=l;export{m as MdTab,b as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=md-tab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdTabCss","MdTab","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","label","icon","active","disabled","inlineIcon","variant","controls","density","hasSlottedIcon","didLoad","warnedName","handleClick","mdTabClick","emit","handleKeyDown","e","key","preventDefault","triggerRipple","el","onDisabledChange","syncStandaloneTabindex","dispatchEvent","CustomEvent","bubbles","connectedCallback","queueMicrotask","componentWillLoad","Array","from","children","some","c","getAttribute","componentDidLoad","checkAccessibleName","shadow","shadowRoot","iconSlot","querySelector","addEventListener","assignedElements","length","hasTablistAncestor","node","tagName","assignedSlot","ShadowRoot","host","parentNode","setAttribute","render","hasIcon","hasLabel","hasBadge","badge","undefined","isInline","isStacked","h","Host","class","role","onClick","onKeyDown","part","name"],"sources":["src/components/md-tab/md-tab.css?tag=md-tab&encapsulation=shadow","src/components/md-tab/md-tab.tsx"],"sourcesContent":["/* ==========================================================\n md-tab — Material Design 3 Tab\n Spec: https://m3.material.io/components/tabs/specs\n\n PUBLIC CSS CUSTOM PROPERTIES (override per-instance):\n --md-tab-container-color Container background\n --md-tab-active-label-color Active label color (primary)\n --md-tab-inactive-label-color Inactive label color\n --md-tab-active-icon-color Active icon color (primary)\n --md-tab-inactive-icon-color Inactive icon color\n --md-tab-active-indicator-color Indicator bar color\n --md-tab-active-indicator-height Indicator bar thickness\n --md-tab-divider-color Bottom divider color\n\n CSS PARTS:\n content Inner content wrapper (icon + label)\n icon Icon element\n label Label text element\n indicator Active indicator bar\n divider Bottom divider line\n state-layer Hover / focus / press overlay\n\n SLOTS:\n icon Custom leading icon\n badge Badge overlay on the icon\n ========================================================== */\n\n/* ==========================================================\n 1. HOST — layout & base\n ========================================================== */\n\n:host {\n /* Public → internal mapping */\n --_container-color: var(--md-tab-container-color, transparent);\n --_active-label-color: var(--md-tab-active-label-color, var(--md-sys-color-primary, #6750A4));\n --_inactive-label-color: var(--md-tab-inactive-label-color, var(--md-sys-color-on-surface-variant, #49454F));\n --_active-icon-color: var(--md-tab-active-icon-color, var(--md-sys-color-primary, #6750A4));\n --_inactive-icon-color: var(--md-tab-inactive-icon-color, var(--md-sys-color-on-surface-variant, #49454F));\n --_indicator-color: var(--md-tab-active-indicator-color, var(--md-sys-color-primary, #6750A4));\n --_indicator-height: var(--md-tab-active-indicator-height, 3px);\n --_divider-color: var(--md-tab-divider-color, var(--md-tabs-divider-color, var(--md-sys-color-outline-variant, #CAC4D0)));\n\n /* One owner for the icon box. The built-in glyph span carries BOTH\n `.md-tab__icon` and `.material-symbols-outlined` — equal single-class\n specificity, so without a shared value the later rule silently wins the\n `font-size` and the built-in icon stops tapering while a slotted one\n keeps working. See the density guard in md-tab.e2e.ts. */\n --_icon-size: max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));\n\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: relative;\n overflow: visible;\n cursor: pointer;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n\n flex: 1;\n min-inline-size: max(48px, calc(90px + var(--md-sys-density-scale, 0) * 8px));\n block-size: calc(48px + var(--md-sys-density-scale, 0) * 4px);\n padding-inline: max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px));\n box-sizing: border-box;\n\n color: var(--_inactive-label-color);\n background-color: var(--_container-color);\n\n transition: color var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, ease);\n}\n\n/* ==========================================================\n 2. VARIANT HEIGHT — primary with icon+label = 64px\n ========================================================== */\n\n:host(.md-tab--stacked.md-tab--primary) {\n block-size: calc(64px + var(--md-sys-density-scale, 0) * 4px);\n}\n\n/* ==========================================================\n 3. ACTIVE STATE — colors\n ========================================================== */\n\n:host(.md-tab--active) {\n color: var(--_active-label-color);\n}\n\n:host(.md-tab--active) .md-tab__icon {\n color: var(--_active-icon-color);\n}\n\n/* Secondary variant: active = on-surface, not primary; inner fills tab width */\n:host(.md-tab--secondary) {\n align-items: stretch;\n --_active-label-color: var(--md-tab-active-label-color, var(--md-sys-color-on-surface, #1C1B1F));\n --_indicator-color: var(--md-tab-active-indicator-color, var(--md-sys-color-primary, #6750A4));\n --_indicator-height: var(--md-tab-active-indicator-height, 2px);\n}\n\n/* ==========================================================\n 4. DISABLED STATE\n ========================================================== */\n\n:host(.md-tab--disabled) {\n cursor: default;\n pointer-events: none;\n color: color-mix(\n in srgb,\n var(--md-sys-color-on-surface, #1C1B1F) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%),\n transparent\n );\n}\n\n/* ==========================================================\n 5. STATE LAYER\n ========================================================== */\n\n.md-tab__state-layer {\n position: absolute;\n inset: 0;\n background-color: currentColor;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--md-sys-motion-duration-short1, 50ms) var(--md-sys-motion-easing-standard, ease);\n}\n\n:host(:hover) .md-tab__state-layer {\n opacity: var(--md-sys-state-hover-state-layer-opacity, 0.08);\n}\n\n:host(:focus-visible) .md-tab__state-layer {\n opacity: var(--md-sys-state-focus-state-layer-opacity, 0.12);\n}\n\n:host(:active) .md-tab__state-layer {\n opacity: var(--md-sys-state-pressed-state-layer-opacity, 0.12);\n}\n\n/* ==========================================================\n 6. FOCUS RING\n ========================================================== */\n\n:host(:focus-visible) {\n outline: 3px solid var(--md-sys-color-secondary, #625B71);\n outline-offset: -3px;\n}\n\n/* ==========================================================\n 7. INNER + CONTENT LAYOUT\n Primary: inner is max-content wide; indicator sits under label/icon cluster.\n Secondary: indicator is a host child (not inside inner) so it spans full tab width.\n ========================================================== */\n\n:host(.md-tab--primary) .md-tab__inner {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n justify-content: flex-end;\n inline-size: max-content;\n max-inline-size: 100%;\n min-block-size: 0;\n position: relative;\n z-index: 1;\n}\n\n:host(.md-tab--secondary) .md-tab__inner {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-self: stretch;\n inline-size: 100%;\n min-block-size: 0;\n position: relative;\n z-index: 1;\n}\n\n.md-tab__content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2px;\n position: relative;\n max-inline-size: 100%;\n min-inline-size: 0;\n}\n\n:host(.md-tab--primary) .md-tab__content {\n flex: 1 1 auto;\n justify-content: center;\n min-block-size: 0;\n}\n\n.md-tab__content--inline {\n flex-direction: row;\n gap: var(--md-sys-spacing-gap-sm, 8px);\n}\n\n/* ==========================================================\n 8. ICON\n ========================================================== */\n\n.md-tab__icon-wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.md-tab__icon {\n font-family: var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');\n font-size: var(--_icon-size);\n inline-size: var(--_icon-size);\n block-size: var(--_icon-size);\n line-height: 1;\n font-weight: normal;\n font-style: normal;\n letter-spacing: normal;\n text-transform: none;\n white-space: nowrap;\n overflow-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n color: var(--_inactive-icon-color);\n transition: color var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, ease);\n}\n\n::slotted([slot=\"icon\"]) {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: var(--_icon-size);\n block-size: var(--_icon-size);\n font-size: var(--_icon-size);\n color: inherit;\n fill: currentColor;\n pointer-events: none;\n}\n\n/* ==========================================================\n 9. LABEL\n ========================================================== */\n\n.md-tab__label {\n font-family: var(--md-sys-typescale-title-small-font-family, Roboto, sans-serif);\n font-size: max(11px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));\n font-weight: var(--md-sys-typescale-title-small-font-weight, 500);\n line-height: max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));\n letter-spacing: var(--md-sys-typescale-title-small-letter-spacing, 0.1px);\n white-space: nowrap;\n display: inline-flex;\n align-items: center;\n gap: var(--md-sys-spacing-gap-xs, 4px);\n max-inline-size: 100%;\n min-inline-size: 0;\n}\n\n/* Fixed tab-width mode: labels wider than the track ellipsize instead of\n forcing the tab open. */\n.md-tab__label-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-inline-size: 0;\n}\n\n/* ==========================================================\n 10. BADGE\n ========================================================== */\n\n.md-tab__badge {\n position: absolute;\n inset-block-start: -4px;\n inset-inline-end: -8px;\n min-inline-size: 6px;\n min-block-size: 6px;\n padding-inline: 3px;\n border-radius: var(--md-sys-shape-corner-full, 9999px);\n background-color: var(--md-sys-color-error, #B3261E);\n color: var(--md-sys-color-on-error, #FFFFFF);\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n z-index: 2;\n}\n\n.md-tab__badge:empty {\n padding: 0;\n inline-size: 6px;\n block-size: 6px;\n}\n\n.md-tab__badge--inline {\n position: relative;\n inset-block-start: auto;\n inset-inline-end: auto;\n}\n\n/* Stacked icon badge overlap: 6px */\n:host(.md-tab--stacked) .md-tab__badge {\n inset-block-start: -2px;\n inset-inline-end: -6px;\n}\n\n/* ==========================================================\n 11. ACTIVE INDICATOR\n Primary: width matches content (stretch within max-content inner); expressive\n emphasized-decelerate + horizontal scale. Secondary: full tab width (unchanged).\n ========================================================== */\n\n.md-tab__indicator {\n flex-shrink: 0;\n background-color: var(--_indicator-color);\n /* Always reserve the indicator's vertical box so toggling between\n inactive ↔ active does NOT change layout. Only opacity + transform\n animate the entry — block-size stays constant. Without this, an\n in-flow primary indicator collapsing from var(--_indicator-height)\n to 0 makes the centred icon/label cluster jump ~1.5px on selection. */\n block-size: var(--_indicator-height);\n opacity: 0;\n}\n\n/* Primary — under icon/label, content-wide, M3 expressive motion */\n:host(.md-tab--primary) .md-tab__indicator {\n position: relative;\n align-self: stretch;\n min-inline-size: 24px;\n margin-block-start: 2px;\n border-radius: var(--md-sys-shape-corner-full, 9999px) var(--md-sys-shape-corner-full, 9999px) 0 0;\n transform: scaleX(0.88);\n transform-origin: center;\n transition:\n transform var(--md-tab-glide-duration, var(--md-sys-motion-duration-medium4, 400ms)) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)),\n opacity var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));\n}\n\n/* MD3 glide: md-tabs FLIPs the incoming indicator from the outgoing tab's\n position/width via inherited vars (center-to-center delta + width ratio),\n then releases them so the transition carries it home. */\n:host(.md-tab--primary) .md-tab__indicator--active {\n opacity: 1;\n transform: translateX(var(--md-tab-glide-x, 0px)) scaleX(var(--md-tab-glide-scale, 1));\n}\n\n/* Secondary — full-width strip along host bottom (sibling of inner, not width of content).\n Already absolutely positioned, so no flow impact either way; we still drop the\n block-size transition since the height is now constant. */\n:host(.md-tab--secondary) > .md-tab__indicator {\n position: absolute;\n inset-inline: 0;\n inset-block-end: 0;\n inline-size: 100%;\n max-inline-size: none;\n border-radius: 2px 2px 0 0;\n transform: none;\n transform-origin: center;\n margin-block-start: 0;\n z-index: 1;\n transition:\n transform var(--md-tab-glide-duration, var(--md-sys-motion-duration-medium4, 400ms)) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)),\n opacity var(--md-sys-motion-duration-short3, 150ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));\n}\n\n:host(.md-tab--secondary) > .md-tab__indicator.md-tab__indicator--active {\n opacity: 1;\n transform: translateX(var(--md-tab-glide-x, 0px)) scaleX(var(--md-tab-glide-scale, 1));\n}\n\n/* ==========================================================\n 12. DIVIDER — 1px bottom line, inside the container\n ========================================================== */\n\n.md-tab__divider {\n position: absolute;\n inset-block-end: 0;\n inset-inline: 0;\n block-size: 1px;\n background-color: var(--_divider-color);\n z-index: 0;\n}\n\n/* ==========================================================\n 13. MATERIAL SYMBOLS (shadow DOM)\n ========================================================== */\n\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 font-size: var(--_icon-size);\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 13. SLOTTED BADGE — same overlay geometry as the built-in badge\n ========================================================== */\n\n.md-tab__icon-wrapper ::slotted([slot='badge']) {\n position: absolute;\n inset-block-start: 2px;\n inset-inline-end: -8px;\n z-index: 1;\n}\n\n/* Label-only tabs: slotted badge flows inline beside the text. */\n.md-tab__label ::slotted([slot='badge']) {\n position: static;\n margin-inline-start: var(--md-sys-spacing-inset-xs, 4px);\n}\n\n/* ==========================================================\n 14. REDUCED MOTION + FORCED COLORS (house pattern)\n ========================================================== */\n\n@media (prefers-reduced-motion: reduce) {\n .md-tab__indicator,\n .md-tab__state-layer {\n transition-duration: 0.01ms !important;\n }\n}\n\n@media (forced-colors: active) {\n .md-tab__indicator {\n background-color: SelectedItem;\n }\n :host(.md-tab--active) .md-tab__label {\n text-decoration: underline;\n color: SelectedItem;\n }\n .md-tab__divider {\n background-color: CanvasText;\n }\n :host(.md-tab--disabled) {\n color: GrayText;\n }\n}\n\n/* ==========================================================\n DENSITY (local override)\n Maps the local `density` prop onto the same --md-sys-density-scale signal a\n global `data-density` ancestor sets. Declared on :host, so a local rung wins\n over the inherited global one. Every density-sensitive value in this file\n derives from that single signal by calc — never add a fixed per-rung ladder.\n ========================================================== */\n:host([density='-1']) { --md-sys-density-scale: -1; }\n:host([density='-2']) { --md-sys-density-scale: -2; }\n:host([density='-3']) { --md-sys-density-scale: -3; }\n:host([density='-4']) { --md-sys-density-scale: -4; }\n","import { Build, Component, Host, h, Prop, Event, EventEmitter, Element, State, Watch } from '@stencil/core';\nimport { triggerRipple } from '../../utils/ripple';\n\n/**\n * @slot icon - Custom leading icon (overrides `icon` prop)\n * @slot badge - Badge overlay on the icon\n *\n * @part content - Inner content wrapper (icon + label)\n * @part icon - Icon element\n * @part label - Label text element\n * @part indicator - Active indicator bar\n * @part divider - Bottom divider line\n * @part state-layer - Hover / focus / press overlay\n */\n@Component({\n tag: 'md-tab',\n styleUrl: 'md-tab.css',\n shadow: true,\n})\nexport class MdTab {\n @Element() el!: HTMLElement;\n\n /** Tab label text */\n @Prop() label: string = '';\n\n /** Material Symbols icon name (or use the `icon` slot for custom icons) */\n @Prop() icon: string = '';\n\n /** Whether this tab is the active / selected tab */\n @Prop({ mutable: true, reflect: true }) active: boolean = false;\n\n /** Prevents interaction */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Display icon and label side-by-side instead of stacked */\n @Prop({ reflect: true, attribute: 'inline-icon' }) inlineIcon: boolean = false;\n\n /** Visual variant — set automatically by parent `md-tabs` */\n @Prop({ reflect: true }) variant: 'primary' | 'secondary' = 'primary';\n\n /** Optional badge text (empty string = dot badge) */\n @Prop() badge: string | undefined;\n\n /** ID of the associated tabpanel (sets `aria-controls`) */\n @Prop({ attribute: 'controls' }) controls: string = '';\n\n /**\n * Local density rung. Drives the same `--md-sys-density-scale` signal that a\n * global `data-density` ancestor sets, so a local value simply overrides the\n * inherited one. 0 = default, -4 = ultra-compact.\n */\n @Prop({ reflect: true }) density: 0 | -1 | -2 | -3 | -4 = 0;\n\n /** Emits when the tab is activated by click or keyboard */\n @Event() mdTabClick: EventEmitter<void>;\n\n @State() private hasSlottedIcon = false;\n\n private didLoad = false;\n private warnedName = false;\n\n @Watch('disabled')\n onDisabledChange() {\n this.syncStandaloneTabindex();\n // Inside a tablist the PARENT owns roving tabindex — tell it to re-rove\n // (attribute changes alone are invisible to it).\n this.el.dispatchEvent(new CustomEvent('mdTabDisabledChange', { bubbles: true }));\n }\n\n connectedCallback() {\n // A tab moved OUT of a tablist at runtime kept its parent-stamped\n // tabindex=\"-1\" forever — re-evaluate ownership on every reconnect.\n if (this.didLoad) {\n queueMicrotask(() => this.syncStandaloneTabindex());\n }\n }\n\n componentWillLoad() {\n // The icon slot only renders when hasIcon is true — with no icon PROP,\n // a slotted icon could never assign (slot absent -> no slotchange ->\n // hasSlottedIcon stays false forever). Seed from the light DOM.\n this.hasSlottedIcon = Array.from(this.el.children).some(\n (c) => c.getAttribute('slot') === 'icon',\n );\n }\n\n componentDidLoad() {\n this.didLoad = true;\n this.syncStandaloneTabindex();\n this.checkAccessibleName();\n const shadow = this.el.shadowRoot;\n if (!shadow) return;\n\n const iconSlot = shadow.querySelector('slot[name=\"icon\"]') as HTMLSlotElement | null;\n iconSlot?.addEventListener('slotchange', () => {\n this.hasSlottedIcon = (iconSlot.assignedElements().length > 0);\n this.checkAccessibleName(); // slotted-icon-only tabs are nameless too\n });\n }\n\n /** Dev-only nameless-tab warning (WCAG 4.1.2). Exempts every name source:\n * label text, non-empty aria-label, aria-labelledby, title. */\n private checkAccessibleName() {\n if (!Build.isDev || this.warnedName) return;\n const hasIcon = !!this.icon || this.hasSlottedIcon;\n const named =\n !!this.label ||\n !!this.el.getAttribute('aria-label') ||\n this.el.hasAttribute('aria-labelledby') ||\n this.el.hasAttribute('title');\n if (hasIcon && !named) {\n this.warnedName = true;\n console.warn(\n '[md-tab] Icon-only tab has no accessible name — add aria-label (WCAG 4.1.2).',\n this.el,\n );\n }\n }\n\n /** closest() cannot cross shadow boundaries — a tab slotted THROUGH a\n * wrapper stamped its own tabindex=0 over the parent's rove (the exact\n * double-tab-stop defect again). Walk the COMPOSED tree. */\n private hasTablistAncestor(): boolean {\n let node: Node | null = this.el;\n while (node) {\n if ((node as Element).tagName === 'MD-TABS') return true;\n const el = node as Element;\n node = el.assignedSlot ?? (node instanceof ShadowRoot ? node.host : node.parentNode);\n }\n return false;\n }\n\n /**\n * tabindex has a SINGLE owner: inside md-tabs the parent manages roving\n * focus (two writers previously left two tabs at tabindex=\"0\"). Rendering\n * it here would let every re-render overwrite the parent's value, so the\n * host template carries none — standalone md-tab stamps its own.\n */\n private syncStandaloneTabindex() {\n if (this.hasTablistAncestor()) return;\n this.el.setAttribute('tabindex', this.disabled ? '-1' : '0');\n }\n\n private handleClick = () => {\n if (this.disabled) return;\n this.mdTabClick.emit();\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if (!this.disabled) {\n triggerRipple(this.el);\n this.mdTabClick.emit();\n }\n }\n };\n\n render() {\n const hasIcon = !!this.icon || this.hasSlottedIcon;\n const hasLabel = !!this.label;\n const hasBadge = this.badge !== undefined;\n const isInline = this.inlineIcon && hasIcon && hasLabel;\n const isStacked = hasIcon && hasLabel && !isInline;\n\n return (\n <Host\n class={{\n 'md-tab': true,\n [`md-tab--${this.variant}`]: true,\n 'md-tab--active': this.active,\n 'md-tab--disabled': this.disabled,\n 'md-tab--inline-icon': isInline,\n 'md-tab--stacked': isStacked,\n 'md-tab--icon-only': hasIcon && !hasLabel,\n }}\n role=\"tab\"\n aria-selected={this.active ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : null}\n aria-controls={this.controls || null}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n >\n <md-ripple disabled={this.disabled}></md-ripple>\n <span class=\"md-tab__state-layer\" part=\"state-layer\" aria-hidden=\"true\"></span>\n\n <span class=\"md-tab__inner\">\n <span\n class={{\n 'md-tab__content': true,\n 'md-tab__content--inline': isInline,\n }}\n part=\"content\"\n >\n {hasIcon && (\n <span class=\"md-tab__icon-wrapper\">\n <slot name=\"icon\">\n <span class=\"md-tab__icon material-symbols-outlined\" part=\"icon\" aria-hidden=\"true\">\n {this.icon}\n </span>\n </slot>\n <slot name=\"badge\">\n {hasBadge && (\n <span class=\"md-tab__badge\" aria-label={this.badge || 'notification'}>\n {this.badge}\n </span>\n )}\n </slot>\n </span>\n )}\n {hasLabel && (\n <span class=\"md-tab__label\" part=\"label\">\n <span class=\"md-tab__label-text\">{this.label}</span>\n {!hasIcon && (\n <slot name=\"badge\">\n {hasBadge && (\n <span class=\"md-tab__badge md-tab__badge--inline\" aria-label={this.badge || 'notification'}>\n {this.badge}\n </span>\n )}\n </slot>\n )}\n </span>\n )}\n </span>\n {this.variant === 'primary' ? (\n <span\n class={{\n 'md-tab__indicator': true,\n 'md-tab__indicator--active': this.active,\n }}\n part=\"indicator\"\n aria-hidden=\"true\"\n ></span>\n ) : null}\n </span>\n {this.variant === 'secondary' ? (\n <span\n class={{\n 'md-tab__indicator': true,\n 'md-tab__indicator--active': this.active,\n }}\n part=\"indicator\"\n aria-hidden=\"true\"\n ></span>\n ) : null}\n <span class=\"md-tab__divider\" part=\"divider\" aria-hidden=\"true\"></span>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as e,H as t,h as s,d as o,t as n}from"./p-bSpXNc5J.js";const d=()=>`:host{display:contents}`;const r=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.presentational=false}render(){return s(o,{key:"d8dea27919051883672566941ed9b97e02b8a2ec",class:"md-table-body",role:this.presentational?"presentation":"rowgroup","data-md-rowgroup":"body"},s("slot",{key:"59b46094354fd65be1e9d58d74fb5eb71d6759de",onSlotchange:()=>this.el.dispatchEvent(new CustomEvent("mdRowgroupSlotChange",{bubbles:true}))}))}get el(){return this}static get style(){return d()}},[257,"md-table-body",{presentational:[516]}]);function a(){if(typeof customElements==="undefined"){return}const e=["md-table-body"];e.forEach((e=>{switch(e){case"md-table-body":if(!customElements.get(n(e))){customElements.define(n(e),r)}break}}))}a();const b=r;const c=a;export{b as MdTableBody,c as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=md-table-body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdTableBodyCss","MdTableBody","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","presentational","render","h","Host","key","class","role","onSlotchange","el","dispatchEvent","CustomEvent","bubbles"],"sources":["src/components/md-table-body/md-table-body.css?tag=md-table-body&encapsulation=shadow","src/components/md-table-body/md-table-body.tsx"],"sourcesContent":["/* md-table-body — rowgroup for body rows */\n:host { display: contents; }\n","import { Component, Element, Host, h, Prop } from '@stencil/core';\n\n/**\n * Material Design 3 — Table Body (`<tbody>`).\n *\n * Pure presentational rowgroup. Children flow into the parent grid via\n * `display: contents`.\n */\n@Component({\n tag: 'md-table-body',\n styleUrl: 'md-table-body.css',\n shadow: true,\n})\nexport class MdTableBody {\n @Element() el!: HTMLElement;\n\n /**\n * @internal Stamped by the parent `md-table` in `frozen-header` mode. The\n * body then renders inside the focusable `.md-table__body-scroll` wrapper,\n * which itself carries `role=\"rowgroup\"` (a valid, walked-through child of\n * `role=\"table\"` even though it is a scroll tab stop). Keeping our own\n * `rowgroup` role there would NEST rowgroups — invalid, since a rowgroup may\n * only own rows (axe `aria-required-children`). Dropping to `presentation`\n * lets our rows promote into the wrapper rowgroup. Non-frozen (the default),\n * we are a direct child of the table and stay a real `rowgroup`.\n */\n @Prop({ reflect: true }) presentational: boolean = false;\n\n render() {\n return (\n <Host\n class=\"md-table-body\"\n role={this.presentational ? 'presentation' : 'rowgroup'}\n data-md-rowgroup=\"body\"\n >\n <slot\n onSlotchange={() =>\n // Row mutations happen inside THIS shadow slot — slotchange is not\n // composed, so md-table would never see reorders (a sorted row\n // kept its stale data-last stamp, losing its divider). Relay as a\n // bubbling light-DOM event the table listens for.\n this.el.dispatchEvent(new CustomEvent('mdRowgroupSlotChange', { bubbles: true }))\n }\n ></slot>\n </Host>\n );\n }\n}\n"],"mappings":"gEAAA,MAAMA,EAAiB,IAAM,0B,MCahBC,EAAWC,EAAA,MAAAD,UAAAE,EALxB,WAAAC,CAAAC,G,kEAkB2BC,KAAAC,eAA0B,KAqBpD,CAnBC,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAM,gBACNC,KAAMP,KAAKC,eAAiB,eAAiB,WAAU,mBACtC,QAEjBE,EAAA,QAAAE,IAAA,2CACEG,aAAc,IAKZR,KAAKS,GAAGC,cAAc,IAAIC,YAAY,uBAAwB,CAAEC,QAAS,U","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as e,H as t,h as l,d as i,t as n}from"./p-bSpXNc5J.js";const a=()=>`:host{display:flex;align-items:center;box-sizing:border-box;min-inline-size:0;min-block-size:var(--md-table-cell-min-height, var(--_cell-min-h, var(--_row-h, 52px)));padding-block:var(--md-table-cell-padding-block, var(--_cell-pad-block, 8px));padding-inline:var(--md-table-cell-padding-inline, var(--_cell-pad-inline, 16px));background-color:var(--md-table-cell-background, transparent);color:var(--md-table-cell-color, var(--_cell-color, inherit));font-weight:var(--_cell-weight, inherit);letter-spacing:var(--_cell-letter-spacing, inherit)}:host(.md-table-cell--align-center){justify-content:center;text-align:center}:host(.md-table-cell--align-end){justify-content:flex-end;text-align:end}:host(.md-table-cell--align-justify){text-align:justify}:host([numeric]){justify-content:flex-end;text-align:end;font-variant-numeric:tabular-nums}:host(.md-table-cell--padding-none){padding:0}:host(.md-table-cell--padding-checkbox){padding-block:0;padding-inline:var(--md-sys-spacing-inset-xs, 4px) 0;justify-content:center}:host(.md-table-cell--variant-meta){font-size:var(--md-sys-typescale-body-small-font-size, 12px);line-height:var(--md-sys-typescale-body-small-line-height, 16px);color:var(--md-table-cell-color, var(--_cell-color, var(--md-sys-color-on-surface-variant, #49454F)))}:host([ellipsis]) .md-table-cell__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-table-cell__content{min-inline-size:0;display:block}:host(.md-table-cell--head) .md-table-cell__content{white-space:nowrap}.md-table-cell__pin{flex:0 0 auto;display:var(--md-table-cell-pin-display, inline-flex);align-items:center;justify-content:center;margin-inline-end:4px;color:var(--md-table-cell-pin-color, var(--md-sys-color-primary, #6750A4))}.md-table-cell__pin svg{inline-size:var(--md-table-cell-pin-size, 16px);block-size:var(--md-table-cell-pin-size, 16px);fill:currentColor;transform:rotate(45deg)}:host(.md-table-cell--pinned.md-table-cell--align-end),:host(.md-table-cell--pinned[numeric]){justify-content:flex-start}:host([sticky='start']){position:sticky;inset-inline-start:var(--_sticky-offset, 0);z-index:1;background-color:var( --md-table-cell-sticky-bg, var(--md-table-cell-background, var(--md-sys-color-surface, #FEF7FF)) );transition:background-color var(--md-table-cell-sticky-transition, var(--_fx-fast, 150ms cubic-bezier(0.31, 0.94, 0.34, 1)))}:host([sticky='end']){position:sticky;inset-inline-end:var(--_sticky-offset, 0);z-index:1;background-color:var( --md-table-cell-sticky-bg, var(--md-table-cell-background, var(--md-sys-color-surface, #FEF7FF)) );transition:background-color var(--md-table-cell-sticky-transition, var(--_fx-fast, 150ms cubic-bezier(0.31, 0.94, 0.34, 1)))}.md-table-cell__pin-glyph{font-size:var(--md-table-cell-pin-size, 14px);line-height:1;color:inherit}:host([data-md-col-hidden]){display:none}.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}`;const s=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.align="start";this.numeric=false;this.padding="default";this.head=false;this.scope="";this.sticky="";this.colSpan=1;this.rowSpan=1;this.ellipsis=false;this.variant="body";this.noPinIndicator=false;this.pinIcon="";this.density=0}get role(){if(this.head){if(this.scope==="row"||this.scope==="rowgroup")return"rowheader";return"columnheader"}return"cell"}get showPin(){return this.head&&!!this.sticky&&this.padding!=="checkbox"&&!this.noPinIndicator}render(){const e={};if(this.colSpan>1)e.gridColumn=`span ${this.colSpan}`;if(this.rowSpan>1)e.gridRow=`span ${this.rowSpan}`;return l(i,{key:"2e429bbaf4549aed8cd9838abc43b4aaef21f2d5",class:{"md-table-cell":true,"md-table-cell--head":this.head,"md-table-cell--pinned":this.showPin,[`md-table-cell--align-${this.align}`]:true,[`md-table-cell--padding-${this.padding}`]:true,[`md-table-cell--variant-${this.variant}`]:true},role:this.role,scope:this.head&&this.scope?this.scope:undefined,"aria-colspan":this.colSpan>1?String(this.colSpan):null,"aria-rowspan":this.rowSpan>1?String(this.rowSpan):null,style:e},this.showPin&&l("span",{key:"e052c2799ede8f532a5fa11f028e3bdb2d0deafd",class:"md-table-cell__pin",part:"pin","aria-hidden":"true",title:this.sticky==="end"?"Pinned right":"Pinned left"},this.pinIcon?l("span",{class:"material-symbols-outlined md-table-cell__pin-glyph"},this.pinIcon):l("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},l("path",{d:"M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z"}))),l("span",{key:"cc4b9d10c997fe9acab195ea336a8aa3086145e5",class:"md-table-cell__content",part:"content"},l("slot",{key:"86a331c9a5824d32bb691b864ef1b8c8a3e89e70"})))}static get style(){return a()}},[257,"md-table-cell",{align:[513],numeric:[516],padding:[513],head:[516],scope:[513],sticky:[513],colSpan:[2,"colspan"],rowSpan:[2,"rowspan"],ellipsis:[516],variant:[513],noPinIndicator:[516,"no-pin-indicator"],pinIcon:[1,"pin-icon"],density:[514]}]);function c(){if(typeof customElements==="undefined"){return}const e=["md-table-cell"];e.forEach((e=>{switch(e){case"md-table-cell":if(!customElements.get(n(e))){customElements.define(n(e),s)}break}}))}c();const o=s;const r=c;export{o as MdTableCell,r as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=md-table-cell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdTableCellCss","MdTableCell","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","align","numeric","padding","head","scope","sticky","colSpan","rowSpan","ellipsis","variant","noPinIndicator","pinIcon","density","role","showPin","render","style","gridColumn","gridRow","h","Host","key","class","undefined","String","part","title","viewBox","xmlns","d"],"sources":["src/components/md-table-cell/md-table-cell.css?tag=md-table-cell&encapsulation=shadow","src/components/md-table-cell/md-table-cell.tsx"],"sourcesContent":["/* ==========================================================\n md-table-cell — single grid cell (dumb surface)\n\n Context arrives as inherited custom properties:\n from md-table: --_row-h, --_cell-pad-inline\n cast by md-table-row (::slotted):\n --_cell-min-h min height (header rows cast 56px)\n --_cell-color text color (header / selected / disabled casts)\n --_cell-weight font weight (header casts 500)\n --_cell-letter-spacing\n\n PUBLIC CSS CUSTOM PROPERTIES (override per-instance):\n --md-table-cell-color Foreground (text) color\n --md-table-cell-background Background color\n --md-table-cell-padding-inline Horizontal padding\n --md-table-cell-min-height Minimum cell height\n --md-table-cell-sticky-bg Opaque bg for sticky columns\n\n PARTS: content\n ========================================================== */\n\n:host {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-inline-size: 0;\n min-block-size: var(--md-table-cell-min-height, var(--_cell-min-h, var(--_row-h, 52px)));\n padding-block: var(--md-table-cell-padding-block, var(--_cell-pad-block, 8px));\n padding-inline: var(--md-table-cell-padding-inline, var(--_cell-pad-inline, 16px));\n background-color: var(--md-table-cell-background, transparent);\n color: var(--md-table-cell-color, var(--_cell-color, inherit));\n font-weight: var(--_cell-weight, inherit);\n letter-spacing: var(--_cell-letter-spacing, inherit);\n}\n\n/* ── Alignment ────────────────────────────────────────────── */\n:host(.md-table-cell--align-center) {\n justify-content: center;\n text-align: center;\n}\n:host(.md-table-cell--align-end) {\n justify-content: flex-end;\n text-align: end;\n}\n:host(.md-table-cell--align-justify) {\n text-align: justify;\n}\n:host([numeric]) {\n justify-content: flex-end;\n text-align: end;\n font-variant-numeric: tabular-nums;\n}\n\n/* ── Padding modes (MUI parity) ───────────────────────────── */\n:host(.md-table-cell--padding-none) {\n padding: 0;\n}\n:host(.md-table-cell--padding-checkbox) {\n padding-block: 0;\n padding-inline: var(--md-sys-spacing-inset-xs, 4px) 0;\n justify-content: center;\n}\n\n/* ── Variants ─────────────────────────────────────────────── */\n:host(.md-table-cell--variant-meta) {\n font-size: var(--md-sys-typescale-body-small-font-size, 12px);\n line-height: var(--md-sys-typescale-body-small-line-height, 16px);\n color: var(--md-table-cell-color, var(--_cell-color, var(--md-sys-color-on-surface-variant, #49454F)));\n}\n\n/* ── Ellipsis ─────────────────────────────────────────────── */\n:host([ellipsis]) .md-table-cell__content {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.md-table-cell__content {\n min-inline-size: 0;\n display: block;\n}\n\n/* Header labels stay on one line (with any adornment, e.g. a pin icon) — the\n table scrolls horizontally rather than wrapping the header when cramped. */\n:host(.md-table-cell--head) .md-table-cell__content {\n white-space: nowrap;\n}\n\n/* ── Pin indicator (auto-shown on sticky/frozen column headers) ──────\n A frozen column always advertises that it's pinned with a small pin at the\n header's inline-start. It's a non-shrinking flex sibling of the label, so the\n column grows to fit pin + label rather than clipping either. */\n.md-table-cell__pin {\n flex: 0 0 auto;\n display: var(--md-table-cell-pin-display, inline-flex);\n align-items: center;\n justify-content: center;\n margin-inline-end: 4px;\n color: var(--md-table-cell-pin-color, var(--md-sys-color-primary, #6750A4));\n}\n.md-table-cell__pin svg {\n inline-size: var(--md-table-cell-pin-size, 16px);\n block-size: var(--md-table-cell-pin-size, 16px);\n fill: currentColor;\n /* Tacked-in look, matching the interactive pin affordance used elsewhere. */\n transform: rotate(45deg);\n}\n/* When a numeric / end-aligned header is pinned, keep the pin + label together\n at the cell's inline-start so the pin never detaches to the far edge. */\n:host(.md-table-cell--pinned.md-table-cell--align-end),\n:host(.md-table-cell--pinned[numeric]) {\n justify-content: flex-start;\n}\n\n/* ── Sticky columns — need an OPAQUE surface so scrolled content\n doesn't ghost underneath. ─────────────────────────────────── */\n:host([sticky='start']) {\n position: sticky;\n /* pin-mode=\"static\": md-table stamps cumulative offsets so multiple pinned\n columns sit side-by-side; default 0 = the stacking behavior. */\n inset-inline-start: var(--_sticky-offset, 0);\n z-index: 1;\n background-color: var(\n --md-table-cell-sticky-bg,\n var(--md-table-cell-background, var(--md-sys-color-surface, #FEF7FF))\n );\n /* Match the row hover overlay's timing so the sticky column's opaque tint\n fades in lockstep with the (transparent) cells' ::before overlay — otherwise\n the sticky bg snaps instantly and the hover/selection flickers column-first.\n Header/footer rows set --md-table-cell-sticky-transition:0s (their bg is\n static, so the transition must not replay on re-render → white flash). */\n transition: background-color\n var(--md-table-cell-sticky-transition, var(--_fx-fast, 150ms cubic-bezier(0.31, 0.94, 0.34, 1)));\n}\n:host([sticky='end']) {\n position: sticky;\n inset-inline-end: var(--_sticky-offset, 0);\n z-index: 1;\n background-color: var(\n --md-table-cell-sticky-bg,\n var(--md-table-cell-background, var(--md-sys-color-surface, #FEF7FF))\n );\n transition: background-color\n var(--md-table-cell-sticky-transition, var(--_fx-fast, 150ms cubic-bezier(0.31, 0.94, 0.34, 1)));\n}\n\n/* Custom ligature pin (pin-icon) matches the SVG footprint; same tint/size\n vars apply. */\n.md-table-cell__pin-glyph {\n font-size: var(--md-table-cell-pin-size, 14px);\n line-height: 1;\n color: inherit;\n}\n\n/* Column hidden via md-table.setColumnVisibility — cell stays in the DOM\n (selection/expansion state survives), its track leaves the template. */\n:host([data-md-col-hidden]) {\n display: none;\n}\n\n/* Material Symbols ligature font must be declared INSIDE the shadow root —\n the document-level class can't cross the boundary (glyph names rendered\n as plain text otherwise). */\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 Maps the local `density` prop onto the same --md-sys-density-scale signal a\n global `data-density` ancestor sets. Declared on :host, so a local rung wins\n over the inherited global one. Every density-sensitive value in this file\n derives from that single signal by calc — never add a fixed per-rung ladder.\n ========================================================== */\n:host([density='-1']) { --md-sys-density-scale: -1; }\n:host([density='-2']) { --md-sys-density-scale: -2; }\n:host([density='-3']) { --md-sys-density-scale: -3; }\n:host([density='-4']) { --md-sys-density-scale: -4; }\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n/**\n * Material Design 3 — Table Cell.\n *\n * The visual surface for a single grid cell. Renders as either a `cell`\n * (default) or `columnheader` / `rowheader` based on `head` / `scope`.\n *\n * Props are intentionally MUI-compatible:\n * - `align=\"start\" | \"center\" | \"end\" | \"justify\"`\n * - `numeric` (right-aligns + tabular numbers)\n * - `padding=\"none\" | \"checkbox\" | \"default\"`\n * - `head` (renders as `<th>` semantics with `scope=\"col\"|\"row\"`)\n * - `sticky=\"start\" | \"end\"` (sticky first / last column)\n * - `colspan` / `rowspan` (grid spans)\n *\n * The cell is a dumb surface: row state (selected / disabled / header\n * context) arrives as inherited CSS custom properties cast by\n * `<md-table-row>` — no observers, no DOM queries.\n */\n@Component({\n tag: 'md-table-cell',\n styleUrl: 'md-table-cell.css',\n shadow: true,\n})\nexport class MdTableCell {\n /** Text alignment within the cell. */\n @Prop({ reflect: true }) align: 'start' | 'center' | 'end' | 'justify' = 'start';\n\n /** Right-align + tabular figures (for monetary / numeric data). */\n @Prop({ reflect: true }) numeric: boolean = false;\n\n /** Padding mode (MUI parity). */\n @Prop({ reflect: true }) padding: 'default' | 'none' | 'checkbox' = 'default';\n\n /** Render as a column / row header. */\n @Prop({ reflect: true }) head: boolean = false;\n\n /** Header scope (used when `head` is true). */\n @Prop({ reflect: true }) scope: 'col' | 'row' | 'colgroup' | 'rowgroup' | '' = '';\n\n /** Sticky positioning — `start` for first column, `end` for last column. */\n @Prop({ reflect: true }) sticky: 'start' | 'end' | '' = '';\n\n /** Number of columns this cell spans (CSS Grid `grid-column: span N`). */\n @Prop({ attribute: 'colspan' }) colSpan: number = 1;\n\n /** Number of rows this cell spans (CSS Grid `grid-row: span N`). */\n @Prop({ attribute: 'rowspan' }) rowSpan: number = 1;\n\n /** Disable text-wrap (single-line, ellipsis). */\n @Prop({ reflect: true }) ellipsis: boolean = false;\n\n /** Optional content variant: `body` | `meta` (smaller, dimmer). */\n @Prop({ reflect: true }) variant: 'body' | 'meta' = 'body';\n\n /**\n * Suppress the automatic pin indicator that a sticky header cell shows.\n * By default a frozen (sticky) column always advertises that it's pinned\n * with a small pin icon in its header; set this to opt out (e.g. a sticky\n * checkbox column — which is auto-skipped anyway).\n */\n @Prop({ reflect: true, attribute: 'no-pin-indicator' }) noPinIndicator: boolean = false;\n\n /**\n * Custom pin-indicator icon: a Material Symbols ligature (e.g. \"anchor\",\n * \"keep\"). Empty = the built-in 45° push-pin SVG. Usually set ONCE on\n * md-table via its `pin-icon` prop, which casts the value to every pinned\n * header cell; setting it here directly overrides the cast.\n */\n @Prop({ attribute: 'pin-icon' }) pinIcon: string = '';\n\n /**\n * Local density rung. Drives the same `--md-sys-density-scale` signal that a\n * global `data-density` ancestor sets, so a local value simply overrides the\n * inherited one. 0 = default, -4 = ultra-compact.\n */\n @Prop({ reflect: true }) density: 0 | -1 | -2 | -3 | -4 = 0;\n\n private get role(): 'columnheader' | 'rowheader' | 'cell' {\n if (this.head) {\n if (this.scope === 'row' || this.scope === 'rowgroup') return 'rowheader';\n return 'columnheader';\n }\n return 'cell';\n }\n\n /**\n * A frozen (sticky) column header always shows a pin affordance so users can\n * tell at a glance the column is pinned. Skipped for the checkbox column\n * (no label) and when explicitly opted out.\n */\n private get showPin(): boolean {\n return this.head && !!this.sticky && this.padding !== 'checkbox' && !this.noPinIndicator;\n }\n\n render() {\n const style: { [k: string]: string } = {};\n if (this.colSpan > 1) style.gridColumn = `span ${this.colSpan}`;\n if (this.rowSpan > 1) style.gridRow = `span ${this.rowSpan}`;\n\n return (\n <Host\n class={{\n 'md-table-cell': true,\n 'md-table-cell--head': this.head,\n 'md-table-cell--pinned': this.showPin,\n [`md-table-cell--align-${this.align}`]: true,\n [`md-table-cell--padding-${this.padding}`]: true,\n [`md-table-cell--variant-${this.variant}`]: true,\n }}\n role={this.role}\n scope={this.head && this.scope ? this.scope : undefined}\n aria-colspan={this.colSpan > 1 ? String(this.colSpan) : null}\n aria-rowspan={this.rowSpan > 1 ? String(this.rowSpan) : null}\n style={style}\n >\n {this.showPin && (\n <span\n class=\"md-table-cell__pin\"\n part=\"pin\"\n aria-hidden=\"true\"\n title={this.sticky === 'end' ? 'Pinned right' : 'Pinned left'}\n >\n {this.pinIcon ? (\n <span class=\"material-symbols-outlined md-table-cell__pin-glyph\">{this.pinIcon}</span>\n ) : (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z\" />\n </svg>\n )}\n </span>\n )}\n <span class=\"md-table-cell__content\" part=\"content\">\n <slot />\n </span>\n </Host>\n );\n }\n}\n"],"mappings":"gEAAA,MAAMA,EAAiB,IAAM,+0G,MCyBhBC,EAAWC,EAAA,MAAAD,UAAAE,EALxB,WAAAC,CAAAC,G,kEAO2BC,KAAAC,MAAgD,QAGhDD,KAAAE,QAAmB,MAGnBF,KAAAG,QAA2C,UAG3CH,KAAAI,KAAgB,MAGhBJ,KAAAK,MAAsD,GAGtDL,KAAAM,OAA+B,GAGxBN,KAAAO,QAAkB,EAGlBP,KAAAQ,QAAkB,EAGzBR,KAAAS,SAAoB,MAGpBT,KAAAU,QAA2B,OAQIV,KAAAW,eAA0B,MAQjDX,KAAAY,QAAkB,GAO1BZ,KAAAa,QAAiC,CA8D3D,CA5DC,QAAYC,GACV,GAAId,KAAKI,KAAM,CACb,GAAIJ,KAAKK,QAAU,OAASL,KAAKK,QAAU,WAAY,MAAO,YAC9D,MAAO,c,CAET,MAAO,M,CAQT,WAAYU,GACV,OAAOf,KAAKI,QAAUJ,KAAKM,QAAUN,KAAKG,UAAY,aAAeH,KAAKW,c,CAG5E,MAAAK,GACE,MAAMC,EAAiC,GACvC,GAAIjB,KAAKO,QAAU,EAAGU,EAAMC,WAAa,QAAQlB,KAAKO,UACtD,GAAIP,KAAKQ,QAAU,EAAGS,EAAME,QAAU,QAAQnB,KAAKQ,UAEnD,OACEY,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,gBAAiB,KACjB,sBAAuBvB,KAAKI,KAC5B,wBAAyBJ,KAAKe,QAC9B,CAAC,wBAAwBf,KAAKC,SAAU,KACxC,CAAC,0BAA0BD,KAAKG,WAAY,KAC5C,CAAC,0BAA0BH,KAAKU,WAAY,MAE9CI,KAAMd,KAAKc,KACXT,MAAOL,KAAKI,MAAQJ,KAAKK,MAAQL,KAAKK,MAAQmB,UAAS,eACzCxB,KAAKO,QAAU,EAAIkB,OAAOzB,KAAKO,SAAW,KAAI,eAC9CP,KAAKQ,QAAU,EAAIiB,OAAOzB,KAAKQ,SAAW,KACxDS,MAAOA,GAENjB,KAAKe,SACJK,EAAA,QAAAE,IAAA,2CACEC,MAAM,qBACNG,KAAK,MAAK,cACE,OACZC,MAAO3B,KAAKM,SAAW,MAAQ,eAAiB,eAE/CN,KAAKY,QACJQ,EAAA,QAAMG,MAAM,sDAAsDvB,KAAKY,SAEvEQ,EAAA,OAAKQ,QAAQ,YAAYC,MAAM,8BAC7BT,EAAA,QAAMU,EAAE,kEAKhBV,EAAA,QAAAE,IAAA,2CAAMC,MAAM,yBAAyBG,KAAK,WACxCN,EAAA,QAAAE,IAAA,8C","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as e,H as a,f as o,h as r,d as t,t as n}from"./p-bSpXNc5J.js";const s=()=>`:host{--_color:var(--md-table-container-color, var(--md-sys-color-surface-container-low, #F7F2FA));--_shape:var(--md-table-container-shape, var(--md-sys-shape-corner-extra-large, 24px));--_elevation:var(--md-table-container-elevation, var(--md-sys-elevation-1, 0 1px 2px rgba(0, 0, 0, 0.08)));--_outline-color:var(--md-table-container-outline-color, var(--md-sys-color-outline-variant, #CAC4D0));--_outline-width:var(--md-table-container-outline-width, 1px);--_max-h:none;--_min-h:0;display:flex;flex-direction:column;background-color:var(--_color);border-radius:var(--_shape);position:relative;overflow:hidden;isolation:isolate;inline-size:100%;box-sizing:border-box;transition:box-shadow var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), background-color var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-table-container--shape-extra-large){--_shape:var(--md-sys-shape-corner-extra-large, 28px)}:host(.md-table-container--shape-large){--_shape:var(--md-sys-shape-corner-large, 16px)}:host(.md-table-container--shape-medium){--_shape:var(--md-sys-shape-corner-medium, 12px)}:host(.md-table-container--shape-small){--_shape:var(--md-sys-shape-corner-small, 8px)}:host(.md-table-container--shape-none){--_shape:0}:host(.md-table-container--elevated){--md-table-surface:var(--md-sys-color-surface-container-low, #F7F2FA);background-color:var(--md-table-surface);box-shadow:var(--_elevation)}:host(.md-table-container--outlined){--md-table-surface:var(--md-sys-color-surface, #FFFBFE);background-color:var(--md-table-surface);box-shadow:none;border:var(--_outline-width) solid var(--_outline-color)}:host(.md-table-container--filled){--md-table-surface:var(--md-sys-color-surface-container-low, #F7F2FA);background-color:var(--md-table-surface);box-shadow:none}:host(.md-table-container--flat){--md-table-surface:var(--md-sys-color-surface, #FEF7FF);background-color:transparent;box-shadow:none}:host([elevation='0']){box-shadow:none}:host([elevation='1']){box-shadow:var(--md-sys-elevation-1, 0 1px 2px rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.15))}:host([elevation='2']){box-shadow:var(--md-sys-elevation-2, 0 1px 2px rgba(0, 0, 0, 0.3), 0 2px 6px 2px rgba(0, 0, 0, 0.15))}:host([elevation='3']){box-shadow:var(--md-sys-elevation-3, 0 4px 8px 3px rgba(0, 0, 0, 0.15), 0 1px 3px rgba(0, 0, 0, 0.3))}:host([elevation='4']){box-shadow:var(--md-sys-elevation-4, 0 6px 10px 4px rgba(0, 0, 0, 0.15), 0 2px 3px rgba(0, 0, 0, 0.3))}:host([elevation='5']){box-shadow:var(--md-sys-elevation-5, 0 8px 12px 6px rgba(0, 0, 0, 0.15), 0 4px 4px rgba(0, 0, 0, 0.3))}:host(.md-table-container--vibrant){background-color:color-mix(in srgb, var(--md-sys-color-primary, #6750A4) 6%, var(--md-sys-color-surface, #FEF7FF));--md-table-head-bg:var(--md-sys-color-primary-container, #EADDFF);--md-table-head-color:var(--md-sys-color-on-primary-container, #21005D);--md-table-sort-label-color:var(--md-sys-color-on-primary-container, #21005D);--md-table-sort-label-active-color:var(--md-sys-color-primary, #6750A4);--md-table-row-hover-color:var(--md-sys-color-primary, #6750A4);--md-table-row-selected-bg:var(--md-sys-color-tertiary-container, #FFD8E4);--md-table-row-selected-color:var(--md-sys-color-on-tertiary-container, #31111D);--md-table-divider-color:color-mix(in srgb, var(--md-sys-color-primary, #6750A4) 22%, transparent);--md-table-stripe-color:color-mix(in srgb, var(--md-sys-color-primary, #6750A4) 7%, transparent)}.md-table-container__top:empty,.md-table-container__bottom:empty{display:none}.md-table-container__top,.md-table-container__bottom{display:flex;flex-direction:column;flex:0 0 auto}.md-table-container__scroll{flex:1 1 auto;min-block-size:var(--_min-h);overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;position:relative}:host(.md-table-container--scrollable) .md-table-container__scroll{max-block-size:var(--_max-h);overflow-y:auto}:host(.md-table-container--frozen-header) .md-table-container__scroll{overflow:visible;max-block-size:none}.md-table-container__scroll::-webkit-scrollbar{width:10px;height:10px}.md-table-container__scroll::-webkit-scrollbar-thumb{background:var(--md-sys-color-surface-container-highest, #E6E0E9);border-radius:999px;border:2px solid transparent;background-clip:content-box}.md-table-container__scroll::-webkit-scrollbar-thumb:hover{background:var(--md-sys-color-outline-variant, #CAC4D0);background-clip:content-box}.md-table-container__scroll::-webkit-scrollbar-corner{background:transparent}@media (prefers-reduced-motion: reduce){:host{transition:none}}`;const i=e(class e extends a{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.variant="elevated";this.shape="large";this.maxHeight="";this.minHeight="";this.vibrant=false}connectedCallback(){if(typeof MutationObserver==="undefined")return;this.frozenMirror=new MutationObserver((()=>o(this)));this.frozenMirror.observe(this.el,{subtree:true,attributes:true,attributeFilter:["frozen-header"]});this.childMirror=new MutationObserver((e=>{for(const a of e){for(const e of[...a.addedNodes,...a.removedNodes]){if(e.tagName==="MD-TABLE"){o(this);return}}}}));this.childMirror.observe(this.el,{childList:true})}disconnectedCallback(){this.frozenMirror?.disconnect();this.frozenMirror=undefined;this.childMirror?.disconnect();this.childMirror=undefined}handlePaginationChange(e){if(e.target?.tagName!=="MD-TABLE-PAGINATION")return;const a=this.el.querySelector("md-table");a?.dispatchEvent(new CustomEvent("mdMotionArm"))}render(){const e={};if(this.maxHeight){e["--_max-h"]=this.maxHeight;e["--md-table-body-max-h"]=this.maxHeight}if(this.minHeight)e["--_min-h"]=this.minHeight;const a=!!this.el.querySelector("md-table[frozen-header]");return r(t,{key:"3ad67d59fd5a07811127cbe176dcd9ce883a3bc0",class:{"md-table-container":true,[`md-table-container--${this.variant}`]:true,[`md-table-container--shape-${this.shape}`]:true,"md-table-container--scrollable":!!this.maxHeight,"md-table-container--frozen-header":a,"md-table-container--vibrant":this.vibrant},style:e},r("div",{key:"8bd0ad9d9b2aa2c09da06e21d184bfc287d582ee",class:"md-table-container__top",part:"top"},r("slot",{key:"f2fccf15e3426f69f9a865b8130db1f8369e3c99",name:"top"})),r("div",{key:"12e240cc907c0cb2812eb1852758d53c6a13ed99",class:"md-table-container__scroll",part:"scroll"},r("slot",{key:"8c70dba498541b018ad4c2678dc7b4f5b89ef953"})),r("div",{key:"15eebc6d105517b22b718fe3792721fb9ebd65fb",class:"md-table-container__bottom",part:"bottom"},r("slot",{key:"b5d777b38163ce20cbad2caf4196f6d08fa3b740",name:"bottom"})))}get el(){return this}static get style(){return s()}},[257,"md-table-container",{variant:[513],shape:[513],maxHeight:[1,"max-height"],minHeight:[1,"min-height"],vibrant:[516],elevation:[514]},[[2,"mdPageChange","handlePaginationChange"],[2,"mdRowsPerPageChange","handlePaginationChange"]]]);function l(){if(typeof customElements==="undefined"){return}const e=["md-table-container"];e.forEach((e=>{switch(e){case"md-table-container":if(!customElements.get(n(e))){customElements.define(n(e),i)}break}}))}l();const c=i;const d=l;export{c as MdTableContainer,d as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=md-table-container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdTableContainerCss","MdTableContainer","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","variant","shape","maxHeight","minHeight","vibrant","connectedCallback","MutationObserver","frozenMirror","forceUpdate","observe","el","subtree","attributes","attributeFilter","childMirror","muts","m","n","addedNodes","removedNodes","tagName","childList","disconnectedCallback","disconnect","undefined","handlePaginationChange","e","target","table","querySelector","dispatchEvent","CustomEvent","render","style","frozen","h","Host","key","class","part","name"],"sources":["src/components/md-table-container/md-table-container.css?tag=md-table-container&encapsulation=shadow","src/components/md-table-container/md-table-container.tsx"],"sourcesContent":["/* ==========================================================\n md-table-container — MD3 surface wrapper for tables\n\n PUBLIC CSS CUSTOM PROPERTIES:\n --md-table-container-color Surface background\n --md-table-container-shape Border-radius\n --md-table-container-elevation Box-shadow\n --md-table-container-outline-color Outline color (variant=outlined)\n --md-table-container-outline-width Outline width (variant=outlined)\n\n CSS PARTS:\n top Wrapper around `slot[name=\"top\"]` (toolbar etc.)\n scroll The scroll viewport that contains the table\n bottom Wrapper around `slot[name=\"bottom\"]` (pagination etc.)\n ========================================================== */\n:host {\n --_color: var(--md-table-container-color, var(--md-sys-color-surface-container-low, #F7F2FA));\n --_shape: var(--md-table-container-shape, var(--md-sys-shape-corner-extra-large, 24px));\n --_elevation: var(--md-table-container-elevation, var(--md-sys-elevation-1, 0 1px 2px rgba(0, 0, 0, 0.08)));\n --_outline-color: var(--md-table-container-outline-color, var(--md-sys-color-outline-variant, #CAC4D0));\n --_outline-width: var(--md-table-container-outline-width, 1px);\n\n --_max-h: none;\n --_min-h: 0;\n\n display: flex;\n flex-direction: column;\n background-color: var(--_color);\n border-radius: var(--_shape);\n position: relative;\n overflow: hidden;\n isolation: isolate;\n inline-size: 100%;\n box-sizing: border-box;\n transition:\n box-shadow var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),\n background-color var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));\n}\n\n/* Shape token map */\n:host(.md-table-container--shape-extra-large) { --_shape: var(--md-sys-shape-corner-extra-large, 28px); }\n:host(.md-table-container--shape-large) { --_shape: var(--md-sys-shape-corner-large, 16px); }\n:host(.md-table-container--shape-medium) { --_shape: var(--md-sys-shape-corner-medium, 12px); }\n:host(.md-table-container--shape-small) { --_shape: var(--md-sys-shape-corner-small, 8px); }\n:host(.md-table-container--shape-none) { --_shape: 0; }\n\n/* Variants. Each also exposes its own surface as the opaque background for\n sticky (fixed) columns, so a pinned column matches the table surface instead\n of defaulting to plain `surface` (which reads whiter than the container). */\n:host(.md-table-container--elevated) {\n --md-table-surface: var(--md-sys-color-surface-container-low, #F7F2FA);\n background-color: var(--md-table-surface);\n box-shadow: var(--_elevation);\n}\n:host(.md-table-container--outlined) {\n --md-table-surface: var(--md-sys-color-surface, #FFFBFE);\n background-color: var(--md-table-surface);\n box-shadow: none;\n border: var(--_outline-width) solid var(--_outline-color);\n}\n:host(.md-table-container--filled) {\n --md-table-surface: var(--md-sys-color-surface-container-low, #F7F2FA);\n background-color: var(--md-table-surface);\n box-shadow: none;\n}\n:host(.md-table-container--flat) {\n --md-table-surface: var(--md-sys-color-surface, #FEF7FF);\n background-color: transparent;\n box-shadow: none;\n}\n\n/* Explicit elevation level (overrides the variant's default shadow). Placed\n after the variant rules so it wins at equal specificity. */\n:host([elevation='0']) {\n box-shadow: none;\n}\n:host([elevation='1']) {\n box-shadow: var(--md-sys-elevation-1, 0 1px 2px rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.15));\n}\n:host([elevation='2']) {\n box-shadow: var(--md-sys-elevation-2, 0 1px 2px rgba(0, 0, 0, 0.3), 0 2px 6px 2px rgba(0, 0, 0, 0.15));\n}\n:host([elevation='3']) {\n box-shadow: var(--md-sys-elevation-3, 0 4px 8px 3px rgba(0, 0, 0, 0.15), 0 1px 3px rgba(0, 0, 0, 0.3));\n}\n:host([elevation='4']) {\n box-shadow: var(--md-sys-elevation-4, 0 6px 10px 4px rgba(0, 0, 0, 0.15), 0 2px 3px rgba(0, 0, 0, 0.3));\n}\n:host([elevation='5']) {\n box-shadow: var(--md-sys-elevation-5, 0 8px 12px 6px rgba(0, 0, 0, 0.15), 0 4px 4px rgba(0, 0, 0, 0.3));\n}\n\n/* Vibrant tonality — a primary-tinted surface with a coloured header, primary\n hover and tertiary selection. Cascades into the contained md-table via the\n public custom properties. */\n:host(.md-table-container--vibrant) {\n background-color: color-mix(in srgb, var(--md-sys-color-primary, #6750A4) 6%, var(--md-sys-color-surface, #FEF7FF));\n --md-table-head-bg: var(--md-sys-color-primary-container, #EADDFF);\n --md-table-head-color: var(--md-sys-color-on-primary-container, #21005D);\n --md-table-sort-label-color: var(--md-sys-color-on-primary-container, #21005D);\n --md-table-sort-label-active-color: var(--md-sys-color-primary, #6750A4);\n --md-table-row-hover-color: var(--md-sys-color-primary, #6750A4);\n --md-table-row-selected-bg: var(--md-sys-color-tertiary-container, #FFD8E4);\n --md-table-row-selected-color: var(--md-sys-color-on-tertiary-container, #31111D);\n --md-table-divider-color: color-mix(in srgb, var(--md-sys-color-primary, #6750A4) 22%, transparent);\n --md-table-stripe-color: color-mix(in srgb, var(--md-sys-color-primary, #6750A4) 7%, transparent);\n}\n\n/* Top / bottom slot wrappers */\n.md-table-container__top:empty,\n.md-table-container__bottom:empty {\n display: none;\n}\n\n.md-table-container__top,\n.md-table-container__bottom {\n display: flex;\n flex-direction: column;\n flex: 0 0 auto;\n}\n\n/* Scroll viewport */\n.md-table-container__scroll {\n flex: 1 1 auto;\n min-block-size: var(--_min-h);\n /* Horizontal scrolling only by default: the wrapper is NOT a vertical\n scroll context unless max-height caps it (rule below) — so a transient\n vertical overflow (async row swaps, animation frames) can never pop a\n space-taking bar into the card and shift the content. */\n overflow-x: auto;\n overflow-y: hidden;\n overscroll-behavior: contain;\n /* NB: no `scrollbar-width` — modern Chrome ignores the styled\n ::-webkit-scrollbar below when it's set, which would leave a 0-height macOS\n overlay bar (invisible) for the horizontal scroll. Omitting it lets the\n classic, space-taking scrollbar render. */\n /* Required for sticky positioning to work inside the container. */\n position: relative;\n}\n\n:host(.md-table-container--scrollable) .md-table-container__scroll {\n max-block-size: var(--_max-h);\n overflow-y: auto;\n}\n\n/* Frozen header: the md-table owns its own body scroll, so the container's\n scroll wrapper must not also cap/scroll (that would double-scroll and put the\n scrollbar back beside the header). */\n:host(.md-table-container--frozen-header) .md-table-container__scroll {\n overflow: visible;\n max-block-size: none;\n}\n\n/* Pretty scrollbars (WebKit) */\n.md-table-container__scroll::-webkit-scrollbar {\n /* Physical width/height — ::-webkit-scrollbar ignores logical properties. */\n width: 10px;\n height: 10px;\n}\n.md-table-container__scroll::-webkit-scrollbar-thumb {\n background: var(--md-sys-color-surface-container-highest, #E6E0E9);\n border-radius: 999px;\n border: 2px solid transparent;\n background-clip: content-box;\n}\n.md-table-container__scroll::-webkit-scrollbar-thumb:hover {\n background: var(--md-sys-color-outline-variant, #CAC4D0);\n background-clip: content-box;\n}\n/* The square where the two bars meet. Left unstyled it paints the UA default —\n an opaque WHITE block that reads as a hole punched in the corner of a dark\n table. It is the only scrollbar pseudo-element that shows when BOTH axes\n scroll, which is why it survived unnoticed on single-axis surfaces. */\n.md-table-container__scroll::-webkit-scrollbar-corner {\n background: transparent;\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host { transition: none; }\n}\n","import { Component, Host, h, Prop, Element, Listen, forceUpdate } from '@stencil/core';\n\n/**\n * Material Design 3 — Table Container\n *\n * The outer surface that wraps a `<md-table>`, optional `<md-table-toolbar>`\n * and `<md-table-pagination>`. Provides elevation, shape, and the scroll\n * context (with optional max-height) for sticky headers / columns.\n *\n * Compose freely:\n *\n * ```html\n * <md-table-container variant=\"elevated\" max-height=\"480px\">\n * <md-table-toolbar headline=\"Users\"></md-table-toolbar>\n * <md-table>…</md-table>\n * <md-table-pagination></md-table-pagination>\n * </md-table-container>\n * ```\n */\n@Component({\n tag: 'md-table-container',\n styleUrl: 'md-table-container.css',\n shadow: true,\n})\nexport class MdTableContainer {\n @Element() el!: HTMLElement;\n\n /**\n * Visual surface variant.\n * - `elevated` — surface-container-low + box-shadow\n * - `outlined` — surface + 1px outline\n * - `filled` — surface-container-low, no shadow / outline\n * - `flat` — transparent (use when nesting inside another surface)\n */\n @Prop({ reflect: true }) variant: 'elevated' | 'outlined' | 'filled' | 'flat' = 'elevated';\n\n /**\n * Container shape — large for dashboards, medium for dense, small for compact.\n * Maps to MD3 `--md-sys-shape-corner-{size}` tokens.\n */\n @Prop({ reflect: true }) shape: 'extra-large' | 'large' | 'medium' | 'small' | 'none' = 'large';\n\n /**\n * If set, the table area becomes scrollable up to this max-height\n * (e.g. `\"480px\"`, `\"60vh\"`). Required for sticky header / column.\n */\n @Prop({ attribute: 'max-height' }) maxHeight: string = '';\n\n /**\n * If set, the table area becomes scrollable up to this min-height\n * (useful to keep an empty-state visible).\n */\n @Prop({ attribute: 'min-height' }) minHeight: string = '';\n\n /**\n * Vibrant tonality: tints the whole table with primary/tertiary container\n * tones (coloured header, primary hover, tertiary selection, primary-tinted\n * surface). Cascades to the contained md-table via CSS custom properties.\n */\n @Prop({ reflect: true }) vibrant: boolean = false;\n\n /**\n * Explicit MD3 elevation level (0–5), overriding the variant's default\n * shadow. Handy to raise/flatten the surface without changing `variant`\n * (e.g. `variant=\"outlined\" elevation=\"2\"`). Also settable via\n * `--md-table-container-elevation`.\n */\n @Prop({ reflect: true }) elevation?: 0 | 1 | 2 | 3 | 4 | 5;\n\n /**\n * Bracket page changes with the table's built-in FLIP motion. Pagination is\n * slotted into the CONTAINER (not the table), so its events never pass\n * through md-table — the container hears them instead, in the CAPTURE phase\n * (i.e. BEFORE the consumer's own handler mutates the rows), and arms the\n * slotted table synchronously via the internal `mdMotionArm` event. The\n * table's rAF-deferred play() then animates whatever the handler changed.\n */\n // The frozen class mirrors the slotted table's reflected frozen-header\n // attribute — that can change at RUNTIME (the prop is reactive), so watch\n // for it; without this the mirror goes stale and the two scroll owners\n // disagree (nested scrollbars).\n private frozenMirror?: MutationObserver;\n private childMirror?: MutationObserver;\n\n connectedCallback() {\n if (typeof MutationObserver === 'undefined') return;\n // Two narrowly-scoped observers: subtree childList would forceUpdate on\n // EVERY row mutation (pagination re-slices, sorts). We only care about\n // (a) the frozen-header attribute anywhere below, (b) direct children\n // changing (the md-table itself being added/removed).\n this.frozenMirror = new MutationObserver(() => forceUpdate(this));\n this.frozenMirror.observe(this.el, {\n subtree: true,\n attributes: true,\n attributeFilter: ['frozen-header'],\n });\n this.childMirror = new MutationObserver((muts) => {\n for (const m of muts) {\n for (const n of [...m.addedNodes, ...m.removedNodes]) {\n if ((n as HTMLElement).tagName === 'MD-TABLE') {\n forceUpdate(this);\n return;\n }\n }\n }\n });\n this.childMirror.observe(this.el, { childList: true });\n }\n\n disconnectedCallback() {\n this.frozenMirror?.disconnect();\n this.frozenMirror = undefined;\n this.childMirror?.disconnect();\n this.childMirror = undefined;\n }\n\n @Listen('mdPageChange', { capture: true })\n @Listen('mdRowsPerPageChange', { capture: true })\n handlePaginationChange(e: CustomEvent) {\n // Only bracket events coming from a slotted pagination bar — a nested table\n // (which manages its own motion) swallows its internal events already.\n if ((e.target as HTMLElement | null)?.tagName !== 'MD-TABLE-PAGINATION') return;\n const table = this.el.querySelector('md-table');\n table?.dispatchEvent(new CustomEvent('mdMotionArm'));\n }\n\n render() {\n const style: { [k: string]: string } = {};\n if (this.maxHeight) {\n style['--_max-h'] = this.maxHeight;\n // A frozen-header md-table owns its own body scroll — hand the\n // max-height to it so the scrollbar spans only the body.\n style['--md-table-body-max-h'] = this.maxHeight;\n }\n if (this.minHeight) style['--_min-h'] = this.minHeight;\n\n // Mirrors the slotted table's EXPLICIT frozen-header prop (reflected as an\n // attribute), so the two never disagree about who scrolls — a mismatch\n // would nest two scrollbars. max-height only controls the SIZE of the\n // frozen body; the architecture is opt-in on the table.\n const frozen = !!this.el.querySelector('md-table[frozen-header]');\n\n return (\n <Host\n class={{\n 'md-table-container': true,\n [`md-table-container--${this.variant}`]: true,\n [`md-table-container--shape-${this.shape}`]: true,\n 'md-table-container--scrollable': !!this.maxHeight,\n 'md-table-container--frozen-header': frozen,\n 'md-table-container--vibrant': this.vibrant,\n }}\n style={style}\n >\n <div class=\"md-table-container__top\" part=\"top\">\n <slot name=\"top\"></slot>\n </div>\n\n <div class=\"md-table-container__scroll\" part=\"scroll\">\n <slot></slot>\n </div>\n\n <div class=\"md-table-container__bottom\" part=\"bottom\">\n <slot name=\"bottom\"></slot>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"uEAAA,MAAMA,EAAsB,IAAM,0iJ,MCwBrBC,EAAgBC,EAAA,MAAAD,UAAAE,EAL7B,WAAAC,CAAAC,G,kEAe2BC,KAAAC,QAAuD,WAMvDD,KAAAE,MAA+D,QAMrDF,KAAAG,UAAoB,GAMpBH,KAAAI,UAAoB,GAO9BJ,KAAAK,QAAmB,KA6G7C,CApFC,iBAAAC,GACE,UAAWC,mBAAqB,YAAa,OAK7CP,KAAKQ,aAAe,IAAID,kBAAiB,IAAME,EAAYT,QAC3DA,KAAKQ,aAAaE,QAAQV,KAAKW,GAAI,CACjCC,QAAS,KACTC,WAAY,KACZC,gBAAiB,CAAC,mBAEpBd,KAAKe,YAAc,IAAIR,kBAAkBS,IACvC,IAAK,MAAMC,KAAKD,EAAM,CACpB,IAAK,MAAME,IAAK,IAAID,EAAEE,cAAeF,EAAEG,cAAe,CACpD,GAAKF,EAAkBG,UAAY,WAAY,CAC7CZ,EAAYT,MACZ,M,OAKRA,KAAKe,YAAYL,QAAQV,KAAKW,GAAI,CAAEW,UAAW,M,CAGjD,oBAAAC,GACEvB,KAAKQ,cAAcgB,aACnBxB,KAAKQ,aAAeiB,UACpBzB,KAAKe,aAAaS,aAClBxB,KAAKe,YAAcU,S,CAKrB,sBAAAC,CAAuBC,GAGrB,GAAKA,EAAEC,QAA+BP,UAAY,sBAAuB,OACzE,MAAMQ,EAAQ7B,KAAKW,GAAGmB,cAAc,YACpCD,GAAOE,cAAc,IAAIC,YAAY,e,CAGvC,MAAAC,GACE,MAAMC,EAAiC,GACvC,GAAIlC,KAAKG,UAAW,CAClB+B,EAAM,YAAclC,KAAKG,UAGzB+B,EAAM,yBAA2BlC,KAAKG,S,CAExC,GAAIH,KAAKI,UAAW8B,EAAM,YAAclC,KAAKI,UAM7C,MAAM+B,IAAWnC,KAAKW,GAAGmB,cAAc,2BAEvC,OACEM,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,qBAAsB,KACtB,CAAC,uBAAuBvC,KAAKC,WAAY,KACzC,CAAC,6BAA6BD,KAAKE,SAAU,KAC7C,mCAAoCF,KAAKG,UACzC,oCAAqCgC,EACrC,8BAA+BnC,KAAKK,SAEtC6B,MAAOA,GAEPE,EAAA,OAAAE,IAAA,2CAAKC,MAAM,0BAA0BC,KAAK,OACxCJ,EAAA,QAAAE,IAAA,2CAAMG,KAAK,SAGbL,EAAA,OAAAE,IAAA,2CAAKC,MAAM,6BAA6BC,KAAK,UAC3CJ,EAAA,QAAAE,IAAA,8CAGFF,EAAA,OAAAE,IAAA,2CAAKC,MAAM,6BAA6BC,KAAK,UAC3CJ,EAAA,QAAAE,IAAA,2CAAMG,KAAK,Y","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as t,H as e,h as s,d as n,t as i}from"./p-bSpXNc5J.js";import{d as a}from"./p-IWA0yIjJ.js";import{d as o}from"./p-Hm3X1iai.js";const d=()=>`:host{display:inline-flex;align-items:center;justify-content:center}md-icon-button{transition:transform var(--md-sys-motion-spring-spatial-fast-duration, 350ms) var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.9))}:host(.md-table-expand-toggle--expanded) md-icon-button{transform:rotate(var(--md-table-expand-toggle-rotation, 90deg))}@media (prefers-reduced-motion: reduce){md-icon-button{transition-duration:0.01ms !important}}`;const r=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.buttonLabel="Expand row";this.icon="chevron_right";this.expanded=false;this.row=null;this.onRowExpandedChange=t=>{this.expanded=!!t.detail?.expanded};this.onClick=t=>{t.stopPropagation();void this.row?.toggle?.()}}bindRow(){this.row=this.el.closest("md-table-row");this.expanded=!!this.row?.expanded;this.row?.addEventListener("mdRowExpandedChange",this.onRowExpandedChange)}connectedCallback(){this.bindRow()}disconnectedCallback(){this.row?.removeEventListener("mdRowExpandedChange",this.onRowExpandedChange);this.row=null}render(){return s(n,{key:"9f420bcf56efa5d34f8aa90df23d0149ef66f87b",class:{"md-table-expand-toggle":true,"md-table-expand-toggle--expanded":this.expanded}},s("md-icon-button",{key:"50647cd52fbc410f4df374db634e121b51faef54",size:"xs",icon:this.icon,"aria-label":this.buttonLabel,"aria-expanded":this.expanded?"true":"false",onClick:this.onClick}))}get el(){return this}static get style(){return d()}},[1,"md-table-expand-toggle",{buttonLabel:[1,"button-label"],icon:[1],expanded:[32]}]);function l(){if(typeof customElements==="undefined"){return}const t=["md-table-expand-toggle","md-icon-button","md-ripple"];t.forEach((t=>{switch(t){case"md-table-expand-toggle":if(!customElements.get(i(t))){customElements.define(i(t),r)}break;case"md-icon-button":if(!customElements.get(i(t))){a()}break;case"md-ripple":if(!customElements.get(i(t))){o()}break}}))}l();const c=r;const m=l;export{c as MdTableExpandToggle,m as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=md-table-expand-toggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdTableExpandToggleCss","MdTableExpandToggle","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","buttonLabel","icon","expanded","row","onRowExpandedChange","e","detail","onClick","stopPropagation","toggle","bindRow","el","closest","addEventListener","connectedCallback","disconnectedCallback","removeEventListener","render","h","Host","key","class","size"],"sources":["src/components/md-table-expand-toggle/md-table-expand-toggle.css?tag=md-table-expand-toggle&encapsulation=shadow","src/components/md-table-expand-toggle/md-table-expand-toggle.tsx"],"sourcesContent":["/* ==========================================================\n md-table-expand-toggle — the standard expand caret for an\n expandable md-table-row.\n\n One consistent size everywhere (xs / 32px button, 20px icon); the\n chevron rotates 90° (right → down) on the MD3 spatial spring while\n the row's accordion zone opens on its own matched spring.\n\n PUBLIC CSS CUSTOM PROPERTIES:\n --md-table-expand-toggle-rotation Expanded rotation (default 90deg)\n ========================================================== */\n\n:host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\nmd-icon-button {\n transition: transform var(--md-sys-motion-spring-spatial-fast-duration, 350ms)\n var(--md-sys-motion-spring-spatial-fast-easing, cubic-bezier(0.42, 1.67, 0.21, 0.9));\n}\n\n:host(.md-table-expand-toggle--expanded) md-icon-button {\n transform: rotate(var(--md-table-expand-toggle-rotation, 90deg));\n}\n\n@media (prefers-reduced-motion: reduce) {\n md-icon-button {\n transition-duration: 0.01ms !important;\n }\n}\n","import { Component, Host, h, Prop, Element, State } from '@stencil/core';\n\ntype ExpandableRow = HTMLElement & { expanded: boolean; toggle: () => Promise<void> };\n\n/**\n * Material Design 3 — Table Expand Toggle.\n *\n * The STANDARD expand caret for an expandable `<md-table-row>`: one consistent\n * size (xs / 32px — fits every density incl. compact rows, matching the 32px\n * checkbox precedent), a chevron that rotates 90° on the spatial spring when\n * the row opens, wired click→row.toggle() and aria-expanded out of the box.\n *\n * Slot it INSIDE a cell of the expandable row (never as a bare row child —\n * rows are subgrid containers where any extra child would consume a column\n * track):\n *\n * ```html\n * <md-table-row expandable>\n * <md-table-cell padding=\"checkbox\"><md-table-expand-toggle></md-table-expand-toggle></md-table-cell>\n * <md-table-cell>…</md-table-cell>\n * <div slot=\"expanded\">Details…</div>\n * </md-table-row>\n * ```\n */\n@Component({\n tag: 'md-table-expand-toggle',\n styleUrl: 'md-table-expand-toggle.css',\n shadow: true,\n})\nexport class MdTableExpandToggle {\n @Element() el!: HTMLElement;\n\n /** Accessible label of the toggle button. */\n @Prop({ attribute: 'button-label' }) buttonLabel: string = 'Expand row';\n\n /**\n * Caret icon (Material Symbols ligature). The expanded rotation still\n * applies (--md-table-expand-toggle-rotation, default 90deg) — pick a\n * \"collapsed-pointing\" glyph like the default chevron_right, or pair e.g.\n * \"expand_circle_right\" with a custom rotation.\n */\n @Prop() icon: string = 'chevron_right';\n\n /** Mirrors the owning row's `expanded` state (drives the caret rotation). */\n @State() private expanded: boolean = false;\n\n private row: ExpandableRow | null = null;\n\n private onRowExpandedChange = (e: Event) => {\n this.expanded = !!(e as CustomEvent<{ expanded: boolean }>).detail?.expanded;\n };\n\n private bindRow() {\n this.row = this.el.closest('md-table-row') as ExpandableRow | null;\n this.expanded = !!this.row?.expanded;\n this.row?.addEventListener('mdRowExpandedChange', this.onRowExpandedChange);\n }\n\n // Bind in connectedCallback, NOT componentWillLoad: sorting/paging via the\n // documented appendChild pattern disconnects + reconnects the row, and a\n // willLoad-only bind would leave the toggle permanently dead after the\n // first reorder (disconnectedCallback nulls the row).\n connectedCallback() {\n this.bindRow();\n }\n\n disconnectedCallback() {\n this.row?.removeEventListener('mdRowExpandedChange', this.onRowExpandedChange);\n this.row = null;\n }\n\n private onClick = (e: Event) => {\n // The toggle owns this click — never bubble into row-click selection.\n e.stopPropagation();\n void this.row?.toggle?.();\n };\n\n render() {\n return (\n <Host\n class={{\n 'md-table-expand-toggle': true,\n 'md-table-expand-toggle--expanded': this.expanded,\n }}\n >\n <md-icon-button\n size=\"xs\"\n icon={this.icon}\n aria-label={this.buttonLabel}\n aria-expanded={this.expanded ? 'true' : 'false'}\n onClick={this.onClick}\n ></md-icon-button>\n </Host>\n );\n }\n}\n"],"mappings":"wIAAA,MAAMA,EAAyB,IAAM,md,MC6BxBC,EAAmBC,EAAA,MAAAD,UAAAE,EALhC,WAAAC,CAAAC,G,kEASuCC,KAAAC,YAAsB,aAQnDD,KAAAE,KAAe,gBAGNF,KAAAG,SAAoB,MAE7BH,KAAAI,IAA4B,KAE5BJ,KAAAK,oBAAuBC,IAC7BN,KAAKG,WAAcG,EAAyCC,QAAQJ,QAAQ,EAsBtEH,KAAAQ,QAAWF,IAEjBA,EAAEG,uBACGT,KAAKI,KAAKM,UAAU,CAqB5B,CA3CS,OAAAC,GACNX,KAAKI,IAAMJ,KAAKY,GAAGC,QAAQ,gBAC3Bb,KAAKG,WAAaH,KAAKI,KAAKD,SAC5BH,KAAKI,KAAKU,iBAAiB,sBAAuBd,KAAKK,oB,CAOzD,iBAAAU,GACEf,KAAKW,S,CAGP,oBAAAK,GACEhB,KAAKI,KAAKa,oBAAoB,sBAAuBjB,KAAKK,qBAC1DL,KAAKI,IAAM,I,CASb,MAAAc,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,yBAA0B,KAC1B,mCAAoCtB,KAAKG,WAG3CgB,EAAA,kBAAAE,IAAA,2CACEE,KAAK,KACLrB,KAAMF,KAAKE,KAAI,aACHF,KAAKC,YAAW,gBACbD,KAAKG,SAAW,OAAS,QACxCK,QAASR,KAAKQ,U","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as t,H as e,h as s,d as o,t as n}from"./p-bSpXNc5J.js";const a=()=>`:host{display:contents}`;const r=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.presentational=false}render(){return s(o,{key:"4fb0c0f306120df793e2ea1939ffa4e782180eb8",class:"md-table-foot",role:this.presentational?"presentation":"rowgroup","data-md-rowgroup":"foot"},s("slot",{key:"3a4c18e3bf84c50c5a93ab9473dd3bedb2d8df3e",onSlotchange:()=>this.el.dispatchEvent(new CustomEvent("mdRowgroupSlotChange",{bubbles:true}))}))}get el(){return this}static get style(){return a()}},[257,"md-table-foot",{presentational:[516]}]);function c(){if(typeof customElements==="undefined"){return}const t=["md-table-foot"];t.forEach((t=>{switch(t){case"md-table-foot":if(!customElements.get(n(t))){customElements.define(n(t),r)}break}}))}c();const f=r;const l=c;export{f as MdTableFoot,l as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=md-table-foot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdTableFootCss","MdTableFoot","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","presentational","render","h","Host","key","class","role","onSlotchange","el","dispatchEvent","CustomEvent","bubbles"],"sources":["src/components/md-table-foot/md-table-foot.css?tag=md-table-foot&encapsulation=shadow","src/components/md-table-foot/md-table-foot.tsx"],"sourcesContent":["/* md-table-foot — rowgroup for footer rows */\n:host { display: contents; }\n","import { Component, Element, Host, h, Prop } from '@stencil/core';\n\n/**\n * Material Design 3 — Table Foot (`<tfoot>`).\n *\n * Pure presentational rowgroup for footer rows (totals, summaries).\n * Children flow into the parent grid via `display: contents`.\n */\n@Component({\n tag: 'md-table-foot',\n styleUrl: 'md-table-foot.css',\n shadow: true,\n})\nexport class MdTableFoot {\n @Element() el!: HTMLElement;\n\n /**\n * @internal Stamped by the parent `md-table` in `frozen-header` mode. The\n * foot renders inside the focusable `.md-table__body-scroll` wrapper, which\n * itself carries `role=\"rowgroup\"`; keeping our own `rowgroup` role there\n * would NEST rowgroups (invalid — a rowgroup may only own rows). Dropping to\n * `presentation` lets our rows promote into the wrapper rowgroup. Non-frozen\n * (the default), we stay a real `rowgroup`. See `md-table-body`.\n */\n @Prop({ reflect: true }) presentational: boolean = false;\n\n render() {\n return (\n <Host\n class=\"md-table-foot\"\n role={this.presentational ? 'presentation' : 'rowgroup'}\n data-md-rowgroup=\"foot\"\n >\n <slot\n onSlotchange={() =>\n // Row mutations happen inside THIS shadow slot — slotchange is not\n // composed, so md-table would never see reorders (a sorted row\n // kept its stale data-last stamp, losing its divider). Relay as a\n // bubbling light-DOM event the table listens for.\n this.el.dispatchEvent(new CustomEvent('mdRowgroupSlotChange', { bubbles: true }))\n }\n ></slot>\n </Host>\n );\n }\n}\n"],"mappings":"gEAAA,MAAMA,EAAiB,IAAM,0B,MCahBC,EAAWC,EAAA,MAAAD,UAAAE,EALxB,WAAAC,CAAAC,G,kEAgB2BC,KAAAC,eAA0B,KAqBpD,CAnBC,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAM,gBACNC,KAAMP,KAAKC,eAAiB,eAAiB,WAAU,mBACtC,QAEjBE,EAAA,QAAAE,IAAA,2CACEG,aAAc,IAKZR,KAAKS,GAAGC,cAAc,IAAIC,YAAY,uBAAwB,CAAEC,QAAS,U","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as e,H as t,h as s,d as a,t as o}from"./p-bSpXNc5J.js";const n=()=>`:host{display:contents}`;const c=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow()}render(){return s(a,{key:"2265a136496a1f36a92b9ef2cf7e4a939332e32e",class:"md-table-head",role:"rowgroup","data-md-rowgroup":"head"},s("slot",{key:"539b822ac3a6cf9a2ab605b03fc300948aac3659",onSlotchange:()=>this.el.dispatchEvent(new CustomEvent("mdRowgroupSlotChange",{bubbles:true}))}))}get el(){return this}static get style(){return n()}},[257,"md-table-head"]);function r(){if(typeof customElements==="undefined"){return}const e=["md-table-head"];e.forEach((e=>{switch(e){case"md-table-head":if(!customElements.get(o(e))){customElements.define(o(e),c)}break}}))}r();const d=c;const l=r;export{d as MdTableHead,l as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=md-table-head.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdTableHeadCss","MdTableHead","__stencil_proxyCustomElement","HTMLElement","render","h","Host","key","class","role","onSlotchange","this","el","dispatchEvent","CustomEvent","bubbles"],"sources":["src/components/md-table-head/md-table-head.css?tag=md-table-head&encapsulation=shadow","src/components/md-table-head/md-table-head.tsx"],"sourcesContent":["/* md-table-head — rowgroup for column headers */\n:host {\n display: contents;\n}\n","import { Component, Element, Host, h } from '@stencil/core';\n\n/**\n * Material Design 3 — Table Head (`<thead>`).\n *\n * Pure presentational rowgroup used to mark a region of column-header rows.\n * Applies the head background (sticky-friendly) and ensures children flow\n * into the parent `<md-table>`'s CSS Grid via `display: contents`.\n */\n@Component({\n tag: 'md-table-head',\n styleUrl: 'md-table-head.css',\n shadow: true,\n})\nexport class MdTableHead {\n @Element() el!: HTMLElement;\n\n render() {\n return (\n <Host class=\"md-table-head\" role=\"rowgroup\" data-md-rowgroup=\"head\">\n <slot\n onSlotchange={() =>\n // Row mutations happen inside THIS shadow slot — slotchange is not\n // composed, so md-table would never see reorders (a sorted row\n // kept its stale data-last stamp, losing its divider). Relay as a\n // bubbling light-DOM event the table listens for.\n this.el.dispatchEvent(new CustomEvent('mdRowgroupSlotChange', { bubbles: true }))\n }\n ></slot>\n </Host>\n );\n }\n}\n"],"mappings":"gEAAA,MAAMA,EAAiB,IAAM,0B,MCchBC,EAAWC,EAAA,MAAAD,UAAAE,E,iFAGtB,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,MAAM,gBAAgBC,KAAK,WAAU,mBAAkB,QAC3DJ,EAAA,QAAAE,IAAA,2CACEG,aAAc,IAKZC,KAAKC,GAAGC,cAAc,IAAIC,YAAY,uBAAwB,CAAEC,QAAS,U","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as t,H as e,c as a,h as s,d as i,t as n}from"./p-bSpXNc5J.js";import{d as l}from"./p-IWA0yIjJ.js";import{d as o}from"./p-CG6FaRlt.js";import{d as r}from"./p-CSrxeWwL.js";import{d as c}from"./p-DF19mmLl.js";import{d}from"./p-DfcpeJAu.js";import{d as p}from"./p-Hm3X1iai.js";import{d as m}from"./p-Bmu7RqHM.js";import{d as h}from"./p-CrbzXk64.js";const b=()=>`:host{--_color:var(--md-table-pagination-color, var(--md-sys-color-on-surface-variant, #49454F));--_bg:var(--md-table-pagination-bg, transparent);--_pad-block:var(--md-table-pagination-padding-block, var(--md-sys-spacing-inset-sm, 8px));--_pad-inline:var(--md-table-pagination-padding-inline, 16px);display:flex;align-items:center;justify-content:flex-end;gap:max(12px, calc(24px + var(--md-sys-density-scale, 0) * 3px));padding-block:var(--_pad-block);padding-inline:max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px));background-color:var(--_bg);color:var(--_color);font-family:var(--md-sys-typescale-body-small-font-family, Roboto, sans-serif);font-size:max(10px, calc(12px + var(--md-sys-density-scale, 0) * 0.5px));line-height:max(14px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px));letter-spacing:var(--md-sys-typescale-body-small-letter-spacing, 0.4px);flex-wrap:wrap}:host(.md-table-pagination--compact){gap:12px;padding-block:4px}:host(.md-table-pagination--disabled){opacity:0.6;pointer-events:none}.md-table-pagination__rpp{display:inline-flex;align-items:center;gap:max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px))}.md-table-pagination__rpp-select{inline-size:var(--md-table-pagination-select-width, max(56px, calc(80px + var(--md-sys-density-scale, 0) * 4px)))}.md-table-pagination__rpp-select::part(caret){inline-size:max(14px, calc(18px + var(--md-sys-density-scale, 0) * 1px));block-size:max(14px, calc(18px + var(--md-sys-density-scale, 0) * 1px));font-size:max(14px, calc(18px + var(--md-sys-density-scale, 0) * 1px))}.md-table-pagination__display{white-space:nowrap;margin-inline-end:auto}.md-table-pagination__nav{display:inline-flex;align-items:center;gap:max(0px, calc(4px + var(--md-sys-density-scale, 0) * 1px));--md-icon-button-container-width:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-container-height:max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));--md-icon-button-icon-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px))}:host([dir='rtl']) .md-table-pagination__nav md-icon-button,:host-context([dir='rtl']) .md-table-pagination__nav md-icon-button{transform:scaleX(-1)}: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 g=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.mdPageChange=a(this,"mdPageChange",7);this.mdRowsPerPageChange=a(this,"mdRowsPerPageChange",7);this.count=0;this.page=0;this.rowsPerPage=10;this.rowsPerPageOptions="5,10,25,50";this.showFirstLast=false;this.labelDisplayedRows="%from%–%to% of %count%";this.labelRowsPerPage="Rows per page:";this.labelFirstPage="First page";this.labelPreviousPage="Previous page";this.labelNextPage="Next page";this.labelLastPage="Last page";this.labelAll="All";this.compact=false;this.disabled=false;this.density=0;this.handleFirst=()=>this.goToPage(0);this.handlePrev=()=>this.goToPage(this.page-1);this.handleNext=()=>this.goToPage(this.page+1);this.handleLast=()=>this.goToPage(this.lastPage);this.handleRppChange=t=>{const e=Number(t.detail);if(Number.isFinite(e)&&e>0)this.setRowsPerPage(e)}}clampPage(){const t=this.lastPage;if(this.page>t){this.page=Math.max(0,t)}}get selectDensity(){if(typeof getComputedStyle!=="function")return-2;try{const t=getComputedStyle(this.el).getPropertyValue("--md-sys-density-scale").trim();const e=parseInt(t,10);if(Number.isFinite(e)&&e<=-2)return Math.max(-4,e)}catch{}return-2}onInternalChrome(t){if(t.target===this.el)t.stopPropagation()}async goToPage(t){const e=Math.max(0,Math.min(t,this.lastPage));if(e===this.page)return;this.page=e;this.mdPageChange.emit({page:this.page})}async setRowsPerPage(t){if(t<=0||t===this.rowsPerPage)return;this.rowsPerPage=t;this.page=0;this.mdRowsPerPageChange.emit({rowsPerPage:t});this.mdPageChange.emit({page:0})}get lastPage(){if(this.rowsPerPage<=0)return 0;return Math.max(0,Math.ceil(this.count/this.rowsPerPage)-1)}get from(){if(this.count===0)return 0;return this.page*this.rowsPerPage+1}get to(){if(this.count===0)return 0;return Math.min((this.page+1)*this.rowsPerPage,this.count)}get displayLabel(){return this.labelDisplayedRows.replace("%from%",String(this.from)).replace("%to%",String(this.to)).replace("%count%",String(this.count))}get options(){return this.rowsPerPageOptions.split(",").map((t=>t.trim())).filter(Boolean).map((t=>{if(t.toLowerCase()==="all"){return{value:this.count||-1,label:this.labelAll}}const e=Number(t);return{value:Number.isFinite(e)?e:0,label:t}})).filter((t=>t.value>0))}render(){const t=this.page===0;const e=this.page>=this.lastPage;const a=this.options;const n=a.map((t=>({value:String(t.value),label:t.label})));return s(i,{key:"5085b1774d448df446c38190b457527ad3848251",class:{"md-table-pagination":true,"md-table-pagination--compact":this.compact,"md-table-pagination--disabled":this.disabled},role:"navigation","aria-label":"Pagination"},s("div",{key:"123d91c2d80ed872e6622bfa9ed559e1d42027ce",class:"md-table-pagination__display",part:"display","aria-live":"polite"},this.displayLabel),s("div",{key:"504c63f56c1976371f5c2bc52c54deaf5a1457b5",class:"md-table-pagination__rpp",part:"rpp"},s("span",{key:"0e50b53cc47e2e2f0559a3f81ec555133336335f",class:"md-table-pagination__rpp-label",id:"rpp-label"},this.labelRowsPerPage),s("md-select",{key:"f4efee88087b60878b872ca2b7c1d2d9aabaf072",class:"md-table-pagination__rpp-select",part:"rpp-select","aria-label":this.labelRowsPerPage,density:this.selectDensity,options:n,value:String(this.rowsPerPage),disabled:this.disabled,placement:"top-start",onMdChange:this.handleRppChange})),s("div",{key:"b6b7223cf62b83f37555a94795da0d4417591169",class:"md-table-pagination__nav",part:"nav"},this.showFirstLast&&s("md-icon-button",{key:"8de3ce2fed65c8cbf460007b19d4391881429c02",part:"first-button",icon:"first_page",size:"sm","aria-label":this.labelFirstPage,disabled:t||this.disabled,onClick:this.handleFirst}),s("md-icon-button",{key:"8cf4d3293041d808231f65d88f6dcbe54cdd656a",part:"prev-button",icon:"chevron_left",size:"sm","aria-label":this.labelPreviousPage,disabled:t||this.disabled,onClick:this.handlePrev}),s("md-icon-button",{key:"82b91a148450916f7420578298be3ec074cc7db4",part:"next-button",icon:"chevron_right",size:"sm","aria-label":this.labelNextPage,disabled:e||this.disabled,onClick:this.handleNext}),this.showFirstLast&&s("md-icon-button",{key:"fdfd85fe44719334caf0cd811f638fc14a70d9ed",part:"last-button",icon:"last_page",size:"sm","aria-label":this.labelLastPage,disabled:e||this.disabled,onClick:this.handleLast}),s("slot",{key:"c63ea200bd8f9ff07b27c74da2cff3a5101303f0",name:"actions"})))}get el(){return this}static get watchers(){return{count:[{clampPage:0}],rowsPerPage:[{clampPage:0}]}}static get style(){return b()}},[257,"md-table-pagination",{count:[2],page:[1538],rowsPerPage:[1538,"rows-per-page"],rowsPerPageOptions:[1,"rows-per-page-options"],showFirstLast:[516,"show-first-last"],labelDisplayedRows:[1,"label-displayed-rows"],labelRowsPerPage:[1,"label-rows-per-page"],labelFirstPage:[1,"label-first-page"],labelPreviousPage:[1,"label-previous-page"],labelNextPage:[1,"label-next-page"],labelLastPage:[1,"label-last-page"],labelAll:[1,"label-all"],compact:[516],disabled:[516],density:[514],goToPage:[64],setRowsPerPage:[64]},[[0,"mdClick","onInternalChrome"],[0,"mdChange","onInternalChrome"],[0,"mdOpen","onInternalChrome"],[0,"mdClose","onInternalChrome"]],{count:[{clampPage:0}],rowsPerPage:[{clampPage:0}]}]);function f(){if(typeof customElements==="undefined"){return}const t=["md-table-pagination","md-icon-button","md-loading-indicator","md-menu","md-menu-item","md-progress-indicator","md-ripple","md-select","md-text-field"];t.forEach((t=>{switch(t){case"md-table-pagination":if(!customElements.get(n(t))){customElements.define(n(t),g)}break;case"md-icon-button":if(!customElements.get(n(t))){l()}break;case"md-loading-indicator":if(!customElements.get(n(t))){o()}break;case"md-menu":if(!customElements.get(n(t))){r()}break;case"md-menu-item":if(!customElements.get(n(t))){c()}break;case"md-progress-indicator":if(!customElements.get(n(t))){d()}break;case"md-ripple":if(!customElements.get(n(t))){p()}break;case"md-select":if(!customElements.get(n(t))){m()}break;case"md-text-field":if(!customElements.get(n(t))){h()}break}}))}f();const y=g;const u=f;export{y as MdTablePagination,u as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=md-table-pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mdTablePaginationCss","MdTablePagination","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","count","page","rowsPerPage","rowsPerPageOptions","showFirstLast","labelDisplayedRows","labelRowsPerPage","labelFirstPage","labelPreviousPage","labelNextPage","labelLastPage","labelAll","compact","disabled","density","handleFirst","goToPage","handlePrev","handleNext","handleLast","lastPage","handleRppChange","e","n","Number","detail","isFinite","setRowsPerPage","clampPage","last","Math","max","selectDensity","getComputedStyle","raw","el","getPropertyValue","trim","parseInt","onInternalChrome","target","stopPropagation","min","mdPageChange","emit","rpp","mdRowsPerPageChange","ceil","from","to","displayLabel","replace","String","options","split","map","s","filter","Boolean","toLowerCase","value","label","o","render","isFirst","isLast","opts","selectOptions","h","Host","key","class","role","part","id","placement","onMdChange","icon","size","onClick","name"],"sources":["src/components/md-table-pagination/md-table-pagination.css?tag=md-table-pagination&encapsulation=shadow","src/components/md-table-pagination/md-table-pagination.tsx"],"sourcesContent":["/* ==========================================================\n md-table-pagination — built from house primitives\n (md-icon-button nav + md-select rows-per-page).\n\n PUBLIC CSS CUSTOM PROPERTIES:\n --md-table-pagination-color Foreground color\n --md-table-pagination-bg Background color\n --md-table-pagination-padding-block Top/bottom padding\n --md-table-pagination-padding-inline Left/right padding\n --md-table-pagination-select-width Rows-per-page select width (default 72px)\n\n CSS PARTS:\n rpp Rows-per-page region\n rpp-select The md-select picker\n display The \"from–to of count\" label\n nav Navigation buttons region\n first-button, prev-button, next-button, last-button\n ========================================================== */\n:host {\n --_color: var(--md-table-pagination-color, var(--md-sys-color-on-surface-variant, #49454F));\n --_bg: var(--md-table-pagination-bg, transparent);\n /* Padding follows a global `data-density` ancestor (8px at density 0, so the\n default is unchanged); the `compact` boolean still force-overrides. */\n --_pad-block: var(--md-table-pagination-padding-block, var(--md-sys-spacing-inset-sm, 8px));\n --_pad-inline: var(--md-table-pagination-padding-inline, 16px);\n\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: max(12px, calc(24px + var(--md-sys-density-scale, 0) * 3px));\n padding-block: var(--_pad-block);\n padding-inline: max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px));\n background-color: var(--_bg);\n color: var(--_color);\n font-family: var(--md-sys-typescale-body-small-font-family, Roboto, sans-serif);\n font-size: max(10px, calc(12px + var(--md-sys-density-scale, 0) * 0.5px));\n line-height: max(14px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px));\n letter-spacing: var(--md-sys-typescale-body-small-letter-spacing, 0.4px);\n flex-wrap: wrap;\n}\n\n:host(.md-table-pagination--compact) {\n gap: 12px;\n padding-block: 4px;\n}\n\n:host(.md-table-pagination--disabled) {\n opacity: 0.6;\n pointer-events: none;\n}\n\n/* ----------- Rows-per-page region ----------- */\n.md-table-pagination__rpp {\n display: inline-flex;\n align-items: center;\n gap: max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px));\n}\n\n.md-table-pagination__rpp-select {\n inline-size: var(--md-table-pagination-select-width, max(56px, calc(80px + var(--md-sys-density-scale, 0) * 4px)));\n}\n\n.md-table-pagination__rpp-select::part(caret) {\n inline-size: max(14px, calc(18px + var(--md-sys-density-scale, 0) * 1px));\n block-size: max(14px, calc(18px + var(--md-sys-density-scale, 0) * 1px));\n font-size: max(14px, calc(18px + var(--md-sys-density-scale, 0) * 1px));\n}\n\n/* ----------- Range display ----------- */\n.md-table-pagination__display {\n white-space: nowrap;\n /* The range display leads the bar: it sits at the inline START while the\n rows-per-page selector + nav buttons group at the trailing edge. */\n margin-inline-end: auto;\n}\n\n/* ----------- Nav buttons ----------- */\n.md-table-pagination__nav {\n display: inline-flex;\n align-items: center;\n gap: max(0px, calc(4px + var(--md-sys-density-scale, 0) * 1px));\n --md-icon-button-container-width: max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));\n --md-icon-button-container-height: max(32px, calc(40px + var(--md-sys-density-scale, 0) * 4px));\n --md-icon-button-icon-size: max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));\n}\n\n/* RTL: flip the chevron icon-buttons (logical direction). */\n:host([dir='rtl']) .md-table-pagination__nav md-icon-button,\n:host-context([dir='rtl']) .md-table-pagination__nav md-icon-button {\n transform: scaleX(-1);\n}\n\n/* ==========================================================\n DENSITY (local override)\n Maps the local `density` prop onto the same --md-sys-density-scale signal a\n global `data-density` ancestor sets. Declared on :host, so a local rung wins\n over the inherited global one. Every density-sensitive value in this file\n derives from that single signal by calc — never add a fixed per-rung ladder.\n ========================================================== */\n:host([density='-1']) { --md-sys-density-scale: -1; }\n:host([density='-2']) { --md-sys-density-scale: -2; }\n:host([density='-3']) { --md-sys-density-scale: -3; }\n:host([density='-4']) { --md-sys-density-scale: -4; }\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Watch,\n Method,\n Listen,\n} from '@stencil/core';\n\n/**\n * Material Design 3 — Table Pagination.\n *\n * Drop into a `<md-table-container slot=\"bottom\">` for a complete data table.\n * Mirrors the MUI `<TablePagination>` API surface. Built from house\n * primitives: `md-icon-button` navigation and an `md-select` rows-per-page\n * picker (proper dismissal, keyboard support and theming for free).\n *\n * Emits:\n * - `mdPageChange` — when the page changes\n * - `mdRowsPerPageChange` — when the rows-per-page selector changes\n *\n * @slot actions - Custom pagination actions appended after the nav buttons\n * (MUI ActionsComponent parity).\n */\n@Component({\n tag: 'md-table-pagination',\n styleUrl: 'md-table-pagination.css',\n shadow: true,\n})\nexport class MdTablePagination {\n @Element() el!: HTMLElement;\n\n /** Total number of rows in the dataset. */\n @Prop() count: number = 0;\n\n /** Current zero-based page. */\n @Prop({ mutable: true, reflect: true }) page: number = 0;\n\n /** Rows shown per page. */\n @Prop({ mutable: true, reflect: true, attribute: 'rows-per-page' })\n rowsPerPage: number = 10;\n\n /**\n * Comma-separated list of options for the rows-per-page selector\n * (e.g. `\"5,10,25,50\"`). Use `\"all\"` (case-insensitive) to add an\n * \"All\" option that maps to the total count.\n */\n @Prop({ attribute: 'rows-per-page-options' }) rowsPerPageOptions: string = '5,10,25,50';\n\n /** Show the first / last page buttons. */\n @Prop({ reflect: true, attribute: 'show-first-last' }) showFirstLast: boolean = false;\n\n /**\n * Custom label used to display the current row range\n * (e.g. `\"Showing %from%–%to% of %count%\"`).\n * Tokens: `%from%`, `%to%`, `%count%`.\n */\n @Prop({ attribute: 'label-displayed-rows' })\n labelDisplayedRows: string = '%from%–%to% of %count%';\n\n /** Label for the rows-per-page selector. */\n @Prop({ attribute: 'label-rows-per-page' }) labelRowsPerPage: string = 'Rows per page:';\n\n /** Accessible label for the first-page button. */\n @Prop({ attribute: 'label-first-page' }) labelFirstPage: string = 'First page';\n\n /** Accessible label for the previous-page button. */\n @Prop({ attribute: 'label-previous-page' }) labelPreviousPage: string = 'Previous page';\n\n /** Accessible label for the next-page button. */\n @Prop({ attribute: 'label-next-page' }) labelNextPage: string = 'Next page';\n\n /** Accessible label for the last-page button. */\n @Prop({ attribute: 'label-last-page' }) labelLastPage: string = 'Last page';\n\n /** Label of the \"All\" rows-per-page option. */\n @Prop({ attribute: 'label-all' }) labelAll: string = 'All';\n\n /** Compact pagination layout (good for embedding inside cards). */\n @Prop({ reflect: true }) compact: boolean = false;\n\n /** Disabled state. */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Local density rung. Drives the same `--md-sys-density-scale` signal that a\n * global `data-density` ancestor sets, so a local value simply overrides the\n * inherited one. 0 = default, -4 = ultra-compact.\n */\n @Prop({ reflect: true }) density: 0 | -1 | -2 | -3 | -4 = 0;\n\n /** Fired when the user changes the page. */\n @Event() mdPageChange: EventEmitter<{ page: number }>;\n\n /** Fired when the user changes rows-per-page. */\n @Event() mdRowsPerPageChange: EventEmitter<{ rowsPerPage: number }>;\n\n @Watch('count')\n @Watch('rowsPerPage')\n clampPage() {\n const last = this.lastPage;\n if (this.page > last) {\n this.page = Math.max(0, last);\n }\n }\n\n private get selectDensity(): 0 | -1 | -2 | -3 | -4 {\n if (typeof getComputedStyle !== 'function') return -2;\n try {\n const raw = getComputedStyle(this.el).getPropertyValue('--md-sys-density-scale').trim();\n const n = parseInt(raw, 10);\n if (Number.isFinite(n) && n <= -2) return Math.max(-4, n) as -2 | -3 | -4;\n } catch { /* noop */ }\n return -2;\n }\n\n /** Internal md-icon-buttons / md-select emit composed events that retarget\n * to this host — swallow them so app-level delegation sees only the\n * pagination's own events. */\n @Listen('mdClick')\n @Listen('mdChange')\n @Listen('mdOpen')\n @Listen('mdClose')\n onInternalChrome(e: globalThis.Event) {\n if (e.target === this.el) e.stopPropagation();\n }\n\n /** Programmatically jump to a page. */\n @Method()\n async goToPage(page: number): Promise<void> {\n const target = Math.max(0, Math.min(page, this.lastPage));\n if (target === this.page) return;\n this.page = target;\n this.mdPageChange.emit({ page: this.page });\n }\n\n /** Programmatically set rows-per-page. */\n @Method()\n async setRowsPerPage(rpp: number): Promise<void> {\n if (rpp <= 0 || rpp === this.rowsPerPage) return;\n this.rowsPerPage = rpp;\n this.page = 0;\n this.mdRowsPerPageChange.emit({ rowsPerPage: rpp });\n this.mdPageChange.emit({ page: 0 });\n }\n\n private get lastPage(): number {\n if (this.rowsPerPage <= 0) return 0;\n return Math.max(0, Math.ceil(this.count / this.rowsPerPage) - 1);\n }\n\n private get from(): number {\n if (this.count === 0) return 0;\n return this.page * this.rowsPerPage + 1;\n }\n\n private get to(): number {\n if (this.count === 0) return 0;\n return Math.min((this.page + 1) * this.rowsPerPage, this.count);\n }\n\n private get displayLabel(): string {\n return this.labelDisplayedRows\n .replace('%from%', String(this.from))\n .replace('%to%', String(this.to))\n .replace('%count%', String(this.count));\n }\n\n private get options(): { value: number; label: string }[] {\n return this.rowsPerPageOptions\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n .map((raw) => {\n if (raw.toLowerCase() === 'all') {\n return { value: this.count || -1, label: this.labelAll };\n }\n const n = Number(raw);\n return { value: Number.isFinite(n) ? n : 0, label: raw };\n })\n .filter((o) => o.value > 0);\n }\n\n private handleFirst = () => this.goToPage(0);\n private handlePrev = () => this.goToPage(this.page - 1);\n private handleNext = () => this.goToPage(this.page + 1);\n private handleLast = () => this.goToPage(this.lastPage);\n\n private handleRppChange = (e: CustomEvent<string>) => {\n const n = Number(e.detail);\n if (Number.isFinite(n) && n > 0) this.setRowsPerPage(n);\n };\n\n render() {\n const isFirst = this.page === 0;\n const isLast = this.page >= this.lastPage;\n const opts = this.options;\n const selectOptions = opts.map((o) => ({ value: String(o.value), label: o.label }));\n\n return (\n <Host\n class={{\n 'md-table-pagination': true,\n 'md-table-pagination--compact': this.compact,\n 'md-table-pagination--disabled': this.disabled,\n }}\n role=\"navigation\"\n aria-label=\"Pagination\"\n >\n {/* Range display LEADS the bar (far left; customize the string via\n label-displayed-rows, e.g. \"Showing %from%–%to% of %count% cases\"),\n while the controls group at the trailing edge. */}\n <div class=\"md-table-pagination__display\" part=\"display\" aria-live=\"polite\">\n {this.displayLabel}\n </div>\n\n <div class=\"md-table-pagination__rpp\" part=\"rpp\">\n <span class=\"md-table-pagination__rpp-label\" id=\"rpp-label\">\n {this.labelRowsPerPage}\n </span>\n <md-select\n class=\"md-table-pagination__rpp-select\"\n part=\"rpp-select\"\n aria-label={this.labelRowsPerPage}\n density={this.selectDensity}\n options={selectOptions}\n value={String(this.rowsPerPage)}\n disabled={this.disabled}\n placement=\"top-start\"\n onMdChange={this.handleRppChange}\n ></md-select>\n </div>\n\n <div class=\"md-table-pagination__nav\" part=\"nav\">\n {this.showFirstLast && (\n <md-icon-button\n part=\"first-button\"\n icon=\"first_page\"\n size=\"sm\"\n aria-label={this.labelFirstPage}\n disabled={isFirst || this.disabled}\n onClick={this.handleFirst}\n ></md-icon-button>\n )}\n <md-icon-button\n part=\"prev-button\"\n icon=\"chevron_left\"\n size=\"sm\"\n aria-label={this.labelPreviousPage}\n disabled={isFirst || this.disabled}\n onClick={this.handlePrev}\n ></md-icon-button>\n <md-icon-button\n part=\"next-button\"\n icon=\"chevron_right\"\n size=\"sm\"\n aria-label={this.labelNextPage}\n disabled={isLast || this.disabled}\n onClick={this.handleNext}\n ></md-icon-button>\n {this.showFirstLast && (\n <md-icon-button\n part=\"last-button\"\n icon=\"last_page\"\n size=\"sm\"\n aria-label={this.labelLastPage}\n disabled={isLast || this.disabled}\n onClick={this.handleLast}\n ></md-icon-button>\n )}\n <slot name=\"actions\"></slot>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as e,H as t,c as a,h as o,d as s,t as r}from"./p-bSpXNc5J.js";const i=()=>`:host{position:relative;display:grid;grid-column:1 / -1;grid-template-columns:subgrid;align-items:stretch;border-block-end:1px solid var(--_divider, transparent);background-color:transparent;transition:background-color var(--_fx-fast, 150ms cubic-bezier(0.31, 0.94, 0.34, 1))}:host{--_sticky-base:var(--md-table-surface, var(--md-sys-color-surface, #FEF7FF));--md-table-cell-sticky-bg:var(--_sticky-base)}:host([data-stripe]){--_sticky-base:color-mix( in srgb, var(--md-sys-color-on-surface, #1C1B1F) calc(var(--md-sys-state-hover-state-layer-opacity, 0.08) * 50%), var(--md-table-surface, var(--md-sys-color-surface, #FEF7FF)) );--md-table-cell-sticky-bg:var(--_sticky-base)}:host(.md-table-row--selected){--_sticky-base:var(--_row-selected-bg, var(--md-sys-color-secondary-container, #E8DEF8));--md-table-cell-sticky-bg:var(--_sticky-base)}:host(.md-table-row--body:hover:not(.md-table-row--disabled)){--md-table-cell-sticky-bg:color-mix( in srgb, var(--md-table-row-hover-color, var(--md-sys-color-on-surface, #1C1B1F)) calc(var(--md-sys-state-hover-state-layer-opacity, 0.08) * 100%), var(--_sticky-base) )}:host(.md-table-row--head){--md-table-cell-sticky-bg:var(--_head-bg, var(--md-sys-color-surface-container, #F3EDF7));--md-table-cell-sticky-transition:0s}:host(.md-table-row--foot){--md-table-cell-sticky-bg:var(--_foot-bg, var(--md-sys-color-surface-container-low, #F7F2FA));--md-table-cell-sticky-transition:0s}:host::before{content:'';position:absolute;inset:0;pointer-events:none;background-color:var(--_hover-layer, transparent);opacity:0;transition:opacity var(--_fx-fast, 150ms cubic-bezier(0.31, 0.94, 0.34, 1))}:host(.md-table-row--body:hover:not(.md-table-row--disabled))::before{opacity:1}:host(.md-table-row--head){background-color:var(--_head-bg, var(--md-sys-color-surface-container, #F3EDF7))}:host(.md-table-row--head)::before{background-color:transparent}:host(.md-table-row--foot){background-color:var(--_foot-bg, var(--md-sys-color-surface-container-low, #F7F2FA));border-block-end:none;border-block-start:1px solid var(--_divider, transparent)}:host([data-last]){border-block-end:none}:host([data-adjacent-foot]){border-block-end:none}:host(.md-table-row--body) ::slotted(md-table-cell){--md-table-cell-pin-display:none}:host(.md-table-row--head) ::slotted(md-table-cell){--_cell-min-h:var(--_head-h, 56px);--_cell-color:var(--_head-color, var(--md-sys-color-on-surface-variant, #49454F));--_cell-weight:var(--md-sys-typescale-title-small-font-weight, 500);--_cell-letter-spacing:var(--md-sys-typescale-title-small-letter-spacing, 0.1px)}:host(.md-table-row--foot) ::slotted(md-table-cell){--_cell-weight:var(--md-sys-typescale-title-small-font-weight, 500)}:host([data-stripe]){background-color:var(--_stripe-color, transparent)}:host(.md-table-row--selected){background-color:var(--_row-selected-bg, var(--md-sys-color-secondary-container, #E8DEF8))}:host(.md-table-row--selected) ::slotted(md-table-cell){--_cell-color:var(--_row-selected-color, var(--md-sys-color-on-secondary-container, #1E192B))}:host(.md-table-row--highlight){background-color:var(--md-sys-color-primary-container, #EADDFF)}:host(.md-table-row--highlight) ::slotted(md-table-cell){--_cell-color:var(--md-sys-color-on-primary-container, #21005D)}:host(.md-table-row--disabled) ::slotted(md-table-cell){--_cell-color:color-mix( in srgb, var(--md-sys-color-on-surface, #1C1B1F) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent )}:host(.md-table-row--disabled){pointer-events:none}:host(.md-table-row--clickable){cursor:pointer}:host(:focus-visible){outline:2px solid var(--md-sys-color-secondary, #625B71);outline-offset:-2px;z-index:1}:host([data-sticky].md-table-row--head){position:sticky;inset-block-start:0;z-index:2}:host([data-sticky].md-table-row--foot){position:sticky;inset-block-end:0;z-index:2}.md-table-row__expanded{grid-column:1 / -1;display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-emphasized-accelerate, cubic-bezier(0.3, 0, 0.8, 0.15)), opacity var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-emphasized-accelerate, cubic-bezier(0.3, 0, 0.8, 0.15)), visibility 0s linear var(--md-sys-motion-duration-short4, 200ms)}.md-table-row__expanded--open{grid-template-rows:1fr;opacity:1;visibility:visible;transition:grid-template-rows var(--md-sys-motion-spring-spatial-default-duration, 500ms) var(--md-sys-motion-spring-spatial-default-easing, cubic-bezier(0.38, 1.21, 0.22, 1)), opacity var(--_fx-default, 200ms cubic-bezier(0.34, 0.8, 0.34, 1)), visibility 0s}.md-table-row__expanded-sizer{min-block-size:0;overflow:hidden}.md-table-row__expanded-inner{padding:12px var(--_cell-pad-inline, 16px) 16px;opacity:0;transform:translateY(-10px);transition:transform var(--md-sys-motion-duration-short3, 150ms) var(--md-sys-motion-easing-emphasized-accelerate, cubic-bezier(0.3, 0, 0.8, 0.15)), opacity var(--md-sys-motion-duration-short2, 100ms) linear}.md-table-row__expanded--open .md-table-row__expanded-inner{opacity:1;transform:translateY(0);transition:transform var(--md-sys-motion-spring-spatial-fast-duration, 350ms) var(--md-sys-motion-spring-spatial-default-easing, cubic-bezier(0.38, 1.21, 0.22, 1)), opacity var(--_fx-default, 200ms cubic-bezier(0.34, 0.8, 0.34, 1));transition-delay:60ms}@media (prefers-reduced-motion: reduce){:host,:host::before,.md-table-row__expanded,.md-table-row__expanded-inner{transition-duration:0.01ms !important;transition-delay:0s !important}}@media (forced-colors: active){:host{border-block-end-color:CanvasText}:host(.md-table-row--selected){background-color:Highlight}:host(.md-table-row--selected) ::slotted(md-table-cell){--_cell-color:HighlightText}}`;const d=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.mdRowClick=a(this,"mdRowClick",7);this.mdRowSelectionChange=a(this,"mdRowSelectionChange",7);this.mdRowExpandedChange=a(this,"mdRowExpandedChange",7);this.rowgroup="body";this.selected=false;this.disabled=false;this.selectable=true;this.clickable=false;this.value="";this.expandable=false;this.expanded=false;this.highlight=false;this._hasExpandedSlot=false;this.handleClick=e=>{if(this.disabled)return;const t=e.target;if(t.closest("md-checkbox, md-radio, md-button, md-icon-button, md-switch, md-fab, md-chip, button, a, input, select, textarea")){return}if(this.clickable){this.mdRowClick.emit({value:this.value,row:this.el})}};this.handleKeyDown=e=>{if(this.disabled||!this.clickable)return;if(e.key==="Enter"||e.key===" "){e.preventDefault();this.mdRowClick.emit({value:this.value,row:this.el})}}}componentDidLoad(){const e=this.el.shadowRoot?.querySelector('slot[name="expanded"]');e?.addEventListener("slotchange",(()=>{this._hasExpandedSlot=e.assignedElements().length>0}));this._hasExpandedSlot=!!e&&e.assignedElements().length>0}onSelectedChange(e,t){if(e===t)return;this.mdRowSelectionChange.emit({selected:e,value:this.value})}onExpandedChange(e,t){if(e===t)return;this.mdRowExpandedChange.emit({expanded:e})}async toggle(){if(!this.expandable)return;this.expanded=!this.expanded}render(){return o(s,{key:"25823aed2421f86991b50e6ac83edeba496113f6",class:{"md-table-row":true,[`md-table-row--${this.rowgroup}`]:true,"md-table-row--selected":this.selected,"md-table-row--disabled":this.disabled,"md-table-row--clickable":this.clickable,"md-table-row--highlight":this.highlight,"md-table-row--expandable":this.expandable,"md-table-row--expanded":this.expanded},role:"row","aria-disabled":this.disabled?"true":null,"aria-expanded":this.expandable?this.expanded?"true":"false":null,tabindex:this.clickable&&!this.disabled?"0":null,onClick:this.handleClick,onKeyDown:this.handleKeyDown},o("slot",{key:"90e5d4341c88da06372618b54a3aac879bc6954d",onSlotchange:()=>this.el.dispatchEvent(new CustomEvent("mdRowgroupSlotChange",{bubbles:true}))}),this.expandable&&o("div",{key:"6f2d87dbced69e281b9da21d7fd1d72a8ac6d2a9",class:{"md-table-row__expanded":true,"md-table-row__expanded--open":this.expanded},part:"expanded",role:"cell","aria-colspan":String(Array.from(this.el.children).filter((e=>e.tagName==="MD-TABLE-CELL")).length||1),"aria-hidden":!this.expanded?"true":null,inert:!this.expanded},o("div",{key:"f33c7dc7eb8a1838755f6cad8cf3e4fd01a67680",class:"md-table-row__expanded-sizer"},o("div",{key:"358c485abb2b17e42cc7ae9bfb082972d0797a03",class:"md-table-row__expanded-inner"},o("slot",{key:"bc15f2c03d46c75ad7a2341556bb346295e89b59",name:"expanded"})))))}get el(){return this}static get watchers(){return{selected:[{onSelectedChange:0}],expanded:[{onExpandedChange:0}]}}static get style(){return i()}},[257,"md-table-row",{rowgroup:[513],selected:[1540],disabled:[516],selectable:[4],clickable:[516],value:[1],expandable:[516],expanded:[1540],highlight:[516],_hasExpandedSlot:[32],toggle:[64]},undefined,{selected:[{onSelectedChange:0}],expanded:[{onExpandedChange:0}]}]);function l(){if(typeof customElements==="undefined"){return}const e=["md-table-row"];e.forEach((e=>{switch(e){case"md-table-row":if(!customElements.get(r(e))){customElements.define(r(e),d)}break}}))}l();const n=d;const c=l;export{n as MdTableRow,c as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=md-table-row.js.map
|