@bmxc/pami-elements 0.1.0-beta.1 → 0.1.0-beta.2
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 +11 -28
- package/bin/templates/astro/package.json +2 -2
- package/bin/templates/html/index.html +2 -2
- package/bin/templates/html/package.json +2 -2
- package/bin/templates/next/package.json +3 -3
- package/bin/templates/nuxt/package.json +2 -2
- package/bin/templates/sveltekit/package.json +2 -2
- package/custom-elements.json +1359 -227
- package/dist/cjs/{a11y-Ca42WC0-.js → a11y-BkZcUjqf.js} +3 -3
- package/dist/cjs/{a11y-Ca42WC0-.js.map → a11y-BkZcUjqf.js.map} +1 -1
- package/dist/cjs/{bar-chart-C5fkmmAE.js → bar-chart-H044QgXk.js} +4 -4
- package/dist/cjs/{bar-chart-C5fkmmAE.js.map → bar-chart-H044QgXk.js.map} +1 -1
- package/dist/cjs/{chart-CHUt-2H0.js → chart-XXwCCL0v.js} +4 -4
- package/dist/cjs/{chart-CHUt-2H0.js.map → chart-XXwCCL0v.js.map} +1 -1
- package/dist/cjs/{hit-test-ChmAe1Nv.js → hit-test-C-8-_ADP.js} +3 -3
- package/dist/cjs/{hit-test-ChmAe1Nv.js.map → hit-test-C-8-_ADP.js.map} +1 -1
- package/dist/cjs/isolation-escape-DfVN8s6G.js +92 -0
- package/dist/cjs/isolation-escape-DfVN8s6G.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pami-app-bar.cjs.entry.js +2 -2
- package/dist/cjs/pami-app-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-area-chart.cjs.entry.js +4 -4
- package/dist/cjs/pami-avatar_2.cjs.entry.js +2 -2
- package/dist/cjs/pami-avatar_2.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-bar-chart.cjs.entry.js +4 -4
- package/dist/cjs/pami-bottom-sheet.cjs.entry.js +2 -2
- package/dist/cjs/pami-bottom-sheet.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-breadcrumb-item.cjs.entry.js +2 -2
- package/dist/cjs/pami-breadcrumb-item.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-button_7.cjs.entry.js +23 -39
- package/dist/cjs/pami-button_7.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-callout.cjs.entry.js +30 -0
- package/dist/cjs/pami-callout.cjs.entry.js.map +1 -0
- package/dist/cjs/pami-checkbox.cjs.entry.js +5 -5
- package/dist/cjs/pami-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-chip.cjs.entry.js +5 -5
- package/dist/cjs/pami-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-date-picker.cjs.entry.js +4 -5
- package/dist/cjs/pami-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-dialog.cjs.entry.js +4 -4
- package/dist/cjs/pami-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-divider.cjs.entry.js +2 -2
- package/dist/cjs/pami-fab-menu-item.cjs.entry.js +5 -5
- package/dist/cjs/pami-fab-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-fab-menu.cjs.entry.js +2 -2
- package/dist/cjs/pami-fab.cjs.entry.js +5 -5
- package/dist/cjs/pami-fab.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-line-chart.cjs.entry.js +6 -6
- package/dist/cjs/pami-list-item.cjs.entry.js +2 -2
- package/dist/cjs/pami-list-item.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-menu-item-group.cjs.entry.js +2 -2
- package/dist/cjs/pami-menu-item-group.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-menu_2.cjs.entry.js +5 -88
- package/dist/cjs/pami-menu_2.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-meter.cjs.entry.js +2 -2
- package/dist/cjs/pami-multi-select.cjs.entry.js +3 -3
- package/dist/cjs/pami-multi-select.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-navigation-bar.cjs.entry.js +2 -2
- package/dist/cjs/pami-navigation-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-navigation-group.cjs.entry.js +24 -0
- package/dist/cjs/pami-navigation-group.cjs.entry.js.map +1 -0
- package/dist/cjs/pami-navigation-rail-tab.cjs.entry.js +156 -9
- package/dist/cjs/pami-navigation-rail-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-navigation-rail.cjs.entry.js +211 -29
- package/dist/cjs/pami-navigation-rail.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-navigation-tab.cjs.entry.js +3 -3
- package/dist/cjs/pami-navigation-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-organization-chart.cjs.entry.js +1 -1
- package/dist/cjs/pami-organization-chart.cjs.entry.js.map +1 -1
- package/dist/cjs/{pami-painter-CEq_kp4Z.js → pami-painter-WpO-HKN2.js} +260 -57
- package/dist/cjs/pami-painter-WpO-HKN2.js.map +1 -0
- package/dist/cjs/pami-pie-chart.cjs.entry.js +4 -4
- package/dist/cjs/pami-progress-indicator.cjs.entry.js +1 -1
- package/dist/cjs/pami-rating.cjs.entry.js +3 -3
- package/dist/cjs/pami-rating.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-search.cjs.entry.js +1 -1
- package/dist/cjs/pami-search.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-segmented-button-set.cjs.entry.js +2 -2
- package/dist/cjs/pami-segmented-button.cjs.entry.js +6 -6
- package/dist/cjs/pami-segmented-button.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-select.cjs.entry.js +2 -2
- package/dist/cjs/pami-side-sheet.cjs.entry.js +49 -22
- package/dist/cjs/pami-side-sheet.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/pami-slider.cjs.entry.js +2 -2
- package/dist/cjs/pami-slider.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-sparkline.cjs.entry.js +4 -4
- package/dist/cjs/pami-split-button.cjs.entry.js +6 -6
- package/dist/cjs/pami-split-button.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-step.cjs.entry.js +7 -7
- package/dist/cjs/pami-stepper.cjs.entry.js +3 -3
- package/dist/cjs/pami-sub-menu-item.cjs.entry.js +4 -4
- package/dist/cjs/pami-sub-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-switch.cjs.entry.js +4 -4
- package/dist/cjs/pami-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/pami-tab-panels.cjs.entry.js +1 -1
- package/dist/cjs/pami-tab.cjs.entry.js +5 -5
- package/dist/cjs/pami-table-body.cjs.entry.js +1 -1
- package/dist/cjs/pami-table-cell.cjs.entry.js +2 -2
- package/dist/cjs/pami-table-container.cjs.entry.js +2 -2
- package/dist/cjs/pami-table-expand-toggle.cjs.entry.js +2 -2
- package/dist/cjs/pami-table-foot.cjs.entry.js +1 -1
- package/dist/cjs/pami-table-head.cjs.entry.js +1 -1
- package/dist/cjs/pami-table-pagination.cjs.entry.js +2 -2
- package/dist/cjs/pami-table-row.cjs.entry.js +4 -4
- package/dist/cjs/pami-table-sort-label.cjs.entry.js +2 -2
- package/dist/cjs/pami-table-toolbar.cjs.entry.js +2 -2
- package/dist/cjs/pami-tabs.cjs.entry.js +2 -2
- package/dist/cjs/pami-tag.cjs.entry.js +27 -0
- package/dist/cjs/pami-tag.cjs.entry.js.map +1 -0
- package/dist/cjs/pami-text-field.cjs.entry.js +2 -2
- package/dist/cjs/pami-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/pami-toolbar.cjs.entry.js +3 -3
- package/dist/cjs/pami-transfer-list.cjs.entry.js +1 -1
- package/dist/cjs/pami-transfer-list.cjs.entry.js.map +1 -1
- package/dist/cjs/pami.cjs.js +1 -1
- package/dist/cjs/{ripple-CiICEyeg.js → ripple-xSbG6X8P.js} +7 -2
- package/dist/cjs/ripple-xSbG6X8P.js.map +1 -0
- package/dist/cjs/{rtl-D4GO_8Co.js → rtl-Dof3JElE.js} +27 -5
- package/dist/cjs/rtl-Dof3JElE.js.map +1 -0
- package/dist/cjs/status-surface-BWKxIZPo.js +13 -0
- package/dist/cjs/status-surface-BWKxIZPo.js.map +1 -0
- package/dist/cjs/virtual-select-controller-BwjMiADh.js.map +1 -1
- package/dist/collection/collection-manifest.json +3 -0
- package/dist/collection/components/pami-app-bar/pami-app-bar.css +85 -86
- package/dist/collection/components/pami-bottom-sheet/pami-bottom-sheet.css +85 -86
- package/dist/collection/components/pami-breadcrumb-item/pami-breadcrumb-item.css +85 -86
- package/dist/collection/components/pami-button/pami-button.css +85 -86
- package/dist/collection/components/pami-callout/pami-callout.css +298 -0
- package/dist/collection/components/pami-callout/pami-callout.js +94 -0
- package/dist/collection/components/pami-callout/pami-callout.js.map +1 -0
- package/dist/collection/components/pami-card/pami-card.css +85 -86
- package/dist/collection/components/pami-checkbox/pami-checkbox.css +85 -86
- package/dist/collection/components/pami-checkbox/pami-checkbox.js +2 -2
- package/dist/collection/components/pami-chip/pami-chip.css +85 -86
- package/dist/collection/components/pami-chip/pami-chip.js +2 -2
- package/dist/collection/components/pami-date-picker/pami-date-picker.js +3 -4
- package/dist/collection/components/pami-date-picker/pami-date-picker.js.map +1 -1
- package/dist/collection/components/pami-dialog/pami-dialog.css +85 -86
- package/dist/collection/components/pami-dialog/pami-dialog.js +2 -2
- package/dist/collection/components/pami-divider/pami-divider.js +2 -2
- package/dist/collection/components/pami-fab/pami-fab.css +85 -86
- package/dist/collection/components/pami-fab/pami-fab.js +2 -2
- package/dist/collection/components/pami-fab-menu/pami-fab-menu.js +2 -2
- package/dist/collection/components/pami-fab-menu-item/pami-fab-menu-item.css +85 -86
- package/dist/collection/components/pami-fab-menu-item/pami-fab-menu-item.js +2 -2
- package/dist/collection/components/pami-icon/pami-icon.js +1 -1
- package/dist/collection/components/pami-icon-button/pami-icon-button.css +85 -86
- package/dist/collection/components/pami-line-chart/pami-line-chart.js +2 -2
- package/dist/collection/components/pami-list-item/pami-list-item.css +1597 -1599
- package/dist/collection/components/pami-menu/pami-menu.css +1 -1
- package/dist/collection/components/pami-menu-item/pami-menu-item.css +5 -5
- package/dist/collection/components/pami-menu-item-group/pami-menu-item-group.css +2 -2
- package/dist/collection/components/pami-menu-item-group/pami-menu-item-group.js +1 -1
- package/dist/collection/components/pami-meter/pami-meter.js +2 -2
- package/dist/collection/components/pami-multi-select/pami-multi-select.css +4 -4
- package/dist/collection/components/pami-multi-select/pami-multi-select.js +2 -2
- package/dist/collection/components/pami-navigation-bar/pami-navigation-bar.css +85 -86
- package/dist/collection/components/pami-navigation-group/pami-navigation-group.css +30 -0
- package/dist/collection/components/pami-navigation-group/pami-navigation-group.js +76 -0
- package/dist/collection/components/pami-navigation-group/pami-navigation-group.js.map +1 -0
- package/dist/collection/components/pami-navigation-rail/pami-navigation-rail.css +70 -1
- package/dist/collection/components/pami-navigation-rail/pami-navigation-rail.js +452 -42
- package/dist/collection/components/pami-navigation-rail/pami-navigation-rail.js.map +1 -1
- package/dist/collection/components/pami-navigation-rail-tab/pami-navigation-rail-tab.css +186 -98
- package/dist/collection/components/pami-navigation-rail-tab/pami-navigation-rail-tab.js +282 -6
- package/dist/collection/components/pami-navigation-rail-tab/pami-navigation-rail-tab.js.map +1 -1
- package/dist/collection/components/pami-navigation-tab/pami-navigation-tab.css +85 -86
- package/dist/collection/components/pami-organization-chart/pami-organization-chart.css +1 -1
- package/dist/collection/components/pami-pie-chart/pami-pie-chart.js +2 -2
- package/dist/collection/components/pami-progress-indicator/pami-progress-indicator.js +1 -1
- package/dist/collection/components/pami-radio/pami-radio.css +85 -86
- package/dist/collection/components/pami-radio/pami-radio.js +2 -2
- package/dist/collection/components/pami-rating/pami-rating.css +3 -3
- package/dist/collection/components/pami-rating/pami-rating.js +2 -2
- package/dist/collection/components/pami-ripple/pami-ripple.css +6 -5
- package/dist/collection/components/pami-ripple/pami-ripple.js +2 -9
- package/dist/collection/components/pami-ripple/pami-ripple.js.map +1 -1
- package/dist/collection/components/pami-search/pami-search.css +3 -3
- package/dist/collection/components/pami-segmented-button/pami-segmented-button.css +85 -86
- package/dist/collection/components/pami-segmented-button/pami-segmented-button.js +3 -3
- package/dist/collection/components/pami-segmented-button-set/pami-segmented-button-set.js +2 -2
- package/dist/collection/components/pami-select/pami-select.js +2 -2
- package/dist/collection/components/pami-side-sheet/pami-side-sheet.css +85 -86
- package/dist/collection/components/pami-side-sheet/pami-side-sheet.js +10 -20
- package/dist/collection/components/pami-side-sheet/pami-side-sheet.js.map +1 -1
- package/dist/collection/components/pami-skeleton/pami-skeleton.js +1 -1
- package/dist/collection/components/pami-slider/pami-slider.css +87 -88
- package/dist/collection/components/pami-snackbar/pami-snackbar.css +93 -92
- package/dist/collection/components/pami-snackbar/pami-snackbar.js +2 -2
- package/dist/collection/components/pami-split-button/pami-split-button.css +85 -86
- package/dist/collection/components/pami-split-button/pami-split-button.js +3 -3
- package/dist/collection/components/pami-step/pami-step.js +6 -6
- package/dist/collection/components/pami-stepper/pami-stepper.js +3 -3
- package/dist/collection/components/pami-sub-menu-item/pami-sub-menu-item.css +4 -4
- package/dist/collection/components/pami-sub-menu-item/pami-sub-menu-item.js +2 -2
- package/dist/collection/components/pami-switch/pami-switch.css +85 -86
- package/dist/collection/components/pami-switch/pami-switch.js +2 -2
- package/dist/collection/components/pami-tab/pami-tab.js +4 -4
- package/dist/collection/components/pami-tab-panel/pami-tab-panel.js +1 -1
- package/dist/collection/components/pami-tab-panels/pami-tab-panels.js +1 -1
- package/dist/collection/components/pami-table-body/pami-table-body.js +1 -1
- package/dist/collection/components/pami-table-cell/pami-table-cell.js +2 -2
- package/dist/collection/components/pami-table-container/pami-table-container.js +2 -2
- package/dist/collection/components/pami-table-expand-toggle/pami-table-expand-toggle.js +2 -2
- package/dist/collection/components/pami-table-foot/pami-table-foot.js +1 -1
- package/dist/collection/components/pami-table-head/pami-table-head.js +1 -1
- package/dist/collection/components/pami-table-pagination/pami-table-pagination.js +2 -2
- package/dist/collection/components/pami-table-row/pami-table-row.js +4 -4
- package/dist/collection/components/pami-table-sort-label/pami-table-sort-label.js +2 -2
- package/dist/collection/components/pami-table-toolbar/pami-table-toolbar.js +2 -2
- package/dist/collection/components/pami-tabs/pami-tabs.js +2 -2
- package/dist/collection/components/pami-tag/pami-tag.css +298 -0
- package/dist/collection/components/pami-tag/pami-tag.js +68 -0
- package/dist/collection/components/pami-tag/pami-tag.js.map +1 -0
- package/dist/collection/components/pami-text-field/pami-text-field.css +87 -88
- package/dist/collection/components/pami-toolbar/pami-toolbar.js +3 -3
- package/dist/collection/components/pami-tooltip/pami-tooltip.css +92 -93
- package/dist/collection/components/pami-transfer-list/pami-transfer-list.css +2 -2
- package/dist/collection/utils/charts/theme.js +25 -3
- package/dist/collection/utils/charts/theme.js.map +1 -1
- package/dist/collection/utils/focusable.js +38 -0
- package/dist/collection/utils/focusable.js.map +1 -0
- package/dist/collection/utils/pami-dots.js.map +1 -1
- package/dist/collection/utils/pami-material-defaults.js +194 -0
- package/dist/collection/utils/pami-material-defaults.js.map +1 -0
- package/dist/collection/utils/pami-material.js +58 -49
- package/dist/collection/utils/pami-material.js.map +1 -1
- package/dist/collection/utils/pami-motion-defaults.js +9 -0
- package/dist/collection/utils/pami-motion-defaults.js.map +1 -0
- package/dist/collection/utils/pami-painter.js +9 -7
- package/dist/collection/utils/pami-painter.js.map +1 -1
- package/dist/collection/utils/ripple.js +5 -0
- package/dist/collection/utils/ripple.js.map +1 -1
- package/dist/collection/utils/status-surface.js +7 -0
- package/dist/collection/utils/status-surface.js.map +1 -0
- package/dist/collection/wasm/engine-abi.js.map +1 -1
- package/dist/components/p-8OtaKJiC.js +2 -0
- package/dist/components/{p-DWSD26x3.js.map → p-8OtaKJiC.js.map} +1 -1
- package/dist/components/{p-DkVOc0wm.js → p-8v8oq2Gq.js} +2 -2
- package/dist/{pami/p-BFrljlvu.js → components/p-AeIwPqCK.js} +2 -2
- package/dist/components/p-BG--_h1M.js +2 -0
- package/dist/{components-csr/p-CKh3uxJF.js.map → components/p-BG--_h1M.js.map} +1 -1
- package/dist/components/{p-C3VyQE8n.js → p-BHjV4ckR.js} +2 -2
- package/dist/components/p-BHqq4sFe.js.map +1 -1
- package/dist/components/p-BOfpnjA1.js +2 -0
- package/dist/components/p-BOfpnjA1.js.map +1 -0
- package/dist/components/p-BcrEx_cg.js +2 -0
- package/dist/components/p-BcrEx_cg.js.map +1 -0
- package/dist/components/p-BhHms8Pb.js +2 -0
- package/dist/components/p-BhHms8Pb.js.map +1 -0
- package/dist/components/p-CKqNm_Q4.js +2 -0
- package/dist/components/p-CKqNm_Q4.js.map +1 -0
- package/dist/components/p-CMZVEmTF.js +2 -0
- package/dist/components/p-CMZVEmTF.js.map +1 -0
- package/dist/components/p-CaX5Betz.js +2 -0
- package/dist/components/p-CaX5Betz.js.map +1 -0
- package/dist/components/{p-Dh4RKEYp.js → p-Cf7x7Pbw.js} +2 -2
- package/dist/components/{p-BKlel-AP.js → p-CsGff_Ta.js} +2 -2
- package/dist/components/p-D-9rjUCJ.js +2 -0
- package/dist/components/p-D-9rjUCJ.js.map +1 -0
- package/dist/components/p-D5YKcPYj.js +2 -0
- package/dist/components/p-D5YKcPYj.js.map +1 -0
- package/dist/components/p-DDCz_UhF.js +2 -0
- package/dist/components/{p-BT8CI4i3.js.map → p-DDCz_UhF.js.map} +1 -1
- package/dist/components/p-DFOfsObx.js +2 -0
- package/dist/{components-csr/p-PG3r1Ywi.js.map → components/p-DFOfsObx.js.map} +1 -1
- package/dist/components/{p-CFpk8pnq.js → p-DKXYFRHy.js} +2 -2
- package/dist/components/{p-BnCqDe23.js → p-DKhFTr-2.js} +2 -2
- package/dist/components/{p-BnCqDe23.js.map → p-DKhFTr-2.js.map} +1 -1
- package/dist/components/p-DYYnx9b0.js +2 -0
- package/dist/components/{p-CKrq0VhQ.js.map → p-DYYnx9b0.js.map} +1 -1
- package/dist/components/p-DcS5GdsQ.js +2 -0
- package/dist/components/{p-DD2A_AfS.js.map → p-DcS5GdsQ.js.map} +1 -1
- package/dist/components/{p-Bf1Bx-JV.js → p-DuoeMUTq.js} +2 -2
- package/dist/{components-csr/p-g4sA3hAp.js → components/p-DzxH9m7D.js} +2 -2
- package/dist/components/pami-accordion-item.js +1 -1
- package/dist/components/pami-app-bar.js +1 -1
- package/dist/components/pami-app-bar.js.map +1 -1
- package/dist/components/pami-area-chart.js +1 -1
- package/dist/components/pami-autocomplete.js +1 -1
- package/dist/components/pami-avatar.js +1 -1
- package/dist/components/pami-badge.js +1 -1
- package/dist/components/pami-bar-chart.js +1 -1
- package/dist/components/pami-bottom-sheet.js +1 -1
- package/dist/components/pami-bottom-sheet.js.map +1 -1
- package/dist/components/pami-breadcrumb-item.js +1 -1
- package/dist/components/pami-breadcrumb-item.js.map +1 -1
- package/dist/components/pami-button.js +1 -1
- package/dist/components/pami-callout.d.ts +11 -0
- package/dist/components/pami-callout.js +2 -0
- package/dist/components/pami-callout.js.map +1 -0
- package/dist/components/pami-card.js +1 -1
- package/dist/components/pami-card.js.map +1 -1
- package/dist/components/pami-checkbox.js +1 -1
- package/dist/components/pami-chip.js +1 -1
- package/dist/components/pami-date-picker.js +1 -1
- package/dist/components/pami-date-picker.js.map +1 -1
- package/dist/components/pami-dialog.js +1 -1
- package/dist/components/pami-dialog.js.map +1 -1
- package/dist/components/pami-divider.js +1 -1
- package/dist/components/pami-fab-menu-item.js +1 -1
- package/dist/components/pami-fab-menu-item.js.map +1 -1
- package/dist/components/pami-fab-menu.js +1 -1
- package/dist/components/pami-fab.js +1 -1
- package/dist/components/pami-fab.js.map +1 -1
- package/dist/components/pami-icon-button.js +1 -1
- package/dist/components/pami-icon.js +1 -1
- package/dist/components/pami-line-chart.js +1 -1
- package/dist/components/pami-list-item.js +1 -1
- package/dist/components/pami-list-item.js.map +1 -1
- package/dist/components/pami-menu-item-group.js +1 -1
- package/dist/components/pami-menu-item-group.js.map +1 -1
- package/dist/components/pami-menu-item.js +1 -1
- package/dist/components/pami-menu.js +1 -1
- package/dist/components/pami-meter.js +1 -1
- package/dist/components/pami-multi-select.js +1 -1
- package/dist/components/pami-multi-select.js.map +1 -1
- package/dist/components/pami-navigation-bar.js +1 -1
- package/dist/components/pami-navigation-bar.js.map +1 -1
- package/dist/components/pami-navigation-group.d.ts +11 -0
- package/dist/components/pami-navigation-group.js +2 -0
- package/dist/components/pami-navigation-group.js.map +1 -0
- package/dist/components/pami-navigation-rail-tab.js +1 -1
- package/dist/components/pami-navigation-rail-tab.js.map +1 -1
- package/dist/components/pami-navigation-rail.js +1 -1
- package/dist/components/pami-navigation-rail.js.map +1 -1
- package/dist/components/pami-navigation-tab.js +1 -1
- package/dist/components/pami-navigation-tab.js.map +1 -1
- package/dist/components/pami-number-field.js +1 -1
- package/dist/components/pami-organization-chart.js +1 -1
- package/dist/components/pami-organization-chart.js.map +1 -1
- package/dist/components/pami-pie-chart.js +1 -1
- package/dist/components/pami-progress-indicator.js +1 -1
- package/dist/components/pami-radio.js +1 -1
- package/dist/components/pami-radio.js.map +1 -1
- package/dist/components/pami-rating.js +1 -1
- package/dist/components/pami-rating.js.map +1 -1
- package/dist/components/pami-ripple.js +1 -1
- package/dist/components/pami-search.js +1 -1
- package/dist/components/pami-search.js.map +1 -1
- package/dist/components/pami-segmented-button-set.js +1 -1
- package/dist/components/pami-segmented-button.js +1 -1
- package/dist/components/pami-segmented-button.js.map +1 -1
- package/dist/components/pami-select.js +1 -1
- package/dist/components/pami-side-sheet.js +1 -1
- package/dist/components/pami-side-sheet.js.map +1 -1
- package/dist/components/pami-skeleton.js +1 -1
- package/dist/components/pami-slider.js +1 -1
- package/dist/components/pami-snackbar.js +1 -1
- package/dist/components/pami-snackbar.js.map +1 -1
- package/dist/components/pami-sparkline.js +1 -1
- package/dist/components/pami-split-button.js +1 -1
- package/dist/components/pami-split-button.js.map +1 -1
- package/dist/components/pami-step.js +1 -1
- package/dist/components/pami-stepper.js +1 -1
- package/dist/components/pami-sub-menu-item.js +1 -1
- package/dist/components/pami-sub-menu-item.js.map +1 -1
- package/dist/components/pami-switch.js +1 -1
- package/dist/components/pami-switch.js.map +1 -1
- package/dist/components/pami-tab-panel.js +1 -1
- package/dist/components/pami-tab-panels.js +1 -1
- package/dist/components/pami-tab.js +1 -1
- package/dist/components/pami-table-body.js +1 -1
- package/dist/components/pami-table-cell.js +1 -1
- package/dist/components/pami-table-container.js +1 -1
- package/dist/components/pami-table-expand-toggle.js +1 -1
- package/dist/components/pami-table-foot.js +1 -1
- package/dist/components/pami-table-head.js +1 -1
- package/dist/components/pami-table-pagination.js +1 -1
- package/dist/components/pami-table-row.js +1 -1
- package/dist/components/pami-table-sort-label.js +1 -1
- package/dist/components/pami-table-toolbar.js +1 -1
- package/dist/components/pami-table.js +1 -1
- package/dist/components/pami-tabs.js +1 -1
- package/dist/components/pami-tag.d.ts +11 -0
- package/dist/components/pami-tag.js +2 -0
- package/dist/components/pami-tag.js.map +1 -0
- package/dist/components/pami-text-field.js +1 -1
- package/dist/components/pami-time-picker.js +1 -1
- package/dist/components/pami-toolbar.js +1 -1
- package/dist/components/pami-tooltip.js +1 -1
- package/dist/components/pami-transfer-list.js +1 -1
- package/dist/components/pami-transfer-list.js.map +1 -1
- package/dist/{components/p-DneLEiFl.js → components-csr/p-AeIwPqCK.js} +2 -2
- package/dist/components-csr/p-BHqq4sFe.js.map +1 -1
- package/dist/components-csr/p-B_b8a4Fl.js +2 -0
- package/dist/components-csr/p-B_b8a4Fl.js.map +1 -0
- package/dist/components-csr/p-BhHms8Pb.js +2 -0
- package/dist/components-csr/p-BhHms8Pb.js.map +1 -0
- package/dist/components-csr/{p-Dq_XLtjQ.js → p-BubrJNco.js} +2 -2
- package/dist/components-csr/{p-Iozt_nIr.js → p-C1ChEady.js} +2 -2
- package/dist/components-csr/p-C7-2STYZ.js +2 -0
- package/dist/components-csr/{p-BN5fTT2p.js.map → p-C7-2STYZ.js.map} +1 -1
- package/dist/components-csr/{p-DYa7FJrs.js → p-CC0KCIVL.js} +2 -2
- package/dist/components-csr/{p-C2f3W2Bc.js → p-CCLyUnYm.js} +2 -2
- package/dist/components-csr/{p-C2f3W2Bc.js.map → p-CCLyUnYm.js.map} +1 -1
- package/dist/components-csr/p-CCjSxvVk.js +2 -0
- package/dist/{components/p-DQG2QiqW.js.map → components-csr/p-CCjSxvVk.js.map} +1 -1
- package/dist/components-csr/p-CEXhFms9.js +2 -0
- package/dist/components-csr/{p-BeWJtYZz.js.map → p-CEXhFms9.js.map} +1 -1
- package/dist/components-csr/{p-wjnroiZn.js → p-CYTOzIlz.js} +2 -2
- package/dist/components-csr/{p-BKlel-AP.js → p-CsGff_Ta.js} +2 -2
- package/dist/components-csr/p-D-9rjUCJ.js +2 -0
- package/dist/components-csr/p-D-9rjUCJ.js.map +1 -0
- package/dist/components-csr/p-D5YKcPYj.js +2 -0
- package/dist/components-csr/p-D5YKcPYj.js.map +1 -0
- package/dist/components-csr/{p-CFpk8pnq.js → p-DKXYFRHy.js} +2 -2
- package/dist/components-csr/p-DTQ249Fz.js +2 -0
- package/dist/components-csr/p-DTQ249Fz.js.map +1 -0
- package/dist/components-csr/p-DbpI0Jma.js +2 -0
- package/dist/components-csr/p-DbpI0Jma.js.map +1 -0
- package/dist/components-csr/p-DqlfsJFI.js +2 -0
- package/dist/components-csr/p-DqlfsJFI.js.map +1 -0
- package/dist/components-csr/p-DvPstOrO.js +2 -0
- package/dist/components-csr/{p-dksxS2yM.js.map → p-DvPstOrO.js.map} +1 -1
- package/dist/components-csr/p-DxiLsbpD.js +2 -0
- package/dist/components-csr/p-DxiLsbpD.js.map +1 -0
- package/dist/{components/p-g4sA3hAp.js → components-csr/p-DzxH9m7D.js} +2 -2
- package/dist/components-csr/p-F3cB-9hU.js +2 -0
- package/dist/{components/p-BZcBbRYY.js.map → components-csr/p-F3cB-9hU.js.map} +1 -1
- package/dist/components-csr/p-sSc4gYQy.js +2 -0
- package/dist/components-csr/{p-D4njrR9m.js.map → p-sSc4gYQy.js.map} +1 -1
- package/dist/components-csr/pami-accordion-item.js +1 -1
- package/dist/components-csr/pami-app-bar.js +1 -1
- package/dist/components-csr/pami-app-bar.js.map +1 -1
- package/dist/components-csr/pami-area-chart.js +1 -1
- package/dist/components-csr/pami-autocomplete.js +1 -1
- package/dist/components-csr/pami-avatar.js +1 -1
- package/dist/components-csr/pami-badge.js +1 -1
- package/dist/components-csr/pami-bar-chart.js +1 -1
- package/dist/components-csr/pami-bottom-sheet.js +1 -1
- package/dist/components-csr/pami-bottom-sheet.js.map +1 -1
- package/dist/components-csr/pami-breadcrumb-item.js +1 -1
- package/dist/components-csr/pami-breadcrumb-item.js.map +1 -1
- package/dist/components-csr/pami-button.js +1 -1
- package/dist/components-csr/pami-callout.js +2 -0
- package/dist/components-csr/pami-callout.js.map +1 -0
- package/dist/components-csr/pami-card.js +1 -1
- package/dist/components-csr/pami-card.js.map +1 -1
- package/dist/components-csr/pami-checkbox.js +1 -1
- package/dist/components-csr/pami-chip.js +1 -1
- package/dist/components-csr/pami-date-picker.js +1 -1
- package/dist/components-csr/pami-date-picker.js.map +1 -1
- package/dist/components-csr/pami-dialog.js +1 -1
- package/dist/components-csr/pami-dialog.js.map +1 -1
- package/dist/components-csr/pami-divider.js +1 -1
- package/dist/components-csr/pami-fab-menu-item.js +1 -1
- package/dist/components-csr/pami-fab-menu-item.js.map +1 -1
- package/dist/components-csr/pami-fab-menu.js +1 -1
- package/dist/components-csr/pami-fab.js +1 -1
- package/dist/components-csr/pami-fab.js.map +1 -1
- package/dist/components-csr/pami-icon-button.js +1 -1
- package/dist/components-csr/pami-icon.js +1 -1
- package/dist/components-csr/pami-line-chart.js +1 -1
- package/dist/components-csr/pami-list-item.js +1 -1
- package/dist/components-csr/pami-list-item.js.map +1 -1
- package/dist/components-csr/pami-menu-item-group.js +1 -1
- package/dist/components-csr/pami-menu-item-group.js.map +1 -1
- package/dist/components-csr/pami-menu-item.js +1 -1
- package/dist/components-csr/pami-menu.js +1 -1
- package/dist/components-csr/pami-meter.js +1 -1
- package/dist/components-csr/pami-multi-select.js +1 -1
- package/dist/components-csr/pami-multi-select.js.map +1 -1
- package/dist/components-csr/pami-navigation-bar.js +1 -1
- package/dist/components-csr/pami-navigation-bar.js.map +1 -1
- package/dist/components-csr/pami-navigation-group.js +2 -0
- package/dist/components-csr/pami-navigation-group.js.map +1 -0
- package/dist/components-csr/pami-navigation-rail-tab.js +1 -1
- package/dist/components-csr/pami-navigation-rail-tab.js.map +1 -1
- package/dist/components-csr/pami-navigation-rail.js +1 -1
- package/dist/components-csr/pami-navigation-rail.js.map +1 -1
- package/dist/components-csr/pami-navigation-tab.js +1 -1
- package/dist/components-csr/pami-navigation-tab.js.map +1 -1
- package/dist/components-csr/pami-number-field.js +1 -1
- package/dist/components-csr/pami-organization-chart.js +1 -1
- package/dist/components-csr/pami-organization-chart.js.map +1 -1
- package/dist/components-csr/pami-pie-chart.js +1 -1
- package/dist/components-csr/pami-progress-indicator.js +1 -1
- package/dist/components-csr/pami-radio.js +1 -1
- package/dist/components-csr/pami-radio.js.map +1 -1
- package/dist/components-csr/pami-rating.js +1 -1
- package/dist/components-csr/pami-rating.js.map +1 -1
- package/dist/components-csr/pami-ripple.js +1 -1
- package/dist/components-csr/pami-search.js +1 -1
- package/dist/components-csr/pami-search.js.map +1 -1
- package/dist/components-csr/pami-segmented-button-set.js +1 -1
- package/dist/components-csr/pami-segmented-button.js +1 -1
- package/dist/components-csr/pami-segmented-button.js.map +1 -1
- package/dist/components-csr/pami-select.js +1 -1
- package/dist/components-csr/pami-side-sheet.js +1 -1
- package/dist/components-csr/pami-side-sheet.js.map +1 -1
- package/dist/components-csr/pami-skeleton.js +1 -1
- package/dist/components-csr/pami-slider.js +1 -1
- package/dist/components-csr/pami-snackbar.js +1 -1
- package/dist/components-csr/pami-snackbar.js.map +1 -1
- package/dist/components-csr/pami-sparkline.js +1 -1
- package/dist/components-csr/pami-split-button.js +1 -1
- package/dist/components-csr/pami-split-button.js.map +1 -1
- package/dist/components-csr/pami-step.js +1 -1
- package/dist/components-csr/pami-stepper.js +1 -1
- package/dist/components-csr/pami-sub-menu-item.js +1 -1
- package/dist/components-csr/pami-sub-menu-item.js.map +1 -1
- package/dist/components-csr/pami-switch.js +1 -1
- package/dist/components-csr/pami-switch.js.map +1 -1
- package/dist/components-csr/pami-tab-panel.js +1 -1
- package/dist/components-csr/pami-tab-panels.js +1 -1
- package/dist/components-csr/pami-tab.js +1 -1
- package/dist/components-csr/pami-table-body.js +1 -1
- package/dist/components-csr/pami-table-cell.js +1 -1
- package/dist/components-csr/pami-table-container.js +1 -1
- package/dist/components-csr/pami-table-expand-toggle.js +1 -1
- package/dist/components-csr/pami-table-foot.js +1 -1
- package/dist/components-csr/pami-table-head.js +1 -1
- package/dist/components-csr/pami-table-pagination.js +1 -1
- package/dist/components-csr/pami-table-row.js +1 -1
- package/dist/components-csr/pami-table-sort-label.js +1 -1
- package/dist/components-csr/pami-table-toolbar.js +1 -1
- package/dist/components-csr/pami-table.js +1 -1
- package/dist/components-csr/pami-tabs.js +1 -1
- package/dist/components-csr/pami-tag.js +2 -0
- package/dist/components-csr/pami-tag.js.map +1 -0
- package/dist/components-csr/pami-text-field.js +1 -1
- package/dist/components-csr/pami-time-picker.js +1 -1
- package/dist/components-csr/pami-toolbar.js +1 -1
- package/dist/components-csr/pami-tooltip.js +1 -1
- package/dist/components-csr/pami-transfer-list.js +1 -1
- package/dist/components-csr/pami-transfer-list.js.map +1 -1
- package/dist/esm/{a11y-DF7yzz7s.js → a11y-CFk62WKO.js} +3 -3
- package/dist/esm/{a11y-DF7yzz7s.js.map → a11y-CFk62WKO.js.map} +1 -1
- package/dist/esm/{bar-chart-BNtUGWrj.js → bar-chart-lQiYsj4t.js} +4 -4
- package/dist/esm/{bar-chart-BNtUGWrj.js.map → bar-chart-lQiYsj4t.js.map} +1 -1
- package/dist/esm/{chart-C1fPeEiw.js → chart-DGgh0ehg.js} +4 -4
- package/dist/esm/{chart-C1fPeEiw.js.map → chart-DGgh0ehg.js.map} +1 -1
- package/dist/esm/{hit-test-VKGhXvU8.js → hit-test-CwC3GJmi.js} +3 -3
- package/dist/esm/{hit-test-VKGhXvU8.js.map → hit-test-CwC3GJmi.js.map} +1 -1
- package/dist/esm/isolation-escape-D19ZgNkU.js +90 -0
- package/dist/esm/isolation-escape-D19ZgNkU.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pami-app-bar.entry.js +2 -2
- package/dist/esm/pami-app-bar.entry.js.map +1 -1
- package/dist/esm/pami-area-chart.entry.js +4 -4
- package/dist/esm/pami-avatar_2.entry.js +2 -2
- package/dist/esm/pami-avatar_2.entry.js.map +1 -1
- package/dist/esm/pami-bar-chart.entry.js +4 -4
- package/dist/esm/pami-bottom-sheet.entry.js +2 -2
- package/dist/esm/pami-bottom-sheet.entry.js.map +1 -1
- package/dist/esm/pami-breadcrumb-item.entry.js +2 -2
- package/dist/esm/pami-breadcrumb-item.entry.js.map +1 -1
- package/dist/esm/pami-button_7.entry.js +23 -39
- package/dist/esm/pami-button_7.entry.js.map +1 -1
- package/dist/esm/pami-callout.entry.js +28 -0
- package/dist/esm/pami-callout.entry.js.map +1 -0
- package/dist/esm/pami-checkbox.entry.js +5 -5
- package/dist/esm/pami-checkbox.entry.js.map +1 -1
- package/dist/esm/pami-chip.entry.js +5 -5
- package/dist/esm/pami-chip.entry.js.map +1 -1
- package/dist/esm/pami-date-picker.entry.js +4 -5
- package/dist/esm/pami-date-picker.entry.js.map +1 -1
- package/dist/esm/pami-dialog.entry.js +4 -4
- package/dist/esm/pami-dialog.entry.js.map +1 -1
- package/dist/esm/pami-divider.entry.js +2 -2
- package/dist/esm/pami-fab-menu-item.entry.js +5 -5
- package/dist/esm/pami-fab-menu-item.entry.js.map +1 -1
- package/dist/esm/pami-fab-menu.entry.js +2 -2
- package/dist/esm/pami-fab.entry.js +5 -5
- package/dist/esm/pami-fab.entry.js.map +1 -1
- package/dist/esm/pami-line-chart.entry.js +6 -6
- package/dist/esm/pami-list-item.entry.js +2 -2
- package/dist/esm/pami-list-item.entry.js.map +1 -1
- package/dist/esm/pami-menu-item-group.entry.js +2 -2
- package/dist/esm/pami-menu-item-group.entry.js.map +1 -1
- package/dist/esm/pami-menu_2.entry.js +4 -87
- package/dist/esm/pami-menu_2.entry.js.map +1 -1
- package/dist/esm/pami-meter.entry.js +2 -2
- package/dist/esm/pami-multi-select.entry.js +3 -3
- package/dist/esm/pami-multi-select.entry.js.map +1 -1
- package/dist/esm/pami-navigation-bar.entry.js +2 -2
- package/dist/esm/pami-navigation-bar.entry.js.map +1 -1
- package/dist/esm/pami-navigation-group.entry.js +22 -0
- package/dist/esm/pami-navigation-group.entry.js.map +1 -0
- package/dist/esm/pami-navigation-rail-tab.entry.js +157 -10
- package/dist/esm/pami-navigation-rail-tab.entry.js.map +1 -1
- package/dist/esm/pami-navigation-rail.entry.js +211 -29
- package/dist/esm/pami-navigation-rail.entry.js.map +1 -1
- package/dist/esm/pami-navigation-tab.entry.js +3 -3
- package/dist/esm/pami-navigation-tab.entry.js.map +1 -1
- package/dist/esm/pami-organization-chart.entry.js +1 -1
- package/dist/esm/pami-organization-chart.entry.js.map +1 -1
- package/dist/esm/{pami-painter-BWqbBPaI.js → pami-painter-DOkewauC.js} +260 -57
- package/dist/esm/pami-painter-DOkewauC.js.map +1 -0
- package/dist/esm/pami-pie-chart.entry.js +4 -4
- package/dist/esm/pami-progress-indicator.entry.js +1 -1
- package/dist/esm/pami-rating.entry.js +3 -3
- package/dist/esm/pami-rating.entry.js.map +1 -1
- package/dist/esm/pami-search.entry.js +1 -1
- package/dist/esm/pami-search.entry.js.map +1 -1
- package/dist/esm/pami-segmented-button-set.entry.js +2 -2
- package/dist/esm/pami-segmented-button.entry.js +6 -6
- package/dist/esm/pami-segmented-button.entry.js.map +1 -1
- package/dist/esm/pami-select.entry.js +2 -2
- package/dist/esm/pami-side-sheet.entry.js +49 -22
- package/dist/esm/pami-side-sheet.entry.js.map +1 -1
- package/dist/esm/pami-skeleton.entry.js +1 -1
- package/dist/esm/pami-slider.entry.js +2 -2
- package/dist/esm/pami-slider.entry.js.map +1 -1
- package/dist/esm/pami-sparkline.entry.js +4 -4
- package/dist/esm/pami-split-button.entry.js +6 -6
- package/dist/esm/pami-split-button.entry.js.map +1 -1
- package/dist/esm/pami-step.entry.js +7 -7
- package/dist/esm/pami-stepper.entry.js +3 -3
- package/dist/esm/pami-sub-menu-item.entry.js +4 -4
- package/dist/esm/pami-sub-menu-item.entry.js.map +1 -1
- package/dist/esm/pami-switch.entry.js +4 -4
- package/dist/esm/pami-switch.entry.js.map +1 -1
- package/dist/esm/pami-tab-panel.entry.js +1 -1
- package/dist/esm/pami-tab-panels.entry.js +1 -1
- package/dist/esm/pami-tab.entry.js +5 -5
- package/dist/esm/pami-table-body.entry.js +1 -1
- package/dist/esm/pami-table-cell.entry.js +2 -2
- package/dist/esm/pami-table-container.entry.js +2 -2
- package/dist/esm/pami-table-expand-toggle.entry.js +2 -2
- package/dist/esm/pami-table-foot.entry.js +1 -1
- package/dist/esm/pami-table-head.entry.js +1 -1
- package/dist/esm/pami-table-pagination.entry.js +2 -2
- package/dist/esm/pami-table-row.entry.js +4 -4
- package/dist/esm/pami-table-sort-label.entry.js +2 -2
- package/dist/esm/pami-table-toolbar.entry.js +2 -2
- package/dist/esm/pami-tabs.entry.js +2 -2
- package/dist/esm/pami-tag.entry.js +25 -0
- package/dist/esm/pami-tag.entry.js.map +1 -0
- package/dist/esm/pami-text-field.entry.js +2 -2
- package/dist/esm/pami-text-field.entry.js.map +1 -1
- package/dist/esm/pami-toolbar.entry.js +3 -3
- package/dist/esm/pami-transfer-list.entry.js +1 -1
- package/dist/esm/pami-transfer-list.entry.js.map +1 -1
- package/dist/esm/pami.js +1 -1
- package/dist/esm/{ripple-DT5RL9GH.js → ripple-BcReJziW.js} +7 -2
- package/dist/esm/ripple-BcReJziW.js.map +1 -0
- package/dist/esm/{rtl-CC7FhM00.js → rtl-Cd87AK5r.js} +27 -5
- package/dist/esm/rtl-Cd87AK5r.js.map +1 -0
- package/dist/esm/status-surface-D5YKcPYj.js +11 -0
- package/dist/esm/status-surface-D5YKcPYj.js.map +1 -0
- package/dist/esm/virtual-select-controller-Dr_fPcoz.js.map +1 -1
- package/dist/pami/p-056cbfbc.entry.js +2 -0
- package/dist/pami/{p-2067b15d.entry.js.map → p-056cbfbc.entry.js.map} +1 -1
- package/dist/pami/p-0bf56063.entry.js +2 -0
- package/dist/pami/{p-f33d5f4a.entry.js.map → p-0bf56063.entry.js.map} +1 -1
- package/dist/pami/p-0e965950.entry.js +2 -0
- package/dist/pami/{p-0fcc82b3.entry.js.map → p-0e965950.entry.js.map} +1 -1
- package/dist/pami/p-105fff09.entry.js +2 -0
- package/dist/pami/{p-ec67197c.entry.js.map → p-105fff09.entry.js.map} +1 -1
- package/dist/pami/{p-bc63e548.entry.js → p-14668a82.entry.js} +2 -2
- package/dist/pami/{p-cdd36757.entry.js → p-1468d5c4.entry.js} +2 -2
- package/dist/pami/p-1cafa0bb.entry.js +2 -0
- package/dist/pami/p-1cafa0bb.entry.js.map +1 -0
- package/dist/pami/p-20fb765c.entry.js +2 -0
- package/dist/pami/{p-309b4e6d.entry.js.map → p-20fb765c.entry.js.map} +1 -1
- package/dist/pami/{p-a4a2f7e2.entry.js → p-230b51cc.entry.js} +2 -2
- package/dist/pami/{p-f6d50fc7.entry.js → p-253bb306.entry.js} +2 -2
- package/dist/pami/{p-c087aa2d.entry.js → p-27ba3c65.entry.js} +2 -2
- package/dist/pami/{p-3577517b.entry.js → p-2c9fef75.entry.js} +2 -2
- package/dist/pami/{p-2fa9e712.entry.js → p-3031787d.entry.js} +2 -2
- package/dist/pami/p-35c2a89b.entry.js +2 -0
- package/dist/pami/{p-688017eb.entry.js.map → p-35c2a89b.entry.js.map} +1 -1
- package/dist/pami/{p-27208b60.entry.js → p-39a6add3.entry.js} +2 -2
- package/dist/pami/{p-ed0554c3.entry.js → p-3fc31b91.entry.js} +2 -2
- package/dist/pami/p-475ee072.entry.js +2 -0
- package/dist/pami/{p-6753c7a1.entry.js.map → p-475ee072.entry.js.map} +1 -1
- package/dist/pami/p-511a1ee2.entry.js +2 -0
- package/dist/pami/{p-7415982c.entry.js.map → p-511a1ee2.entry.js.map} +1 -1
- package/dist/pami/{p-91d25664.entry.js → p-513685d7.entry.js} +2 -2
- package/dist/pami/p-59ddac87.entry.js +2 -0
- package/dist/pami/p-59ddac87.entry.js.map +1 -0
- package/dist/pami/p-5baf125c.entry.js +2 -0
- package/dist/pami/{p-bd2fb99f.entry.js.map → p-5baf125c.entry.js.map} +1 -1
- package/dist/pami/p-636faa29.entry.js +2 -0
- package/dist/pami/p-6bae2a7c.entry.js +2 -0
- package/dist/pami/{p-b2704345.entry.js.map → p-6bae2a7c.entry.js.map} +1 -1
- package/dist/pami/p-70dbf9e1.entry.js +2 -0
- package/dist/pami/{p-6cd18c0d.entry.js.map → p-70dbf9e1.entry.js.map} +1 -1
- package/dist/pami/{p-b193dd1d.entry.js → p-71d62a04.entry.js} +2 -2
- package/dist/pami/{p-3b859d3c.entry.js → p-72d9ed2c.entry.js} +2 -2
- package/dist/pami/{p-5202ded3.entry.js → p-74673292.entry.js} +2 -2
- package/dist/pami/p-76869b29.entry.js +2 -0
- package/dist/pami/p-80a613c4.entry.js +2 -0
- package/dist/pami/{p-dd4d87c2.entry.js.map → p-80a613c4.entry.js.map} +1 -1
- package/dist/pami/p-820ec742.entry.js +2 -0
- package/dist/pami/{p-6a29a776.entry.js.map → p-820ec742.entry.js.map} +1 -1
- package/dist/pami/p-837a6389.entry.js +2 -0
- package/dist/pami/{p-d7504084.entry.js.map → p-837a6389.entry.js.map} +1 -1
- package/dist/pami/p-8381c008.entry.js +2 -0
- package/dist/pami/{p-7788c931.entry.js → p-86b07f8c.entry.js} +2 -2
- package/dist/pami/p-9178ea2e.entry.js +2 -0
- package/dist/pami/{p-a304bc4f.entry.js.map → p-9178ea2e.entry.js.map} +1 -1
- package/dist/pami/p-98683da9.entry.js +2 -0
- package/dist/pami/p-98683da9.entry.js.map +1 -0
- package/dist/pami/p-9a353a79.entry.js +2 -0
- package/dist/pami/{p-19669ac1.entry.js.map → p-9a353a79.entry.js.map} +1 -1
- package/dist/pami/p-9be87f6a.entry.js +2 -0
- package/dist/pami/p-9be87f6a.entry.js.map +1 -0
- package/dist/pami/{p-B2g1f_O7.js → p-BBBPC79O.js} +2 -2
- package/dist/pami/{p-B2g1f_O7.js.map → p-BBBPC79O.js.map} +1 -1
- package/dist/pami/p-BHqq4sFe.js.map +1 -1
- package/dist/pami/p-BcReJziW.js +2 -0
- package/dist/pami/p-BcReJziW.js.map +1 -0
- package/dist/pami/{p-C9EuleXc.js → p-C0lgexyr.js} +2 -2
- package/dist/pami/{p-C9EuleXc.js.map → p-C0lgexyr.js.map} +1 -1
- package/dist/{components-csr/p-DneLEiFl.js → pami/p-CAbSnOPc.js} +2 -2
- package/dist/pami/{p-BFrljlvu.js.map → p-CAbSnOPc.js.map} +1 -1
- package/dist/pami/p-CO-2MY9L.js +2 -0
- package/dist/pami/p-CO-2MY9L.js.map +1 -0
- package/dist/pami/p-Cd87AK5r.js +2 -0
- package/dist/pami/p-Cd87AK5r.js.map +1 -0
- package/dist/pami/{p-BH7SGm-U.js → p-Cln3qKA1.js} +2 -2
- package/dist/pami/{p-BH7SGm-U.js.map → p-Cln3qKA1.js.map} +1 -1
- package/dist/pami/p-D-9rjUCJ.js +2 -0
- package/dist/pami/p-D-9rjUCJ.js.map +1 -0
- package/dist/pami/p-D5YKcPYj.js +2 -0
- package/dist/pami/p-D5YKcPYj.js.map +1 -0
- package/dist/pami/{p-a516fb19.entry.js → p-a019a982.entry.js} +2 -2
- package/dist/pami/{p-0435815b.entry.js → p-aa031eb5.entry.js} +2 -2
- package/dist/pami/p-b361c9df.entry.js +2 -0
- package/dist/pami/{p-4ba67b88.entry.js.map → p-b361c9df.entry.js.map} +1 -1
- package/dist/pami/p-b5ad00c7.entry.js +2 -0
- package/dist/pami/{p-3b5862ac.entry.js.map → p-b5ad00c7.entry.js.map} +1 -1
- package/dist/pami/{p-dcd9abf8.entry.js → p-b928a212.entry.js} +2 -2
- package/dist/pami/{p-dcd9abf8.entry.js.map → p-b928a212.entry.js.map} +1 -1
- package/dist/pami/p-bac3fd4b.entry.js +2 -0
- package/dist/pami/{p-542e81de.entry.js.map → p-bac3fd4b.entry.js.map} +1 -1
- package/dist/pami/{p-42cda324.entry.js → p-be632c39.entry.js} +2 -2
- package/dist/pami/p-bf2e4ee5.entry.js +2 -0
- package/dist/pami/p-bf2e4ee5.entry.js.map +1 -0
- package/dist/pami/{p-ea6e514b.entry.js → p-c02334c0.entry.js} +2 -2
- package/dist/pami/p-c2d67784.entry.js +2 -0
- package/dist/pami/{p-c0fe2248.entry.js.map → p-c2d67784.entry.js.map} +1 -1
- package/dist/pami/{p-2391ef6b.entry.js → p-c717cd31.entry.js} +2 -2
- package/dist/pami/{p-d3ad1da1.entry.js → p-cd63ef03.entry.js} +2 -2
- package/dist/pami/{p-0f29f2bd.entry.js → p-cfc88755.entry.js} +2 -2
- package/dist/pami/p-d4e1fa44.entry.js +2 -0
- package/dist/pami/{p-b6b7092b.entry.js.map → p-d4e1fa44.entry.js.map} +1 -1
- package/dist/pami/p-d540f586.entry.js +2 -0
- package/dist/pami/p-d540f586.entry.js.map +1 -0
- package/dist/pami/p-d6de57b2.entry.js +2 -0
- package/dist/pami/{p-f3798dc6.entry.js.map → p-d6de57b2.entry.js.map} +1 -1
- package/dist/pami/{p-14497ccf.entry.js → p-daf42aec.entry.js} +2 -2
- package/dist/pami/{p-b8234190.entry.js → p-db1ee1b9.entry.js} +2 -2
- package/dist/pami/p-db30e449.entry.js +2 -0
- package/dist/pami/{p-60beacc5.entry.js.map → p-db30e449.entry.js.map} +1 -1
- package/dist/pami/{p-836652ad.entry.js → p-df18bacb.entry.js} +2 -2
- package/dist/pami/p-e08729f9.entry.js +2 -0
- package/dist/pami/p-e08729f9.entry.js.map +1 -0
- package/dist/pami/p-e65964e6.entry.js +2 -0
- package/dist/pami/p-e65964e6.entry.js.map +1 -0
- package/dist/pami/{p-81c06d88.entry.js → p-eb41f4e0.entry.js} +2 -2
- package/dist/pami/{p-4c023e51.entry.js → p-f29f90b0.entry.js} +2 -2
- package/dist/pami/p-fdee2733.entry.js +2 -0
- package/dist/pami/p-fdee2733.entry.js.map +1 -0
- package/dist/pami/pami.css +1 -1
- package/dist/pami/pami.esm.js +1 -1
- package/dist/sources/0278a6f5523ac1971fe0eadaee435bb3fd1dab609b7ec764bb3ba27e6aa8fb9f/pami-tag.tsx +30 -0
- package/dist/sources/{2ca06a25aa09d16ee580ce4db2554dafa516510b11f32021ef8f6fb04f823f74 → 13a6bd84ea4ee85906df60baa09ea92c604bf646ce3185706eb1c0266895d4ed}/pami-dots.tsx +1 -1
- package/dist/sources/{3df1210c7755e2386ccdc6e29e251b9678dc7c26acc9889678e769f5d1e5fd42 → 1ca4bc0c0956feb952356552e336ba66adf3965c09f29c3789fec9cefa0c3544}/pami-tooltip.css_tag_pami-tooltip_encapsulation_shadow +7 -7
- package/dist/sources/{bab5cb1d4daef5470d47d7ab2d6a75eaccfea977da04caf9c3a95ba2faa3f44e → 22a900318c9e4ddcd6f822b3d01aef0ea4c8ff892de0523df9e150f102ac6e5c}/pami-navigation-rail.css_tag_pami-navigation-rail_encapsulation_shadow +70 -1
- package/dist/sources/23a624b39d421b326032df3fec7a6eb8efe63812913db4f295c846a801bcc2df/focusable.ts +30 -0
- package/dist/sources/{ad8dae24c0940d3d78e73c208a2174be0f44c17ad88d5c14bc2a8b63fc919a17 → 24aa796cdc2df026b1d4e1a916907dd4e7c027698a43fa800d853d6f21b753cb}/pami-organization-chart.css_tag_pami-organization-chart_encapsulation_shadow +1 -1
- package/dist/sources/282c6204b17cf224fa1c29c70b7eeca1f5026f4ca7d81056eef97db0249e4415/pami-callout.css_tag_pami-callout_encapsulation_shadow +21 -0
- package/dist/sources/31bcc0fc5bd4de92e30b1fd5d74fa98dc0049dfc15c6a020e71906684f155025/pami-callout.tsx +42 -0
- package/dist/sources/35e1ffdb7ade27d0dcc5f5a0b602351b4356ad348211a54bf9cdfb7ebef83787/pami-navigation-group.css_tag_pami-navigation-group_encapsulation_shadow +30 -0
- package/dist/sources/3a78d70fc3ef5cd9c2b84b578e8aa4375e3512fe678f067f38b2eeec94cfade4/status-surface.ts +7 -0
- package/dist/sources/{6c163582408b4d7bc04a9c1a1f80b01e5861719f85f7e9f35667a619e50f9a0d → 4e65fa3e48826997c92b075221b722d889fbb59033628dc409191a69bb0ef1e0}/pami-menu.css_tag_pami-menu_encapsulation_shadow +1 -1
- package/dist/sources/527cfd468257c872834df7758243d5de17f075578964fb4b2d854046eebf0b2e/pami-motion-defaults.ts +8 -0
- package/dist/sources/{f057ec9cc9b2bc271fc6cafb5a9e886c1f2f88b76678d917b60de199571abccd → 541eb7b972849c16a3b860f7ea1c30751a98f8fc521a6ca03791ce5d0fe9426e}/pami-menu-item-group.css_tag_pami-menu-item-group_encapsulation_shadow +2 -2
- package/dist/sources/{ae8a116d7a4ea11a820767e5165db1e532a538eb8ba9ed5f4dc5a47e806ae4e6 → 59e0809dd478584dd6e8662e903cd5a0186609577db7b77a0479bd247f0d0735}/pami-side-sheet.tsx +13 -27
- package/dist/sources/{23e3c0a6f1c4ed86fe96ca5d8788e5cf6464e2be07031fd644120ea4efc313bf → 655cbc888435fe150257bfbd2fe21a572779617ba76cd567ac7d78e06a1ae431}/ripple.ts +6 -2
- package/dist/sources/{fc66575830503cd73ba7d3bedde73217b0f304d317ca851afd9e791ddad97fb5 → 6562889930d75426b2d8c57a2a68e8cb5a1540c9cc7fc5ae289092574ae223d0}/pami-navigation-rail-tab.tsx +200 -15
- package/dist/sources/{dd8e7de0b6aeaafd88a8d13123e5d07588ab74d8773cd80f70de293e28041436 → 6bab0e0b67c3b4abbb85cf631ad2af114271f98b795e2f2644810bffe75d1522}/pami-sub-menu-item.css_tag_pami-sub-menu-item_encapsulation_shadow +4 -4
- package/dist/sources/7a4b29a22f5e14ab4f0918effe1b91ad9ae6076553b826cc90edf6e43879cba0/pami-material-defaults.ts +193 -0
- package/dist/sources/7e8a1b22f1a1cb54b4b7cdad4bbfad9606419cf010636f6174da980089144636/pami-navigation-group.tsx +26 -0
- package/dist/sources/{0d91fa3bea6a6c8c693b8dca19946aef1b86d6f793f181210e5863de09b4aebb → 89368cfde7ecd06ee05b5493ce0f0503fd48fd12c4d8f2cb47610eb38157fe71}/pami-material.ts +63 -59
- package/dist/sources/9259130eb26707816d2f73de6a6b83ded1d342166d4bee8d7c5799f47e0ce776/pami-tag.css_tag_pami-tag_encapsulation_shadow +21 -0
- package/dist/sources/{7b02ffe2929f3ab24d21441af70c419cc2a0ca0c729de1ab51220ae5dc096f43 → 99e17d776c986eca5093163516c22279037bdf5d42f009db8f128413ae5cdeb2}/pami-search.css_tag_pami-search_encapsulation_shadow +3 -3
- package/dist/sources/{9a58a561a902b8eb3fa212160fb365c303f6ea7d5687af2abbd199d33c031650 → a430938d1fedf6a7b604b1dc070760d52bd2733dd0ff8aed7a704d2b28374333}/pami-navigation-rail-tab.css_tag_pami-navigation-rail-tab_encapsulation_shadow +101 -12
- package/dist/sources/{d80b6e4787aedf6628772d776d5d57b77be707a870bb78623a294a319b40bb3e → b05e116ff2b2e46fa76f8b32a21147a5275ac6550d59caafe834aad82bb2eed0}/pami-text-field.css_tag_pami-text-field_encapsulation_shadow +2 -2
- package/dist/sources/{f6fe21d8ade03a04388b25dd1e4a67e8ac84e5266632336311b9baf5e3e84d69 → b9bac20e73b763e4fd71ade205acf3179f48016689659d32fc5e9f723ec85c0a}/pami-menu-item.css_tag_pami-menu-item_encapsulation_shadow +5 -5
- package/dist/sources/{5fe0a66f80f0c4e661475395d7877a25335c605cf4fb02649bd887ab73564259 → bd61b0a219bfab84d1e6663df7c8df2dcf7395ad6110036c14874aa788023c15}/pami-slider.css_tag_pami-slider_encapsulation_shadow +2 -2
- package/dist/sources/{4dfc9c9d5e8fa39922a949409e66b9109463b97f0216334358921d4359cb61d6 → c176f6ce79521b5b70160c1a13b338d00bb4a90ee56911e0e043d4357dcd7e2a}/pami-multi-select.css_tag_pami-multi-select_encapsulation_shadow +4 -4
- package/dist/sources/{401e8c4f1d9d32aa7fb3d874c070d5e22bec9ef7a8300826a07b4df525e3e8a8 → c519dd6bf9591ea0961eb52e22d71ceabf68824f19be3bc1320cd3b7d0d06a78}/engine-abi.ts +1 -1
- package/dist/sources/{9230de3e79e81a5d82c53463873054c838e407aaaa6b4d83adba3e6420e1b668 → cafd0118f482317824eba435efde10692a0127e2c8104a754ac33b2e7607ef96}/pami-snackbar.css_tag_pami-snackbar_encapsulation_shadow +8 -6
- package/dist/sources/{8889443144c58e5dc85b288bf6f749a4142b4193f110787d5c2daddd1bd83700 → d72b349c2c336f88909a4c9e1f34cfaa824d2ccecad96b73da0ab6749bc810dd}/pami-ripple.tsx +1 -8
- package/dist/sources/{11e2d73298037a1e448521a045b253837dc5dfbb94e72a1c8afdb506a4759743 → dafd4f816d3de4b66b9eb2595187284bdb6a77e48afdc32d7a5166a2616d38bd}/pami-painter.ts +17 -11
- package/dist/sources/{3f7b937a1eddf96604fddc1dc0d30b4772f761c6f8fbacf7fa7a8532d8b2481e → de0d8bdaad31567edd750b4698e1eb5fd8122dc20b6ace6785570a380c2423d4}/pami-date-picker.tsx +5 -6
- package/dist/sources/{7e5e96f6428bb444fa618169230fcdc578c80766ecab3eba809e4c32ba9a17f7 → ded76ce1309e48970e51b17c73d2644d34ea22e45bc1b28b88a1ad20868e6cb9}/pami-rating.css_tag_pami-rating_encapsulation_shadow +3 -3
- package/dist/sources/{c274c1a827c9a70c44cfd4799d9d6254dfc6c5bcc0ba7f6d8e1ddd8d353271e0 → e73037cc274dab6b17d817adbfa3e69990da7d34758566725e634d080a8f1b53}/pami-ripple.css_tag_pami-ripple_encapsulation_shadow +6 -5
- package/dist/sources/{641359b47e4118436db06f645b766217d40ae15f1c1a8d1f978bdb04be56ced5 → eb9bf841ae4f9b06494c9b3edb130c9813e19f74f6f62490d9211914f616629b}/pami-list-item.css_tag_pami-list-item_encapsulation_shadow +1597 -1599
- package/dist/sources/{1c5da4122976a320028f326a3d21ba0f34a7bef5a8b3c0876912f32fe88c73a9 → f72676b12f85fff0999352413beba9ff1088fdbb4f64d593d1bf1936cd773cc6}/theme.ts +24 -5
- package/dist/sources/{95750dc74c5c9bce73cb26819375b45bd7b0462d6d52509ed918081dce4f1a0a → fdf252d43e9d2be51be81717c61f5215924906cbd31c969ef9a064d0d53c0aaf}/pami-navigation-rail.tsx +970 -766
- package/dist/sources/{3dfe9c1f569325c20a35778ec0dcb5ade6a20004645962282432aa2a85782276 → fff81d2a74c0586d69a65f9a8fe1954f6e853cc8f98c6cdea75a07a9737061b3}/pami-transfer-list.css_tag_pami-transfer-list_encapsulation_shadow +2 -2
- package/dist/types/components/pami-callout/pami-callout.d.ts +22 -0
- package/dist/types/components/pami-date-picker/pami-date-picker.d.ts +1 -2
- package/dist/types/components/pami-navigation-group/pami-navigation-group.d.ts +14 -0
- package/dist/types/components/pami-navigation-rail/pami-navigation-rail.d.ts +38 -0
- package/dist/types/components/pami-navigation-rail-tab/pami-navigation-rail-tab.d.ts +39 -0
- package/dist/types/components/pami-tag/pami-tag.d.ts +17 -0
- package/dist/types/components.d.ts +336 -14
- package/dist/types/utils/charts/theme.d.ts +2 -0
- package/dist/types/utils/focusable.d.ts +4 -0
- package/dist/types/utils/pami-dots.d.ts +1 -1
- package/dist/types/utils/pami-material-defaults.d.ts +108 -0
- package/dist/types/utils/pami-material.d.ts +12 -11
- package/dist/types/utils/pami-motion-defaults.d.ts +7 -0
- package/dist/types/utils/status-surface.d.ts +2 -0
- package/hydrate/index.js +983 -267
- package/hydrate/index.mjs +983 -267
- package/main-llm.md +14 -13
- package/package.json +2 -2
- package/src/components/pami-callout/readme.md +48 -0
- package/src/components/pami-navigation-group/readme.md +53 -0
- package/src/components/pami-navigation-rail/readme.md +91 -3
- package/src/components/pami-navigation-rail-tab/readme.md +30 -1
- package/src/components/pami-tag/readme.md +38 -0
- package/dist/cjs/pami-painter-CEq_kp4Z.js.map +0 -1
- package/dist/cjs/ripple-CiICEyeg.js.map +0 -1
- package/dist/cjs/rtl-D4GO_8Co.js.map +0 -1
- package/dist/components/p-29VlWbeT.js +0 -2
- package/dist/components/p-29VlWbeT.js.map +0 -1
- package/dist/components/p-BT8CI4i3.js +0 -2
- package/dist/components/p-BZcBbRYY.js +0 -2
- package/dist/components/p-C1b-wwIb.js +0 -2
- package/dist/components/p-C1b-wwIb.js.map +0 -1
- package/dist/components/p-CKrq0VhQ.js +0 -2
- package/dist/components/p-DD2A_AfS.js +0 -2
- package/dist/components/p-DFhQRL_q.js +0 -2
- package/dist/components/p-DFhQRL_q.js.map +0 -1
- package/dist/components/p-DO-HSPrg.js +0 -2
- package/dist/components/p-DO-HSPrg.js.map +0 -1
- package/dist/components/p-DQG2QiqW.js +0 -2
- package/dist/components/p-DWSD26x3.js +0 -2
- package/dist/components/p-NaJ3tJav.js +0 -2
- package/dist/components/p-NaJ3tJav.js.map +0 -1
- package/dist/components-csr/p-BN5fTT2p.js +0 -2
- package/dist/components-csr/p-BeWJtYZz.js +0 -2
- package/dist/components-csr/p-C1b-wwIb.js +0 -2
- package/dist/components-csr/p-C1b-wwIb.js.map +0 -1
- package/dist/components-csr/p-CGmQZ1oO.js +0 -2
- package/dist/components-csr/p-CGmQZ1oO.js.map +0 -1
- package/dist/components-csr/p-CKh3uxJF.js +0 -2
- package/dist/components-csr/p-CwgbF4Z5.js +0 -2
- package/dist/components-csr/p-CwgbF4Z5.js.map +0 -1
- package/dist/components-csr/p-D4njrR9m.js +0 -2
- package/dist/components-csr/p-D8TTB-lO.js +0 -2
- package/dist/components-csr/p-D8TTB-lO.js.map +0 -1
- package/dist/components-csr/p-DVtt3xax.js +0 -2
- package/dist/components-csr/p-DVtt3xax.js.map +0 -1
- package/dist/components-csr/p-PG3r1Ywi.js +0 -2
- package/dist/components-csr/p-dksxS2yM.js +0 -2
- package/dist/esm/pami-painter-BWqbBPaI.js.map +0 -1
- package/dist/esm/ripple-DT5RL9GH.js.map +0 -1
- package/dist/esm/rtl-CC7FhM00.js.map +0 -1
- package/dist/pami/p-041d2685.entry.js +0 -2
- package/dist/pami/p-041d2685.entry.js.map +0 -1
- package/dist/pami/p-0fcc82b3.entry.js +0 -2
- package/dist/pami/p-19669ac1.entry.js +0 -2
- package/dist/pami/p-1hwLIlBx.js +0 -2
- package/dist/pami/p-1hwLIlBx.js.map +0 -1
- package/dist/pami/p-2067b15d.entry.js +0 -2
- package/dist/pami/p-309b4e6d.entry.js +0 -2
- package/dist/pami/p-37d827d8.entry.js +0 -2
- package/dist/pami/p-3b5862ac.entry.js +0 -2
- package/dist/pami/p-4ba67b88.entry.js +0 -2
- package/dist/pami/p-542e81de.entry.js +0 -2
- package/dist/pami/p-5c02cc99.entry.js +0 -2
- package/dist/pami/p-5c02cc99.entry.js.map +0 -1
- package/dist/pami/p-60beacc5.entry.js +0 -2
- package/dist/pami/p-6753c7a1.entry.js +0 -2
- package/dist/pami/p-688017eb.entry.js +0 -2
- package/dist/pami/p-6a29a776.entry.js +0 -2
- package/dist/pami/p-6cd18c0d.entry.js +0 -2
- package/dist/pami/p-7415982c.entry.js +0 -2
- package/dist/pami/p-CC7FhM00.js +0 -2
- package/dist/pami/p-CC7FhM00.js.map +0 -1
- package/dist/pami/p-DT5RL9GH.js +0 -2
- package/dist/pami/p-DT5RL9GH.js.map +0 -1
- package/dist/pami/p-a304bc4f.entry.js +0 -2
- package/dist/pami/p-b2704345.entry.js +0 -2
- package/dist/pami/p-b6b7092b.entry.js +0 -2
- package/dist/pami/p-bac4f96e.entry.js +0 -2
- package/dist/pami/p-bac4f96e.entry.js.map +0 -1
- package/dist/pami/p-bd2fb99f.entry.js +0 -2
- package/dist/pami/p-c0fe2248.entry.js +0 -2
- package/dist/pami/p-c1409913.entry.js +0 -2
- package/dist/pami/p-cd922613.entry.js +0 -2
- package/dist/pami/p-cd922613.entry.js.map +0 -1
- package/dist/pami/p-cf4fa448.entry.js +0 -2
- package/dist/pami/p-cf4fa448.entry.js.map +0 -1
- package/dist/pami/p-d6600bc9.entry.js +0 -2
- package/dist/pami/p-d6600bc9.entry.js.map +0 -1
- package/dist/pami/p-d7504084.entry.js +0 -2
- package/dist/pami/p-dd4d87c2.entry.js +0 -2
- package/dist/pami/p-ec67197c.entry.js +0 -2
- package/dist/pami/p-ef41fef7.entry.js +0 -2
- package/dist/pami/p-f33d5f4a.entry.js +0 -2
- package/dist/pami/p-f3798dc6.entry.js +0 -2
- /package/dist/components/{p-DkVOc0wm.js.map → p-8v8oq2Gq.js.map} +0 -0
- /package/dist/components/{p-DneLEiFl.js.map → p-AeIwPqCK.js.map} +0 -0
- /package/dist/components/{p-C3VyQE8n.js.map → p-BHjV4ckR.js.map} +0 -0
- /package/dist/components/{p-Dh4RKEYp.js.map → p-Cf7x7Pbw.js.map} +0 -0
- /package/dist/components/{p-BKlel-AP.js.map → p-CsGff_Ta.js.map} +0 -0
- /package/dist/components/{p-CFpk8pnq.js.map → p-DKXYFRHy.js.map} +0 -0
- /package/dist/components/{p-Bf1Bx-JV.js.map → p-DuoeMUTq.js.map} +0 -0
- /package/dist/components/{p-g4sA3hAp.js.map → p-DzxH9m7D.js.map} +0 -0
- /package/dist/components-csr/{p-DneLEiFl.js.map → p-AeIwPqCK.js.map} +0 -0
- /package/dist/components-csr/{p-Dq_XLtjQ.js.map → p-BubrJNco.js.map} +0 -0
- /package/dist/components-csr/{p-Iozt_nIr.js.map → p-C1ChEady.js.map} +0 -0
- /package/dist/components-csr/{p-DYa7FJrs.js.map → p-CC0KCIVL.js.map} +0 -0
- /package/dist/components-csr/{p-wjnroiZn.js.map → p-CYTOzIlz.js.map} +0 -0
- /package/dist/components-csr/{p-BKlel-AP.js.map → p-CsGff_Ta.js.map} +0 -0
- /package/dist/components-csr/{p-CFpk8pnq.js.map → p-DKXYFRHy.js.map} +0 -0
- /package/dist/components-csr/{p-g4sA3hAp.js.map → p-DzxH9m7D.js.map} +0 -0
- /package/dist/pami/{p-bc63e548.entry.js.map → p-14668a82.entry.js.map} +0 -0
- /package/dist/pami/{p-cdd36757.entry.js.map → p-1468d5c4.entry.js.map} +0 -0
- /package/dist/pami/{p-a4a2f7e2.entry.js.map → p-230b51cc.entry.js.map} +0 -0
- /package/dist/pami/{p-f6d50fc7.entry.js.map → p-253bb306.entry.js.map} +0 -0
- /package/dist/pami/{p-c087aa2d.entry.js.map → p-27ba3c65.entry.js.map} +0 -0
- /package/dist/pami/{p-3577517b.entry.js.map → p-2c9fef75.entry.js.map} +0 -0
- /package/dist/pami/{p-2fa9e712.entry.js.map → p-3031787d.entry.js.map} +0 -0
- /package/dist/pami/{p-27208b60.entry.js.map → p-39a6add3.entry.js.map} +0 -0
- /package/dist/pami/{p-ed0554c3.entry.js.map → p-3fc31b91.entry.js.map} +0 -0
- /package/dist/pami/{p-91d25664.entry.js.map → p-513685d7.entry.js.map} +0 -0
- /package/dist/pami/{p-c1409913.entry.js.map → p-636faa29.entry.js.map} +0 -0
- /package/dist/pami/{p-b193dd1d.entry.js.map → p-71d62a04.entry.js.map} +0 -0
- /package/dist/pami/{p-3b859d3c.entry.js.map → p-72d9ed2c.entry.js.map} +0 -0
- /package/dist/pami/{p-5202ded3.entry.js.map → p-74673292.entry.js.map} +0 -0
- /package/dist/pami/{p-37d827d8.entry.js.map → p-76869b29.entry.js.map} +0 -0
- /package/dist/pami/{p-ef41fef7.entry.js.map → p-8381c008.entry.js.map} +0 -0
- /package/dist/pami/{p-7788c931.entry.js.map → p-86b07f8c.entry.js.map} +0 -0
- /package/dist/pami/{p-a516fb19.entry.js.map → p-a019a982.entry.js.map} +0 -0
- /package/dist/pami/{p-0435815b.entry.js.map → p-aa031eb5.entry.js.map} +0 -0
- /package/dist/pami/{p-42cda324.entry.js.map → p-be632c39.entry.js.map} +0 -0
- /package/dist/pami/{p-ea6e514b.entry.js.map → p-c02334c0.entry.js.map} +0 -0
- /package/dist/pami/{p-2391ef6b.entry.js.map → p-c717cd31.entry.js.map} +0 -0
- /package/dist/pami/{p-d3ad1da1.entry.js.map → p-cd63ef03.entry.js.map} +0 -0
- /package/dist/pami/{p-0f29f2bd.entry.js.map → p-cfc88755.entry.js.map} +0 -0
- /package/dist/pami/{p-14497ccf.entry.js.map → p-daf42aec.entry.js.map} +0 -0
- /package/dist/pami/{p-b8234190.entry.js.map → p-db1ee1b9.entry.js.map} +0 -0
- /package/dist/pami/{p-836652ad.entry.js.map → p-df18bacb.entry.js.map} +0 -0
- /package/dist/pami/{p-81c06d88.entry.js.map → p-eb41f4e0.entry.js.map} +0 -0
- /package/dist/pami/{p-4c023e51.entry.js.map → p-f29f90b0.entry.js.map} +0 -0
|
@@ -1,1599 +1,1597 @@
|
|
|
1
|
-
/* ==========================================================
|
|
2
|
-
pami-list-item — Material Design 3 List Item
|
|
3
|
-
Spec: https://m3.material.io/components/lists/specs
|
|
4
|
-
|
|
5
|
-
PUBLIC CSS CUSTOM PROPERTIES (override per-instance):
|
|
6
|
-
--pami-list-item-container-color Container background (M3 default: surface = #FEF7FF light)
|
|
7
|
-
--pami-list-item-container-shape Border-radius shorthand (all four corners)
|
|
8
|
-
--pami-list-item-container-shape-start-start Top-start corner (used by pami-list grouped style)
|
|
9
|
-
--pami-list-item-container-shape-start-end Top-end corner (used by pami-list grouped style)
|
|
10
|
-
--pami-list-item-container-shape-end-start Bottom-start corner
|
|
11
|
-
--pami-list-item-container-shape-end-end Bottom-end corner
|
|
12
|
-
--pami-list-item-active-container-shape Meta-override applied to every active state
|
|
13
|
-
(hover / focus / pressed / selected / dragged)
|
|
14
|
-
--pami-list-item-hover-container-shape Border-radius on hover (default 0 — no morph; opt-in)
|
|
15
|
-
--pami-list-item-focus-container-shape Border-radius on focus (default 16px / corner-large)
|
|
16
|
-
--pami-list-item-pressed-container-shape Border-radius on press (default 16px / corner-large)
|
|
17
|
-
--pami-list-item-selected-container-shape Border-radius on selected (default 16px / corner-large)
|
|
18
|
-
--pami-list-item-active-container-shape Shared default for all four states above
|
|
19
|
-
--pami-list-item-dragged-container-shape Border-radius on dragged (default 16px / corner-large)
|
|
20
|
-
--pami-list-item-hover-state-layer-opacity State-layer opacity on hover (M3: 0.08)
|
|
21
|
-
--pami-list-item-focus-state-layer-opacity State-layer opacity on focus (M3: 0.10)
|
|
22
|
-
--pami-list-item-pressed-state-layer-opacity State-layer opacity on press (M3: 0.10)
|
|
23
|
-
--pami-list-item-dragged-state-layer-opacity State-layer opacity when dragged (M3: 0.16)
|
|
24
|
-
--pami-list-item-disabled-state-layer-opacity State-layer opacity when disabled (default 0)
|
|
25
|
-
--pami-list-item-label-text-color Headline text color
|
|
26
|
-
--pami-list-item-label-text-font Headline font family
|
|
27
|
-
--pami-list-item-supporting-text-color Supporting text color
|
|
28
|
-
--pami-list-item-supporting-text-font Supporting text font family
|
|
29
|
-
--pami-list-item-overline-color Overline text color
|
|
30
|
-
--pami-list-item-trailing-supporting-text-color Trailing supporting text color
|
|
31
|
-
--pami-list-item-trailing-supporting-text-font Trailing supporting text font family
|
|
32
|
-
--pami-list-item-leading-icon-color Leading icon color
|
|
33
|
-
--pami-list-item-leading-icon-size Leading icon size, default (M3: 24px)
|
|
34
|
-
--pami-list-item-leading-icon-expressive-size Leading icon size, Expressive list-style (M3: 20px).
|
|
35
|
-
Auto-applied when the row sits inside an
|
|
36
|
-
pami-list[list-style="standard"|"segmented"].
|
|
37
|
-
--pami-list-item-trailing-icon-color Trailing icon color
|
|
38
|
-
--pami-list-item-unselected-trailing-icon-color Trailing icon color when row is in selection
|
|
39
|
-
mode but NOT selected (M3: on-surface)
|
|
40
|
-
--pami-list-item-trailing-icon-size Trailing icon size, default (M3: 24px)
|
|
41
|
-
--pami-list-item-trailing-icon-expressive-size Trailing icon size, Expressive list-style (M3: 20px)
|
|
42
|
-
--pami-list-item-leading-space Inline-start padding (M3: 16px)
|
|
43
|
-
--pami-list-item-trailing-space Inline-end padding (M3: 16px)
|
|
44
|
-
--pami-list-item-top-space Block-start padding (M3: 8px)
|
|
45
|
-
--pami-list-item-bottom-space Block-end padding (M3: 10px)
|
|
46
|
-
--pami-list-item-between-space Gap between leading / content / trailing (M3: 12px)
|
|
47
|
-
--pami-list-item-three-line-top-space Block-start padding when 3-line / 88px+ (M3: 12px)
|
|
48
|
-
--pami-list-item-three-line-bottom-space Block-end padding when 3-line / 88px+ (M3: 12px)
|
|
49
|
-
--pami-list-item-dragged-container-elevation Box-shadow applied when host carries
|
|
50
|
-
.pami-list-item--dragged (M3: level 4 lift)
|
|
51
|
-
--pami-list-item-leading-video-width Width of <video slot="leading"> thumbnail (M3: 100px)
|
|
52
|
-
--pami-list-item-leading-video-height Height of <video slot="leading"> thumbnail (M3: 56px)
|
|
53
|
-
--pami-list-item-leading-video-shape Border-radius of <video slot="leading"> (M3: corner-small)
|
|
54
|
-
--pami-list-item-leading-video-top-space Block-start padding bumped when the row carries
|
|
55
|
-
a <video slot="leading"> (M3: 12px). Bottom padding
|
|
56
|
-
is unaffected — the asymmetry visually anchors the
|
|
57
|
-
wider 100×56px video thumbnail.
|
|
58
|
-
--pami-list-item-leading-avatar-color Avatar circle color (label avatar)
|
|
59
|
-
--pami-list-item-leading-avatar-label-color Avatar label text color
|
|
60
|
-
--pami-list-item-leading-avatar-size Avatar dimensions (default 40px)
|
|
61
|
-
--pami-list-item-leading-avatar-shape Avatar border-radius (default full)
|
|
62
|
-
--pami-list-item-leading-image-width Image thumbnail width (default 56px)
|
|
63
|
-
--pami-list-item-leading-image-height Image thumbnail height (default 56px)
|
|
64
|
-
--pami-list-item-leading-image-shape Image thumbnail radius, default (M3: 0)
|
|
65
|
-
--pami-list-item-leading-image-expressive-shape Image thumbnail radius, Expressive list-style
|
|
66
|
-
(M3: corner-small / 8px). Auto-applied on
|
|
67
|
-
pami-list[list-style="standard"|"segmented"].
|
|
68
|
-
--pami-list-item-leading-image-selection-scrim-color Full-thumbnail scrim when selected (M3: scrim @ 32%)
|
|
69
|
-
--pami-list-item-leading-image-selection-circle-color Checkmark circle fill when selected (M3: on-surface @ 60%)
|
|
70
|
-
--pami-list-item-leading-image-selection-icon-color Checkmark glyph color (M3: surface / white)
|
|
71
|
-
--pami-list-item-leading-image-selection-icon-size Checkmark circle diameter (M3: 24px)
|
|
72
|
-
--pami-list-item-selected-container-color Selected container background (
|
|
73
|
-
--pami-list-item-selected-label-text-color Selected headline color (
|
|
74
|
-
--pami-list-item-selected-active-icon-color Leading/trailing icon color when row is BOTH
|
|
75
|
-
selected AND in an active state (hover / focus /
|
|
76
|
-
pressed / dragged). M3: on-surface (#1D1B20).
|
|
77
|
-
--pami-list-item-selected-disabled-container-color Container fill when row is BOTH selected AND
|
|
78
|
-
disabled (M3: on-surface @ 12%)
|
|
79
|
-
--pami-list-item-expand-chevron-color Caret icon color when collapsed (forwarded to the
|
|
80
|
-
trailing pami-icon-button's icon color). Expanded pill
|
|
81
|
-
uses `--md-sys-color-primary` /
|
|
82
|
-
`--md-sys-color-on-primary`.
|
|
83
|
-
--pami-list-item-expand-duration Expanded-panel open duration (M3: medium3 / 350ms)
|
|
84
|
-
--pami-list-item-collapse-duration Expanded-panel close duration (M3: short4 / 200ms)
|
|
85
|
-
--pami-list-item-expanded-panel-padding-block Expanded panel vertical padding
|
|
86
|
-
--pami-list-item-expanded-panel-padding-inline Expanded panel horizontal padding (both sides)
|
|
87
|
-
--pami-list-item-expanded-panel-padding-inline-start Expanded panel start padding —
|
|
88
|
-
takes precedence over the symmetric value
|
|
89
|
-
above. Default 0 — child rows align with the
|
|
90
|
-
parent row in a flat connected expansion list.
|
|
91
|
-
--pami-list-item-expanded-panel-background Expanded panel background
|
|
92
|
-
|
|
93
|
-
CSS PARTS:
|
|
94
|
-
row Row chassis (leading + content + trailing)
|
|
95
|
-
state-layer State-layer overlay (interactive rows only)
|
|
96
|
-
leading Leading slot container
|
|
97
|
-
content Content slot container (overline + headline + supporting)
|
|
98
|
-
headline Headline text element
|
|
99
|
-
headline-tooltip-popup Popup of the headline overflow tooltip (forwarded)
|
|
100
|
-
overline Overline text element
|
|
101
|
-
supporting-text Supporting text element
|
|
102
|
-
supporting-tooltip-popup Popup of the supporting-text overflow tooltip (forwarded)
|
|
103
|
-
trailing Trailing slot container
|
|
104
|
-
trailing-supporting-text Trailing supporting text element
|
|
105
|
-
leading-icon Leading Lucide icon
|
|
106
|
-
trailing-icon Trailing Lucide icon
|
|
107
|
-
avatar Leading avatar (image or label)
|
|
108
|
-
image Leading image thumbnail
|
|
109
|
-
image-wrap Wrapper around prop-based leading image + selection overlay
|
|
110
|
-
image-selection-indicator Selected-state scrim overlay on image thumbnail
|
|
111
|
-
image-selection-circle Checkmark circle fill centered on thumbnail
|
|
112
|
-
image-selection-check Lucide check glyph inside the circle
|
|
113
|
-
expand-button Trailing caret pami-icon-button on expandable rows
|
|
114
|
-
expand-button-state-layer State-layer of the caret button (forwarded)
|
|
115
|
-
expand-button-icon Icon glyph wrapper of the caret button (forwarded;
|
|
116
|
-
rotates 180° when expanded)
|
|
117
|
-
drag-handle Trailing drag grip on reorderable rows
|
|
118
|
-
expanded-panel Wrapper revealed when `expanded` is true
|
|
119
|
-
expanded-panel-inner Inner wrapper that holds the slot
|
|
120
|
-
|
|
121
|
-
SLOTS:
|
|
122
|
-
(default) Headline content (fallback for `headline` prop)
|
|
123
|
-
headline Rich headline (overrides `headline` prop)
|
|
124
|
-
overline Rich overline (overrides `overline` prop)
|
|
125
|
-
supporting-text Rich supporting text
|
|
126
|
-
trailing-supporting-text Rich trailing supporting text
|
|
127
|
-
leading Custom leading content (icon / avatar / image)
|
|
128
|
-
trailing Custom trailing content (icon button, switch, etc.)
|
|
129
|
-
expanded-content Content revealed when an expandable row is expanded
|
|
130
|
-
========================================================== */
|
|
131
|
-
|
|
132
|
-
/* ==========================================================
|
|
133
|
-
1. HOST — token mapping + base block layout
|
|
134
|
-
The host is the "container" — it owns the rounded chassis,
|
|
135
|
-
background, divider position, and (when expandable) stacks
|
|
136
|
-
a row above an expanded panel via display: block. The actual
|
|
137
|
-
row chrome lives on .pami-list-item__row.
|
|
138
|
-
========================================================== */
|
|
139
|
-
:host {
|
|
140
|
-
/* PUBLIC → INTERNAL */
|
|
141
|
-
/* Per the M3 Lists token spec the resting container color is `surface`
|
|
142
|
-
(#FEF7FF on the light tonal palette). pami-list wrappers stay
|
|
143
|
-
transparent so the items provide the visible fill. */
|
|
144
|
-
--_container-color: var(--pami-list-item-container-color, var(--md-sys-color-surface, #fef7ff));
|
|
145
|
-
--_container-shape: var(--pami-list-item-container-shape, 0px);
|
|
146
|
-
|
|
147
|
-
/* Per-corner shapes — fall through to the shorthand by default but
|
|
148
|
-
pami-list[list-style="grouped"] overrides start-start/start-end on
|
|
149
|
-
the first row and end-start/end-end on the last to give a shared
|
|
150
|
-
rounded chassis. Threading them as custom properties means the
|
|
151
|
-
parent list can paint shape via `::slotted()` without crossing the
|
|
152
|
-
shadow boundary directly. */
|
|
153
|
-
--_container-shape-start-start: var(--pami-list-item-container-shape-start-start, var(--_container-shape));
|
|
154
|
-
--_container-shape-start-end: var(--pami-list-item-container-shape-start-end, var(--_container-shape));
|
|
155
|
-
--_container-shape-end-start: var(--pami-list-item-container-shape-end-start, var(--_container-shape));
|
|
156
|
-
--_container-shape-end-end: var(--pami-list-item-container-shape-end-end, var(--_container-shape));
|
|
157
|
-
|
|
158
|
-
/* Per-state container shape morph per the M3 Lists spec:
|
|
159
|
-
Hover → no default morph (state layer only)
|
|
160
|
-
Focus → 16px (corner-large)
|
|
161
|
-
Pressed → 16px (corner-large)
|
|
162
|
-
Selected → 16px (corner-large)
|
|
163
|
-
Dragged → 16px (corner-large)
|
|
164
|
-
`--pami-list-item-active-container-shape` acts as a meta-override —
|
|
165
|
-
set it once to apply the same shape across focus / pressed / selected /
|
|
166
|
-
dragged. Hover is excluded unless `--pami-list-item-hover-container-shape`
|
|
167
|
-
is set explicitly. */
|
|
168
|
-
/* Active-state corner radii — focus / pressed / selected / dragged default
|
|
169
|
-
to corner-large (16px). Hover defaults to 0 so flat middle rows keep
|
|
170
|
-
sharp corners during pointer-over; only the state layer signals hover. */
|
|
171
|
-
/* Hover defaults to 0 so flat / middle rows keep their resting corners.
|
|
172
|
-
Hover feedback is the state layer only — rounding on hover made
|
|
173
|
-
hover-out snap from rounded → sharp even without a radius transition.
|
|
174
|
-
Authors can still opt in via --pami-list-item-hover-container-shape or
|
|
175
|
-
the shared --pami-list-item-active-container-shape meta-override. */
|
|
176
|
-
--_hover-container-shape: var(--pami-list-item-hover-container-shape, var(--pami-list-item-active-container-shape, 0px));
|
|
177
|
-
/* These three are the MORPHED corner radii for focus / press / selection.
|
|
178
|
-
They are consumed as `max(<resting corner>, <this>)`, so multiplying by
|
|
179
|
-
--md-sys-shape-morph-enabled collapses them to 0 when shape morphing is
|
|
180
|
-
switched off — and max(rest, 0) is exactly the resting corner. That freezes
|
|
181
|
-
all 50+ per-corner morph rules below from three declarations, with no
|
|
182
|
-
change at all while the flag is its default 1.
|
|
183
|
-
|
|
184
|
-
Global `data-shape-morph="off"` or per-component `shape-morph="off"`; see
|
|
185
|
-
§13 in tokens.css. */
|
|
186
|
-
--_focus-container-shape: calc(var(--pami-list-item-focus-container-shape, var(--pami-list-item-active-container-shape, var(--md-sys-shape-corner-large, 16px))) * var(--md-sys-shape-morph-enabled, 1));
|
|
187
|
-
--_pressed-container-shape: calc(var(--pami-list-item-pressed-container-shape, var(--pami-list-item-active-container-shape, var(--md-sys-shape-corner-large, 16px))) * var(--md-sys-shape-morph-enabled, 1));
|
|
188
|
-
--_selected-container-shape: calc(var(--pami-list-item-selected-container-shape, var(--pami-list-item-active-container-shape, var(--md-sys-shape-corner-large, 16px))) * var(--md-sys-shape-morph-enabled, 1));
|
|
189
|
-
--_dragged-container-shape: var(--pami-list-item-dragged-container-shape, var(--pami-list-item-active-container-shape, var(--md-sys-shape-corner-large, 16px)));
|
|
190
|
-
|
|
191
|
-
--_label-text-color: var(--pami-list-item-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));
|
|
192
|
-
--_label-text-font: var(--pami-list-item-label-text-font, var(--md-sys-typescale-body-large-font-family, Roboto, sans-serif));
|
|
193
|
-
|
|
194
|
-
--_supporting-text-color: var(--pami-list-item-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
195
|
-
--_supporting-text-font: var(--pami-list-item-supporting-text-font, var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif));
|
|
196
|
-
|
|
197
|
-
--_overline-color: var(--pami-list-item-overline-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
198
|
-
|
|
199
|
-
--_trailing-supporting-text-color: var(--pami-list-item-trailing-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
200
|
-
--_trailing-supporting-text-font: var(--pami-list-item-trailing-supporting-text-font, var(--md-sys-typescale-label-small-font-family, Roboto, sans-serif));
|
|
201
|
-
|
|
202
|
-
--_leading-icon-color: var(--pami-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
203
|
-
/* M3 token spec: list-item leading icon = 24px (default).
|
|
204
|
-
The Expressive list-styles (`standard`, `segmented`) tighten this to
|
|
205
|
-
20px via the `--_leading-icon-expressive-size` override below. */
|
|
206
|
-
--_leading-icon-size: var(--pami-list-item-leading-icon-size, max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px)));
|
|
207
|
-
--_leading-icon-expressive-size: var(--pami-list-item-leading-icon-expressive-size, max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px)));
|
|
208
|
-
--_trailing-icon-color: var(--pami-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
209
|
-
/* When the row is in selection mode but NOT selected, the M3 token spec
|
|
210
|
-
calls for the trailing icon (typically a checkmark or radio glyph) to
|
|
211
|
-
use on-surface instead of on-surface-variant — slightly higher contrast
|
|
212
|
-
so the affordance reads as "tap to select" rather than ambient meta. */
|
|
213
|
-
--_unselected-trailing-icon-color: var(--pami-list-item-unselected-trailing-icon-color, var(--md-sys-color-on-surface, #1d1b20));
|
|
214
|
-
--_trailing-icon-size: var(--pami-list-item-trailing-icon-size, max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px)));
|
|
215
|
-
--_trailing-icon-expressive-size: var(--pami-list-item-trailing-icon-expressive-size, max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px)));
|
|
216
|
-
|
|
217
|
-
--_leading-avatar-color: var(--pami-list-item-leading-avatar-color, var(--md-sys-color-primary-container, #eaddff));
|
|
218
|
-
--_leading-avatar-label-color: var(--pami-list-item-leading-avatar-label-color, var(--md-sys-color-on-primary-container, #21005d));
|
|
219
|
-
--_leading-avatar-size: var(--pami-list-item-leading-avatar-size, 40px);
|
|
220
|
-
--_leading-avatar-shape: var(--pami-list-item-leading-avatar-shape, var(--md-sys-shape-corner-full, 9999px));
|
|
221
|
-
|
|
222
|
-
--_leading-image-width: var(--pami-list-item-leading-image-width, 56px);
|
|
223
|
-
--_leading-image-height: var(--pami-list-item-leading-image-height, 56px);
|
|
224
|
-
/* M3: default image is square (corner-none); Expressive image rounds
|
|
225
|
-
to corner-small (8px). The expressive value is applied by the
|
|
226
|
-
`:host-context(.pami-list--standard|.pami-list--segmented)` rule
|
|
227
|
-
down in Section 3. */
|
|
228
|
-
--_leading-image-shape: var(--pami-list-item-leading-image-shape, var(--md-sys-shape-corner-none, 0px));
|
|
229
|
-
--_leading-image-expressive-shape: var(--pami-list-item-leading-image-expressive-shape, var(--md-sys-shape-corner-small, 8px));
|
|
230
|
-
--_leading-image-selection-scrim-color: var(
|
|
231
|
-
--pami-list-item-leading-image-selection-scrim-color,
|
|
232
|
-
color-mix(in srgb, var(--md-sys-color-scrim, #000000) 32%, transparent)
|
|
233
|
-
);
|
|
234
|
-
--_leading-image-selection-circle-color: var(
|
|
235
|
-
--pami-list-item-leading-image-selection-circle-color,
|
|
236
|
-
color-mix(in srgb, var(--md-sys-color-on-surface, #1d1b20) 60%, transparent)
|
|
237
|
-
);
|
|
238
|
-
--_leading-image-selection-icon-color: var(
|
|
239
|
-
--pami-list-item-leading-image-selection-icon-color,
|
|
240
|
-
var(--md-sys-color-surface, #fef7ff)
|
|
241
|
-
);
|
|
242
|
-
--_leading-image-selection-icon-size: var(--pami-list-item-leading-image-selection-icon-size, 24px);
|
|
243
|
-
|
|
244
|
-
/* Per the M3 spec the leading slot may also hold a <video> thumbnail.
|
|
245
|
-
Default size is 100×56px (small video token). Authors slot a
|
|
246
|
-
`<video slot="leading">` and these props size it automatically. */
|
|
247
|
-
--_leading-video-width: var(--pami-list-item-leading-video-width, 100px);
|
|
248
|
-
--_leading-video-height: var(--pami-list-item-leading-video-height, 56px);
|
|
249
|
-
--_leading-video-shape: var(--pami-list-item-leading-video-shape, var(--md-sys-shape-corner-small, 8px));
|
|
250
|
-
|
|
251
|
-
/*
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
--_selected-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
);
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
--
|
|
273
|
-
--
|
|
274
|
-
--
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
--
|
|
293
|
-
--
|
|
294
|
-
--
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
--
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
--_expand-
|
|
318
|
-
--_collapse-
|
|
319
|
-
|
|
320
|
-
--
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
border-
|
|
341
|
-
border-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
on
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
border-
|
|
359
|
-
border-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
-
|
|
370
|
-
-
|
|
371
|
-
-
|
|
372
|
-
-
|
|
373
|
-
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
padding-
|
|
389
|
-
padding-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
border-
|
|
398
|
-
border-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
:
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
:
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
:
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
:
|
|
541
|
-
align-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
:
|
|
566
|
-
:
|
|
567
|
-
--_leading-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
--pami-list-item-container-shape-
|
|
591
|
-
--pami-list-item-container-shape-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
--pami-list-item-container-shape-
|
|
633
|
-
--pami-list-item-container-shape-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
:
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
:
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
:
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
:
|
|
711
|
-
:
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
:
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
-
|
|
753
|
-
|
|
754
|
-
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
:host(.pami-list-item--
|
|
787
|
-
:host(.pami-list-item--interactive
|
|
788
|
-
:host(.pami-list-item--
|
|
789
|
-
:host(.pami-list-item--
|
|
790
|
-
:
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
border-
|
|
795
|
-
border-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
:host(.pami-list-item--
|
|
801
|
-
:host(.pami-list-item--interactive
|
|
802
|
-
:host(.pami-list-item--
|
|
803
|
-
:host(.pami-list-item--
|
|
804
|
-
:
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
border-
|
|
808
|
-
border-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
:host(.pami-list-item--interactive:focus-visible),
|
|
814
|
-
:host(.pami-list-item--interactive.pami-list-item--roving-focus-visible:not(:focus))
|
|
815
|
-
:
|
|
816
|
-
:
|
|
817
|
-
border-
|
|
818
|
-
border-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
:
|
|
824
|
-
:
|
|
825
|
-
border-
|
|
826
|
-
border-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
:host(.pami-list-item--
|
|
832
|
-
:host(.pami-list-item--
|
|
833
|
-
:host(.pami-list-item--
|
|
834
|
-
:host(.pami-list-item--
|
|
835
|
-
:
|
|
836
|
-
:
|
|
837
|
-
border-
|
|
838
|
-
border-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
:
|
|
845
|
-
:
|
|
846
|
-
border-
|
|
847
|
-
border-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
:
|
|
859
|
-
--
|
|
860
|
-
--
|
|
861
|
-
--
|
|
862
|
-
--
|
|
863
|
-
--
|
|
864
|
-
--
|
|
865
|
-
--
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
(
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
:host(.pami-list-item--selected.pami-list-item--interactive:
|
|
891
|
-
:host(.pami-list-item--selected.pami-list-item--interactive:
|
|
892
|
-
:host(.pami-list-item--selected.pami-list-item--
|
|
893
|
-
:host(.pami-list-item--selected.pami-list-item--
|
|
894
|
-
:
|
|
895
|
-
:
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
:host(.pami-list-item--expandable),
|
|
904
|
-
:host(.pami-list-item--expandable
|
|
905
|
-
:host(.pami-list-item--expandable.pami-list-item--selected),
|
|
906
|
-
:host(.pami-list-item--expandable.pami-list-item--selected.pami-list-item--interactive:
|
|
907
|
-
:host(.pami-list-item--expandable.pami-list-item--selected.pami-list-item--
|
|
908
|
-
:host(.pami-list-item--expandable.pami-list-item--selected.pami-list-item--
|
|
909
|
-
:
|
|
910
|
-
:
|
|
911
|
-
--
|
|
912
|
-
--
|
|
913
|
-
--
|
|
914
|
-
--
|
|
915
|
-
--
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
);
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
:
|
|
926
|
-
:
|
|
927
|
-
border-
|
|
928
|
-
border-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
:
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
--
|
|
940
|
-
--
|
|
941
|
-
--
|
|
942
|
-
--
|
|
943
|
-
--
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
*
|
|
989
|
-
*
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
.pami-list-
|
|
993
|
-
.pami-list-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
the list-item
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
pami-avatar
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
}
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
flex:
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
font-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
font-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
font-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
font-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
:
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
:
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
the
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
--pami-icon-button-
|
|
1399
|
-
--pami-icon-button-
|
|
1400
|
-
--pami-icon-button-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
--pami-icon-button-
|
|
1410
|
-
--pami-icon-button-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
:
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
padding-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
:
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
--pami-list-item-container-shape: 0px;
|
|
1477
|
-
--pami-list-item-container-shape-
|
|
1478
|
-
--pami-list-item-container-shape-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
.pami-list-
|
|
1514
|
-
.pami-list-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
:
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
:host([density='-
|
|
1585
|
-
:host([density='-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
`
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
display: none !important;
|
|
1599
|
-
}
|
|
1
|
+
/* ==========================================================
|
|
2
|
+
pami-list-item — Material Design 3 List Item
|
|
3
|
+
Spec: https://m3.material.io/components/lists/specs
|
|
4
|
+
|
|
5
|
+
PUBLIC CSS CUSTOM PROPERTIES (override per-instance):
|
|
6
|
+
--pami-list-item-container-color Container background (M3 default: surface = #FEF7FF light)
|
|
7
|
+
--pami-list-item-container-shape Border-radius shorthand (all four corners)
|
|
8
|
+
--pami-list-item-container-shape-start-start Top-start corner (used by pami-list grouped style)
|
|
9
|
+
--pami-list-item-container-shape-start-end Top-end corner (used by pami-list grouped style)
|
|
10
|
+
--pami-list-item-container-shape-end-start Bottom-start corner
|
|
11
|
+
--pami-list-item-container-shape-end-end Bottom-end corner
|
|
12
|
+
--pami-list-item-active-container-shape Meta-override applied to every active state
|
|
13
|
+
(hover / focus / pressed / selected / dragged)
|
|
14
|
+
--pami-list-item-hover-container-shape Border-radius on hover (default 0 — no morph; opt-in)
|
|
15
|
+
--pami-list-item-focus-container-shape Border-radius on focus (default 16px / corner-large)
|
|
16
|
+
--pami-list-item-pressed-container-shape Border-radius on press (default 16px / corner-large)
|
|
17
|
+
--pami-list-item-selected-container-shape Border-radius on selected (default 16px / corner-large)
|
|
18
|
+
--pami-list-item-active-container-shape Shared default for all four states above
|
|
19
|
+
--pami-list-item-dragged-container-shape Border-radius on dragged (default 16px / corner-large)
|
|
20
|
+
--pami-list-item-hover-state-layer-opacity State-layer opacity on hover (M3: 0.08)
|
|
21
|
+
--pami-list-item-focus-state-layer-opacity State-layer opacity on focus (M3: 0.10)
|
|
22
|
+
--pami-list-item-pressed-state-layer-opacity State-layer opacity on press (M3: 0.10)
|
|
23
|
+
--pami-list-item-dragged-state-layer-opacity State-layer opacity when dragged (M3: 0.16)
|
|
24
|
+
--pami-list-item-disabled-state-layer-opacity State-layer opacity when disabled (default 0)
|
|
25
|
+
--pami-list-item-label-text-color Headline text color
|
|
26
|
+
--pami-list-item-label-text-font Headline font family
|
|
27
|
+
--pami-list-item-supporting-text-color Supporting text color
|
|
28
|
+
--pami-list-item-supporting-text-font Supporting text font family
|
|
29
|
+
--pami-list-item-overline-color Overline text color
|
|
30
|
+
--pami-list-item-trailing-supporting-text-color Trailing supporting text color
|
|
31
|
+
--pami-list-item-trailing-supporting-text-font Trailing supporting text font family
|
|
32
|
+
--pami-list-item-leading-icon-color Leading icon color
|
|
33
|
+
--pami-list-item-leading-icon-size Leading icon size, default (M3: 24px)
|
|
34
|
+
--pami-list-item-leading-icon-expressive-size Leading icon size, Expressive list-style (M3: 20px).
|
|
35
|
+
Auto-applied when the row sits inside an
|
|
36
|
+
pami-list[list-style="standard"|"segmented"].
|
|
37
|
+
--pami-list-item-trailing-icon-color Trailing icon color
|
|
38
|
+
--pami-list-item-unselected-trailing-icon-color Trailing icon color when row is in selection
|
|
39
|
+
mode but NOT selected (M3: on-surface)
|
|
40
|
+
--pami-list-item-trailing-icon-size Trailing icon size, default (M3: 24px)
|
|
41
|
+
--pami-list-item-trailing-icon-expressive-size Trailing icon size, Expressive list-style (M3: 20px)
|
|
42
|
+
--pami-list-item-leading-space Inline-start padding (M3: 16px)
|
|
43
|
+
--pami-list-item-trailing-space Inline-end padding (M3: 16px)
|
|
44
|
+
--pami-list-item-top-space Block-start padding (M3: 8px)
|
|
45
|
+
--pami-list-item-bottom-space Block-end padding (M3: 10px)
|
|
46
|
+
--pami-list-item-between-space Gap between leading / content / trailing (M3: 12px)
|
|
47
|
+
--pami-list-item-three-line-top-space Block-start padding when 3-line / 88px+ (M3: 12px)
|
|
48
|
+
--pami-list-item-three-line-bottom-space Block-end padding when 3-line / 88px+ (M3: 12px)
|
|
49
|
+
--pami-list-item-dragged-container-elevation Box-shadow applied when host carries
|
|
50
|
+
.pami-list-item--dragged (M3: level 4 lift)
|
|
51
|
+
--pami-list-item-leading-video-width Width of <video slot="leading"> thumbnail (M3: 100px)
|
|
52
|
+
--pami-list-item-leading-video-height Height of <video slot="leading"> thumbnail (M3: 56px)
|
|
53
|
+
--pami-list-item-leading-video-shape Border-radius of <video slot="leading"> (M3: corner-small)
|
|
54
|
+
--pami-list-item-leading-video-top-space Block-start padding bumped when the row carries
|
|
55
|
+
a <video slot="leading"> (M3: 12px). Bottom padding
|
|
56
|
+
is unaffected — the asymmetry visually anchors the
|
|
57
|
+
wider 100×56px video thumbnail.
|
|
58
|
+
--pami-list-item-leading-avatar-color Avatar circle color (label avatar)
|
|
59
|
+
--pami-list-item-leading-avatar-label-color Avatar label text color
|
|
60
|
+
--pami-list-item-leading-avatar-size Avatar dimensions (default 40px)
|
|
61
|
+
--pami-list-item-leading-avatar-shape Avatar border-radius (default full)
|
|
62
|
+
--pami-list-item-leading-image-width Image thumbnail width (default 56px)
|
|
63
|
+
--pami-list-item-leading-image-height Image thumbnail height (default 56px)
|
|
64
|
+
--pami-list-item-leading-image-shape Image thumbnail radius, default (M3: 0)
|
|
65
|
+
--pami-list-item-leading-image-expressive-shape Image thumbnail radius, Expressive list-style
|
|
66
|
+
(M3: corner-small / 8px). Auto-applied on
|
|
67
|
+
pami-list[list-style="standard"|"segmented"].
|
|
68
|
+
--pami-list-item-leading-image-selection-scrim-color Full-thumbnail scrim when selected (M3: scrim @ 32%)
|
|
69
|
+
--pami-list-item-leading-image-selection-circle-color Checkmark circle fill when selected (M3: on-surface @ 60%)
|
|
70
|
+
--pami-list-item-leading-image-selection-icon-color Checkmark glyph color (M3: surface / white)
|
|
71
|
+
--pami-list-item-leading-image-selection-icon-size Checkmark circle diameter (M3: 24px)
|
|
72
|
+
--pami-list-item-selected-container-color Selected container background (Pami: tertiary-container)
|
|
73
|
+
--pami-list-item-selected-label-text-color Selected headline color (Pami: on-tertiary-container)
|
|
74
|
+
--pami-list-item-selected-active-icon-color Leading/trailing icon color when row is BOTH
|
|
75
|
+
selected AND in an active state (hover / focus /
|
|
76
|
+
pressed / dragged). M3: on-surface (#1D1B20).
|
|
77
|
+
--pami-list-item-selected-disabled-container-color Container fill when row is BOTH selected AND
|
|
78
|
+
disabled (M3: on-surface @ 12%)
|
|
79
|
+
--pami-list-item-expand-chevron-color Caret icon color when collapsed (forwarded to the
|
|
80
|
+
trailing pami-icon-button's icon color). Expanded pill
|
|
81
|
+
uses `--md-sys-color-primary` /
|
|
82
|
+
`--md-sys-color-on-primary`.
|
|
83
|
+
--pami-list-item-expand-duration Expanded-panel open duration (M3: medium3 / 350ms)
|
|
84
|
+
--pami-list-item-collapse-duration Expanded-panel close duration (M3: short4 / 200ms)
|
|
85
|
+
--pami-list-item-expanded-panel-padding-block Expanded panel vertical padding
|
|
86
|
+
--pami-list-item-expanded-panel-padding-inline Expanded panel horizontal padding (both sides)
|
|
87
|
+
--pami-list-item-expanded-panel-padding-inline-start Expanded panel start padding —
|
|
88
|
+
takes precedence over the symmetric value
|
|
89
|
+
above. Default 0 — child rows align with the
|
|
90
|
+
parent row in a flat connected expansion list.
|
|
91
|
+
--pami-list-item-expanded-panel-background Expanded panel background
|
|
92
|
+
|
|
93
|
+
CSS PARTS:
|
|
94
|
+
row Row chassis (leading + content + trailing)
|
|
95
|
+
state-layer State-layer overlay (interactive rows only)
|
|
96
|
+
leading Leading slot container
|
|
97
|
+
content Content slot container (overline + headline + supporting)
|
|
98
|
+
headline Headline text element
|
|
99
|
+
headline-tooltip-popup Popup of the headline overflow tooltip (forwarded)
|
|
100
|
+
overline Overline text element
|
|
101
|
+
supporting-text Supporting text element
|
|
102
|
+
supporting-tooltip-popup Popup of the supporting-text overflow tooltip (forwarded)
|
|
103
|
+
trailing Trailing slot container
|
|
104
|
+
trailing-supporting-text Trailing supporting text element
|
|
105
|
+
leading-icon Leading Lucide icon
|
|
106
|
+
trailing-icon Trailing Lucide icon
|
|
107
|
+
avatar Leading avatar (image or label)
|
|
108
|
+
image Leading image thumbnail
|
|
109
|
+
image-wrap Wrapper around prop-based leading image + selection overlay
|
|
110
|
+
image-selection-indicator Selected-state scrim overlay on image thumbnail
|
|
111
|
+
image-selection-circle Checkmark circle fill centered on thumbnail
|
|
112
|
+
image-selection-check Lucide check glyph inside the circle
|
|
113
|
+
expand-button Trailing caret pami-icon-button on expandable rows
|
|
114
|
+
expand-button-state-layer State-layer of the caret button (forwarded)
|
|
115
|
+
expand-button-icon Icon glyph wrapper of the caret button (forwarded;
|
|
116
|
+
rotates 180° when expanded)
|
|
117
|
+
drag-handle Trailing drag grip on reorderable rows
|
|
118
|
+
expanded-panel Wrapper revealed when `expanded` is true
|
|
119
|
+
expanded-panel-inner Inner wrapper that holds the slot
|
|
120
|
+
|
|
121
|
+
SLOTS:
|
|
122
|
+
(default) Headline content (fallback for `headline` prop)
|
|
123
|
+
headline Rich headline (overrides `headline` prop)
|
|
124
|
+
overline Rich overline (overrides `overline` prop)
|
|
125
|
+
supporting-text Rich supporting text
|
|
126
|
+
trailing-supporting-text Rich trailing supporting text
|
|
127
|
+
leading Custom leading content (icon / avatar / image)
|
|
128
|
+
trailing Custom trailing content (icon button, switch, etc.)
|
|
129
|
+
expanded-content Content revealed when an expandable row is expanded
|
|
130
|
+
========================================================== */
|
|
131
|
+
|
|
132
|
+
/* ==========================================================
|
|
133
|
+
1. HOST — token mapping + base block layout
|
|
134
|
+
The host is the "container" — it owns the rounded chassis,
|
|
135
|
+
background, divider position, and (when expandable) stacks
|
|
136
|
+
a row above an expanded panel via display: block. The actual
|
|
137
|
+
row chrome lives on .pami-list-item__row.
|
|
138
|
+
========================================================== */
|
|
139
|
+
:host {
|
|
140
|
+
/* PUBLIC → INTERNAL */
|
|
141
|
+
/* Per the M3 Lists token spec the resting container color is `surface`
|
|
142
|
+
(#FEF7FF on the light tonal palette). pami-list wrappers stay
|
|
143
|
+
transparent so the items provide the visible fill. */
|
|
144
|
+
--_container-color: var(--pami-list-item-container-color, var(--md-sys-color-surface, #fef7ff));
|
|
145
|
+
--_container-shape: var(--pami-list-item-container-shape, 0px);
|
|
146
|
+
|
|
147
|
+
/* Per-corner shapes — fall through to the shorthand by default but
|
|
148
|
+
pami-list[list-style="grouped"] overrides start-start/start-end on
|
|
149
|
+
the first row and end-start/end-end on the last to give a shared
|
|
150
|
+
rounded chassis. Threading them as custom properties means the
|
|
151
|
+
parent list can paint shape via `::slotted()` without crossing the
|
|
152
|
+
shadow boundary directly. */
|
|
153
|
+
--_container-shape-start-start: var(--pami-list-item-container-shape-start-start, var(--_container-shape));
|
|
154
|
+
--_container-shape-start-end: var(--pami-list-item-container-shape-start-end, var(--_container-shape));
|
|
155
|
+
--_container-shape-end-start: var(--pami-list-item-container-shape-end-start, var(--_container-shape));
|
|
156
|
+
--_container-shape-end-end: var(--pami-list-item-container-shape-end-end, var(--_container-shape));
|
|
157
|
+
|
|
158
|
+
/* Per-state container shape morph per the M3 Lists spec:
|
|
159
|
+
Hover → no default morph (state layer only)
|
|
160
|
+
Focus → 16px (corner-large)
|
|
161
|
+
Pressed → 16px (corner-large)
|
|
162
|
+
Selected → 16px (corner-large)
|
|
163
|
+
Dragged → 16px (corner-large)
|
|
164
|
+
`--pami-list-item-active-container-shape` acts as a meta-override —
|
|
165
|
+
set it once to apply the same shape across focus / pressed / selected /
|
|
166
|
+
dragged. Hover is excluded unless `--pami-list-item-hover-container-shape`
|
|
167
|
+
is set explicitly. */
|
|
168
|
+
/* Active-state corner radii — focus / pressed / selected / dragged default
|
|
169
|
+
to corner-large (16px). Hover defaults to 0 so flat middle rows keep
|
|
170
|
+
sharp corners during pointer-over; only the state layer signals hover. */
|
|
171
|
+
/* Hover defaults to 0 so flat / middle rows keep their resting corners.
|
|
172
|
+
Hover feedback is the state layer only — rounding on hover made
|
|
173
|
+
hover-out snap from rounded → sharp even without a radius transition.
|
|
174
|
+
Authors can still opt in via --pami-list-item-hover-container-shape or
|
|
175
|
+
the shared --pami-list-item-active-container-shape meta-override. */
|
|
176
|
+
--_hover-container-shape: var(--pami-list-item-hover-container-shape, var(--pami-list-item-active-container-shape, 0px));
|
|
177
|
+
/* These three are the MORPHED corner radii for focus / press / selection.
|
|
178
|
+
They are consumed as `max(<resting corner>, <this>)`, so multiplying by
|
|
179
|
+
--md-sys-shape-morph-enabled collapses them to 0 when shape morphing is
|
|
180
|
+
switched off — and max(rest, 0) is exactly the resting corner. That freezes
|
|
181
|
+
all 50+ per-corner morph rules below from three declarations, with no
|
|
182
|
+
change at all while the flag is its default 1.
|
|
183
|
+
|
|
184
|
+
Global `data-shape-morph="off"` or per-component `shape-morph="off"`; see
|
|
185
|
+
§13 in tokens.css. */
|
|
186
|
+
--_focus-container-shape: calc(var(--pami-list-item-focus-container-shape, var(--pami-list-item-active-container-shape, var(--md-sys-shape-corner-large, 16px))) * var(--md-sys-shape-morph-enabled, 1));
|
|
187
|
+
--_pressed-container-shape: calc(var(--pami-list-item-pressed-container-shape, var(--pami-list-item-active-container-shape, var(--md-sys-shape-corner-large, 16px))) * var(--md-sys-shape-morph-enabled, 1));
|
|
188
|
+
--_selected-container-shape: calc(var(--pami-list-item-selected-container-shape, var(--pami-list-item-active-container-shape, var(--md-sys-shape-corner-large, 16px))) * var(--md-sys-shape-morph-enabled, 1));
|
|
189
|
+
--_dragged-container-shape: var(--pami-list-item-dragged-container-shape, var(--pami-list-item-active-container-shape, var(--md-sys-shape-corner-large, 16px)));
|
|
190
|
+
|
|
191
|
+
--_label-text-color: var(--pami-list-item-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));
|
|
192
|
+
--_label-text-font: var(--pami-list-item-label-text-font, var(--md-sys-typescale-body-large-font-family, Roboto, sans-serif));
|
|
193
|
+
|
|
194
|
+
--_supporting-text-color: var(--pami-list-item-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
195
|
+
--_supporting-text-font: var(--pami-list-item-supporting-text-font, var(--md-sys-typescale-body-medium-font-family, Roboto, sans-serif));
|
|
196
|
+
|
|
197
|
+
--_overline-color: var(--pami-list-item-overline-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
198
|
+
|
|
199
|
+
--_trailing-supporting-text-color: var(--pami-list-item-trailing-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
200
|
+
--_trailing-supporting-text-font: var(--pami-list-item-trailing-supporting-text-font, var(--md-sys-typescale-label-small-font-family, Roboto, sans-serif));
|
|
201
|
+
|
|
202
|
+
--_leading-icon-color: var(--pami-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
203
|
+
/* M3 token spec: list-item leading icon = 24px (default).
|
|
204
|
+
The Expressive list-styles (`standard`, `segmented`) tighten this to
|
|
205
|
+
20px via the `--_leading-icon-expressive-size` override below. */
|
|
206
|
+
--_leading-icon-size: var(--pami-list-item-leading-icon-size, max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px)));
|
|
207
|
+
--_leading-icon-expressive-size: var(--pami-list-item-leading-icon-expressive-size, max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px)));
|
|
208
|
+
--_trailing-icon-color: var(--pami-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
209
|
+
/* When the row is in selection mode but NOT selected, the M3 token spec
|
|
210
|
+
calls for the trailing icon (typically a checkmark or radio glyph) to
|
|
211
|
+
use on-surface instead of on-surface-variant — slightly higher contrast
|
|
212
|
+
so the affordance reads as "tap to select" rather than ambient meta. */
|
|
213
|
+
--_unselected-trailing-icon-color: var(--pami-list-item-unselected-trailing-icon-color, var(--md-sys-color-on-surface, #1d1b20));
|
|
214
|
+
--_trailing-icon-size: var(--pami-list-item-trailing-icon-size, max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px)));
|
|
215
|
+
--_trailing-icon-expressive-size: var(--pami-list-item-trailing-icon-expressive-size, max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px)));
|
|
216
|
+
|
|
217
|
+
--_leading-avatar-color: var(--pami-list-item-leading-avatar-color, var(--md-sys-color-primary-container, #eaddff));
|
|
218
|
+
--_leading-avatar-label-color: var(--pami-list-item-leading-avatar-label-color, var(--md-sys-color-on-primary-container, #21005d));
|
|
219
|
+
--_leading-avatar-size: var(--pami-list-item-leading-avatar-size, 40px);
|
|
220
|
+
--_leading-avatar-shape: var(--pami-list-item-leading-avatar-shape, var(--md-sys-shape-corner-full, 9999px));
|
|
221
|
+
|
|
222
|
+
--_leading-image-width: var(--pami-list-item-leading-image-width, 56px);
|
|
223
|
+
--_leading-image-height: var(--pami-list-item-leading-image-height, 56px);
|
|
224
|
+
/* M3: default image is square (corner-none); Expressive image rounds
|
|
225
|
+
to corner-small (8px). The expressive value is applied by the
|
|
226
|
+
`:host-context(.pami-list--standard|.pami-list--segmented)` rule
|
|
227
|
+
down in Section 3. */
|
|
228
|
+
--_leading-image-shape: var(--pami-list-item-leading-image-shape, var(--md-sys-shape-corner-none, 0px));
|
|
229
|
+
--_leading-image-expressive-shape: var(--pami-list-item-leading-image-expressive-shape, var(--md-sys-shape-corner-small, 8px));
|
|
230
|
+
--_leading-image-selection-scrim-color: var(
|
|
231
|
+
--pami-list-item-leading-image-selection-scrim-color,
|
|
232
|
+
color-mix(in srgb, var(--md-sys-color-scrim, #000000) 32%, transparent)
|
|
233
|
+
);
|
|
234
|
+
--_leading-image-selection-circle-color: var(
|
|
235
|
+
--pami-list-item-leading-image-selection-circle-color,
|
|
236
|
+
color-mix(in srgb, var(--md-sys-color-on-surface, #1d1b20) 60%, transparent)
|
|
237
|
+
);
|
|
238
|
+
--_leading-image-selection-icon-color: var(
|
|
239
|
+
--pami-list-item-leading-image-selection-icon-color,
|
|
240
|
+
var(--md-sys-color-surface, #fef7ff)
|
|
241
|
+
);
|
|
242
|
+
--_leading-image-selection-icon-size: var(--pami-list-item-leading-image-selection-icon-size, 24px);
|
|
243
|
+
|
|
244
|
+
/* Per the M3 spec the leading slot may also hold a <video> thumbnail.
|
|
245
|
+
Default size is 100×56px (small video token). Authors slot a
|
|
246
|
+
`<video slot="leading">` and these props size it automatically. */
|
|
247
|
+
--_leading-video-width: var(--pami-list-item-leading-video-width, 100px);
|
|
248
|
+
--_leading-video-height: var(--pami-list-item-leading-video-height, 56px);
|
|
249
|
+
--_leading-video-shape: var(--pami-list-item-leading-video-shape, var(--md-sys-shape-corner-small, 8px));
|
|
250
|
+
|
|
251
|
+
/* Pami object selection uses Bronze soft; filters use Olive soft. */
|
|
252
|
+
--_selected-container-color: var(--pami-list-item-selected-container-color, var(--md-sys-color-tertiary-container, #FFEEE4));
|
|
253
|
+
--_selected-label-text-color: var(--pami-list-item-selected-label-text-color, var(--md-sys-color-on-tertiary-container, #331E11));
|
|
254
|
+
/* Selected + interactive states: per the M3 spec, when a selected
|
|
255
|
+
row is hovered / focused / pressed / dragged its leading + trailing
|
|
256
|
+
icons jump from on-tertiary-container (#4A4458) to on-surface
|
|
257
|
+
(#1D1B20) for the duration of the interaction. */
|
|
258
|
+
--_selected-active-icon-color: var(--pami-list-item-selected-active-icon-color, var(--md-sys-color-on-surface, #1d1b20));
|
|
259
|
+
/* Selected + disabled: container fades to on-surface @ 12% per spec. */
|
|
260
|
+
--_selected-disabled-container-color: var(
|
|
261
|
+
--pami-list-item-selected-disabled-container-color,
|
|
262
|
+
color-mix(in srgb, var(--md-sys-color-on-surface, #1d1b20) 12%, transparent)
|
|
263
|
+
);
|
|
264
|
+
|
|
265
|
+
--_state-layer-color: var(--md-sys-color-on-surface, #1c1b1f);
|
|
266
|
+
|
|
267
|
+
/* Per-state state-layer opacities from the M3 Lists spec — these
|
|
268
|
+
override the generic system tokens (which default to 0.12 for
|
|
269
|
+
focus/press and don't define a dragged opacity). */
|
|
270
|
+
--_hover-state-layer-opacity: var(--pami-list-item-hover-state-layer-opacity, var(--md-sys-state-hover-state-layer-opacity, 0.08));
|
|
271
|
+
--_focus-state-layer-opacity: var(--pami-list-item-focus-state-layer-opacity, 0.1);
|
|
272
|
+
--_pressed-state-layer-opacity: var(--pami-list-item-pressed-state-layer-opacity, 0.1);
|
|
273
|
+
--_dragged-state-layer-opacity: var(--pami-list-item-dragged-state-layer-opacity, 0.16);
|
|
274
|
+
--_disabled-state-layer-opacity: var(--pami-list-item-disabled-state-layer-opacity, 0);
|
|
275
|
+
|
|
276
|
+
/* Row spacing tokens — defaults track the M3 Lists token spec
|
|
277
|
+
(leading 16px, trailing 16px, top 8px, bottom 10px, between 12px).
|
|
278
|
+
When the row sits inside a 88px+ chassis (lines=3) the top/bottom
|
|
279
|
+
flips to 12px per the spec. When the leading slot hosts a <video>
|
|
280
|
+
thumbnail, the top padding is bumped to 12px (see the `:has()`
|
|
281
|
+
override below) so the 100×56px tile reads as anchored rather than
|
|
282
|
+
hugged-tight against the chassis edge. */
|
|
283
|
+
--_leading-space: var(--pami-list-item-leading-space, var(--md-sys-spacing-inset-lg, 16px));
|
|
284
|
+
--_trailing-space: var(--pami-list-item-trailing-space, var(--md-sys-spacing-inset-lg, 16px));
|
|
285
|
+
/* Vertical padding rides inset-sm (8px at density 0, so the M3 8px/10px
|
|
286
|
+
defaults are unchanged) so multi-line rows keep tightening past the point
|
|
287
|
+
where min-block-size alone floors on the text height. */
|
|
288
|
+
/* Vertical padding tightens with global density down to 2px (8/10px at
|
|
289
|
+
density 0), so multi-line rows reach a genuinely compact height at -3/-4. */
|
|
290
|
+
--_top-space: var(--pami-list-item-top-space, max(2px, calc(8px + var(--md-sys-density-scale, 0) * 1.5px)));
|
|
291
|
+
--_bottom-space: var(--pami-list-item-bottom-space, max(2px, calc(8px + var(--md-sys-density-scale, 0) * 1.5px)));
|
|
292
|
+
--_between-space: var(--pami-list-item-between-space, max(8px, var(--md-sys-spacing-gap-md, 12px)));
|
|
293
|
+
--_three-line-top-space: var(--pami-list-item-three-line-top-space, max(2px, calc(12px + var(--md-sys-density-scale, 0) * 2.5px)));
|
|
294
|
+
--_three-line-bottom-space: var(--pami-list-item-three-line-bottom-space, max(2px, calc(12px + var(--md-sys-density-scale, 0) * 2.5px)));
|
|
295
|
+
|
|
296
|
+
/* Global density lever: each rung of `data-density` (0…-4) trims the row
|
|
297
|
+
height. density-scale is 0 by default, so the default heights below are
|
|
298
|
+
unchanged. Single-line uses 4px/rung; multi-line uses 6px/rung so 2/3-line
|
|
299
|
+
rows tighten toward their content instead of flooring ~16px above it.
|
|
300
|
+
See packages/tokens/src/tokens.css §10-12. */
|
|
301
|
+
--_density-delta: calc(var(--md-sys-density-scale, 0) * 4px);
|
|
302
|
+
--_density-delta-multi: calc(var(--md-sys-density-scale, 0) * 6px);
|
|
303
|
+
|
|
304
|
+
/* Per the M3 Lists spec a dragged tile lifts to level 4 elevation so
|
|
305
|
+
it visually detaches from its neighbours. */
|
|
306
|
+
--_dragged-container-elevation: var(--pami-list-item-dragged-container-elevation, inset 0 0 0 1px var(--pami-material-crumb-edge-side, var(--pami-component-glass-light-bottom, rgba(80, 69, 54, 0.16))));
|
|
307
|
+
|
|
308
|
+
--_expand-chevron-color: var(--pami-list-item-expand-chevron-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
309
|
+
|
|
310
|
+
/* MD3 expressive disclosure motion — the panel "arches" open with
|
|
311
|
+
emphasized-decelerate (content settles into place on the way down) and
|
|
312
|
+
"retracts" on close with emphasized-accelerate (content gets out of the
|
|
313
|
+
way quickly). Asymmetric duration + easing is the M3 Expressive
|
|
314
|
+
open/close vocabulary, mirroring pami-accordion-item. */
|
|
315
|
+
--_expand-duration: var(--pami-list-item-expand-duration, var(--md-sys-motion-duration-medium3, 350ms));
|
|
316
|
+
--_collapse-duration: var(--pami-list-item-collapse-duration, var(--md-sys-motion-duration-short4, 200ms));
|
|
317
|
+
--_expand-easing: var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1));
|
|
318
|
+
--_collapse-easing: var(--md-sys-motion-easing-emphasized-accelerate, cubic-bezier(0.3, 0, 0.8, 0.15));
|
|
319
|
+
|
|
320
|
+
--_expanded-panel-padding-block: var(--pami-list-item-expanded-panel-padding-block, 0px);
|
|
321
|
+
--_expanded-panel-padding-inline: var(--pami-list-item-expanded-panel-padding-inline, 0px);
|
|
322
|
+
/* Flat expansion list — child rows sit at the same inline alignment as the
|
|
323
|
+
parent row (no nested sub-box indent). Authors can opt into nesting via
|
|
324
|
+
`--pami-list-item-expanded-panel-padding-inline-start`. */
|
|
325
|
+
--_expanded-panel-padding-inline-start: var(
|
|
326
|
+
--pami-list-item-expanded-panel-padding-inline-start,
|
|
327
|
+
var(--pami-list-item-expanded-panel-padding-inline, 0px)
|
|
328
|
+
);
|
|
329
|
+
--_expanded-panel-background: var(--pami-list-item-expanded-panel-background, transparent);
|
|
330
|
+
|
|
331
|
+
display: block;
|
|
332
|
+
position: relative;
|
|
333
|
+
background-color: var(--_container-color);
|
|
334
|
+
color: var(--_label-text-color);
|
|
335
|
+
/* The longhand corner radii are set so pami-list[list-style="grouped"]
|
|
336
|
+
can override individual corners. The shorthand stays as a fallback
|
|
337
|
+
for the standard / segmented paths. */
|
|
338
|
+
border-start-start-radius: var(--_container-shape-start-start);
|
|
339
|
+
border-start-end-radius: var(--_container-shape-start-end);
|
|
340
|
+
border-end-start-radius: var(--_container-shape-end-start);
|
|
341
|
+
border-end-end-radius: var(--_container-shape-end-end);
|
|
342
|
+
box-sizing: border-box;
|
|
343
|
+
-webkit-tap-highlight-color: transparent;
|
|
344
|
+
outline: none;
|
|
345
|
+
/* The chassis owns rounding so a non-zero border-radius clips both
|
|
346
|
+
the row's state layer AND the expanded panel without bleeding past
|
|
347
|
+
the corners. `clip` (not `hidden`) avoids creating a stacking
|
|
348
|
+
context that would clip outward popups. */
|
|
349
|
+
overflow: clip;
|
|
350
|
+
/* Animate chassis shape + elevation only — not color/background. Transitions
|
|
351
|
+
on color during continuous resize reflow read as text flicker even when
|
|
352
|
+
the token value is unchanged. Selection / disabled tints snap via custom
|
|
353
|
+
properties on child text nodes instead. */
|
|
354
|
+
transition:
|
|
355
|
+
box-shadow var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),
|
|
356
|
+
border-start-start-radius var(--md-sys-motion-duration-medium4, 400ms) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)),
|
|
357
|
+
border-start-end-radius var(--md-sys-motion-duration-medium4, 400ms) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)),
|
|
358
|
+
border-end-start-radius var(--md-sys-motion-duration-medium4, 400ms) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)),
|
|
359
|
+
border-end-end-radius var(--md-sys-motion-duration-medium4, 400ms) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1));
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/* ==========================================================
|
|
363
|
+
1b. ROW — flex chrome (leading | content | trailing)
|
|
364
|
+
All spacing flows through public custom properties so apps can
|
|
365
|
+
re-tune individual edges without rewriting padding shorthands. The
|
|
366
|
+
defaults track the M3 Lists token spec:
|
|
367
|
+
- Leading space 16px (--pami-list-item-leading-space)
|
|
368
|
+
- Trailing space 16px (--pami-list-item-trailing-space)
|
|
369
|
+
- Top space 10px (--pami-list-item-top-space)
|
|
370
|
+
- Bottom space 10px (--pami-list-item-bottom-space)
|
|
371
|
+
- Between space 12px (--pami-list-item-between-space) — gap
|
|
372
|
+
- 3-line top/bottom 12px (--pami-list-item-three-line-{top,bottom}-space)
|
|
373
|
+
- Minimum touch 48px → min-block-size 56px (≥48px)
|
|
374
|
+
To revert to the older 24px trailing / 16px between (M3 baseline
|
|
375
|
+
pre-Expressive), set:
|
|
376
|
+
pami-list-item {
|
|
377
|
+
--pami-list-item-trailing-space: 24px;
|
|
378
|
+
--pami-list-item-between-space: 16px;
|
|
379
|
+
}
|
|
380
|
+
========================================================== */
|
|
381
|
+
.pami-list-item__row {
|
|
382
|
+
display: flex;
|
|
383
|
+
align-items: center;
|
|
384
|
+
position: relative;
|
|
385
|
+
min-block-size: calc(56px + var(--_density-delta));
|
|
386
|
+
padding-block-start: var(--_top-space);
|
|
387
|
+
padding-block-end: var(--_bottom-space);
|
|
388
|
+
padding-inline-start: var(--_leading-space);
|
|
389
|
+
padding-inline-end: var(--_trailing-space);
|
|
390
|
+
gap: var(--_between-space);
|
|
391
|
+
box-sizing: border-box;
|
|
392
|
+
/* Keep ripple + state-layer inside the row when the host has 0px radius. */
|
|
393
|
+
overflow: hidden;
|
|
394
|
+
transition:
|
|
395
|
+
border-start-start-radius var(--md-sys-motion-duration-medium4, 400ms) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)),
|
|
396
|
+
border-start-end-radius var(--md-sys-motion-duration-medium4, 400ms) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)),
|
|
397
|
+
border-end-start-radius var(--md-sys-motion-duration-medium4, 400ms) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)),
|
|
398
|
+
border-end-end-radius var(--md-sys-motion-duration-medium4, 400ms) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1));
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
/* Interactive rows show pointer cursor */
|
|
402
|
+
:host(.pami-list-item--interactive) .pami-list-item__row {
|
|
403
|
+
cursor: pointer;
|
|
404
|
+
user-select: none;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/* Non-interactive plain rows (default `type="text"`) */
|
|
408
|
+
:host(.pami-list-item--type-text:not(.pami-list-item--selection-mode):not(.pami-list-item--expandable)) .pami-list-item__row {
|
|
409
|
+
cursor: default;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
/* ==========================================================
|
|
413
|
+
1c. PRIMARY ACTION (non-selection interactive rows)
|
|
414
|
+
For `type="button"` / `type="link"` rows the interactive widget is an inner
|
|
415
|
+
element (`role="button"` / `menuitem` span, or a real `<a href>`), NOT the
|
|
416
|
+
host — so the host stays a structural role (`listitem`, or `none` in a menu)
|
|
417
|
+
and any trailing controls remain its focusable SIBLINGS (never nested → no
|
|
418
|
+
axe `nested-interactive`). It wraps only the leading + content clusters and
|
|
419
|
+
takes the primary flex bay of the row; the ripple, state layer and focus ring
|
|
420
|
+
stay row/host-level so their visuals are byte-for-byte unchanged. The leading↔
|
|
421
|
+
content gap lives here; the content↔trailing gap stays on the row.
|
|
422
|
+
========================================================== */
|
|
423
|
+
.pami-list-item__primary {
|
|
424
|
+
display: flex;
|
|
425
|
+
align-items: center;
|
|
426
|
+
flex: 1 1 auto;
|
|
427
|
+
min-inline-size: 0;
|
|
428
|
+
gap: var(--_between-space);
|
|
429
|
+
/* Neutralize the intrinsic chrome of <button> / <a> so layout + typography
|
|
430
|
+
are identical to when leading/content sat directly in the row. */
|
|
431
|
+
appearance: none;
|
|
432
|
+
margin: 0;
|
|
433
|
+
padding: 0;
|
|
434
|
+
border: 0;
|
|
435
|
+
background: transparent;
|
|
436
|
+
color: inherit;
|
|
437
|
+
font: inherit;
|
|
438
|
+
text-align: inherit;
|
|
439
|
+
text-decoration: none;
|
|
440
|
+
cursor: inherit;
|
|
441
|
+
outline: none;
|
|
442
|
+
-webkit-tap-highlight-color: transparent;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/* 3-line rows top-align the leading cluster; mirror that inside the primary
|
|
446
|
+
wrapper, which is now the flex parent of leading + content. */
|
|
447
|
+
:host(.pami-list-item--3-line) .pami-list-item__primary {
|
|
448
|
+
align-items: flex-start;
|
|
449
|
+
/* Stretch to the row's full content box. Without this the primary is only as
|
|
450
|
+
tall as its text (60px in a 64px box) and sits at the top, so anything
|
|
451
|
+
centred INSIDE it — the avatar below — centres on the text rather than on
|
|
452
|
+
the row, landing 2px high. The trailing cluster already stretches for the
|
|
453
|
+
same reason. `align-items: flex-start` above is untouched, so the text
|
|
454
|
+
itself stays top-aligned and the trailing timestamp keeps lining up with
|
|
455
|
+
the overline. */
|
|
456
|
+
align-self: stretch;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
/* ==========================================================
|
|
460
|
+
2. LINE HEIGHT VARIANTS
|
|
461
|
+
1-line: 56px | 2-line: 72px | 3-line: 88px+
|
|
462
|
+
At 88px+ the spec says elements top-align; we apply that
|
|
463
|
+
to both leading and trailing so an avatar/icon sits at
|
|
464
|
+
the top of a multi-line row like the M3 reference image.
|
|
465
|
+
========================================================== */
|
|
466
|
+
/* 1 / 2-line rows: keep the host's --_top-space / --_bottom-space
|
|
467
|
+
defaults (8px / 10px). Only the row height changes per the M3 spec. */
|
|
468
|
+
:host(.pami-list-item--1-line) .pami-list-item__row {
|
|
469
|
+
min-block-size: calc(56px + var(--_density-delta));
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
:host(.pami-list-item--2-line) .pami-list-item__row {
|
|
473
|
+
min-block-size: calc(72px + var(--_density-delta-multi));
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
/* 3-line rows (88px+): the M3 spec bumps top / bottom padding to 12px
|
|
477
|
+
and top-aligns the leading + trailing wrappers so the leading icon
|
|
478
|
+
sits flush to the spec's 12px leading-icon-top-padding mark. */
|
|
479
|
+
:host(.pami-list-item--3-line) .pami-list-item__row {
|
|
480
|
+
min-block-size: calc(88px + var(--_density-delta-multi));
|
|
481
|
+
padding-block-start: var(--_three-line-top-space);
|
|
482
|
+
padding-block-end: var(--_three-line-bottom-space);
|
|
483
|
+
align-items: flex-start;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
/* When the leading slot hosts a <video> thumbnail (100×56px), the M3
|
|
487
|
+
spec asks for a 12px top inset instead of the 8px default so the
|
|
488
|
+
wider thumbnail reads as anchored to the row, not crammed against
|
|
489
|
+
the chassis edge. We override --_top-space at the host level so the
|
|
490
|
+
`.pami-list-item__row` rule above keeps the single source of truth.
|
|
491
|
+
The 3-line override above still wins by source order for 3-line +
|
|
492
|
+
video (both ask for 12px anyway).
|
|
493
|
+
|
|
494
|
+
Detection is done via the `pami-list-item--with-video` host class set
|
|
495
|
+
from TSX (see `detectSlottedFromLightDom` in pami-list-item.tsx). We
|
|
496
|
+
can't use `:host(:has(> video[slot="leading"]))` here because
|
|
497
|
+
Chromium doesn't let `:host()`'s relational pseudo-class arguments
|
|
498
|
+
cross the shadow boundary into the host's light-DOM descendants. */
|
|
499
|
+
:host(.pami-list-item--with-video) {
|
|
500
|
+
--_top-space: var(--pami-list-item-leading-video-top-space, max(4px, calc(12px + var(--md-sys-density-scale, 0) * 2px)));
|
|
501
|
+
--_bottom-space: max(4px, calc(12px + var(--md-sys-density-scale, 0) * 2px));
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
:host(.pami-list-item--3-line) .pami-list-item__leading {
|
|
505
|
+
align-self: flex-start;
|
|
506
|
+
/* Leading icon top padding = 12px on ≥88px rows per the M3 spec.
|
|
507
|
+
The row already provides padding-block: 12px when 3-line, so the
|
|
508
|
+
leading wrapper doesn't add anything on top — it just pins to
|
|
509
|
+
flex-start so the row's padding is the only offset. */
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
/* …but an AVATAR centres instead. The flex-start above is the spec rule for a
|
|
513
|
+
24px leading ICON, which reads as aligned to the first text line. A 40px
|
|
514
|
+
avatar is a much heavier object and pinning it to the top of an 88px row
|
|
515
|
+
leaves it visibly high — measured 12px above the row's centre. Icons keep the
|
|
516
|
+
spec behaviour; only avatars change.
|
|
517
|
+
|
|
518
|
+
Keyed off the existing `--with-avatar` host class rather than `:has()`, which
|
|
519
|
+
the host already sets for the `leading-avatar*` props. */
|
|
520
|
+
:host(.pami-list-item--3-line.pami-list-item--with-avatar) .pami-list-item__leading {
|
|
521
|
+
align-self: center;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
/* Same, for an avatar the consumer SLOTS rather than passing as a prop — that
|
|
525
|
+
one lives in the light tree, so it has to be tested on the host. Kept as its
|
|
526
|
+
own rule on purpose: `:has()` inside `:host()` is not universally parsed, and
|
|
527
|
+
in a shared selector list one unparsable selector invalidates the whole rule,
|
|
528
|
+
which would silently take the prop-driven case above down with it. */
|
|
529
|
+
:host(.pami-list-item--3-line:has(pami-avatar[slot='leading'])) .pami-list-item__leading {
|
|
530
|
+
align-self: center;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
/* 3-line rows: stack the trailing cluster vertically, full row height,
|
|
534
|
+
pinned to the inline-end edge (fully right). The trailing supporting
|
|
535
|
+
text (e.g. a timestamp) sits at the top while the trailing icon/action
|
|
536
|
+
(e.g. a star) is vertically centred in the remaining space via auto
|
|
537
|
+
block margins — so the star reads as middle-right of the row. */
|
|
538
|
+
:host(.pami-list-item--3-line) .pami-list-item__trailing {
|
|
539
|
+
align-self: stretch;
|
|
540
|
+
flex-direction: column;
|
|
541
|
+
align-items: flex-end;
|
|
542
|
+
justify-content: flex-start;
|
|
543
|
+
gap: 0;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
:host(.pami-list-item--3-line) .pami-list-item__trailing-icon {
|
|
547
|
+
margin-block: auto;
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
/* ==========================================================
|
|
551
|
+
3. EXPRESSIVE LIST-STYLES — inherited from
|
|
552
|
+
pami-list[list-style="standard"] and pami-list[list-style="segmented"].
|
|
553
|
+
|
|
554
|
+
Both Expressive variants tighten the leading + trailing icons from
|
|
555
|
+
24px (baseline token) to 20px (Expressive token) and round the
|
|
556
|
+
leading image thumbnail from sharp corners to corner-small (8px).
|
|
557
|
+
The `--pami-list-item-*-expressive-*` props are the user-overrideable
|
|
558
|
+
inputs; the rule simply re-binds the internal slots so the rest of
|
|
559
|
+
the CSS keeps referring to the canonical
|
|
560
|
+
`--_leading-icon-size` / `--_trailing-icon-size` / `--_leading-image-shape`
|
|
561
|
+
without per-style branching.
|
|
562
|
+
========================================================== */
|
|
563
|
+
:host-context(.pami-list--standard),
|
|
564
|
+
:host-context(.pami-list--segmented) {
|
|
565
|
+
--_leading-icon-size: var(--pami-list-item-leading-icon-size, var(--_leading-icon-expressive-size));
|
|
566
|
+
--_trailing-icon-size: var(--pami-list-item-trailing-icon-size, var(--_trailing-icon-expressive-size));
|
|
567
|
+
--_leading-image-shape: var(--pami-list-item-leading-image-shape, var(--_leading-image-expressive-shape));
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
/* Standard connected list — first / last row corner rounding at rest.
|
|
571
|
+
pami-list also threads per-corner custom properties via ::slotted(); we
|
|
572
|
+
mirror the same radii here with :host(:first-of-type|:last-of-type)
|
|
573
|
+
so resting corners paint reliably from inside the shadow boundary.
|
|
574
|
+
Uses .pami-list--standard (always on the host class map) rather than
|
|
575
|
+
the list-style attribute, which is not reflected. Middle rows keep
|
|
576
|
+
0px on internal edges via the --_container-shape default. */
|
|
577
|
+
:host-context(.pami-list--standard):host(:first-of-type) {
|
|
578
|
+
--pami-list-item-container-shape-start-start: var(--md-sys-shape-corner-large, 16px);
|
|
579
|
+
--pami-list-item-container-shape-start-end: var(--md-sys-shape-corner-large, 16px);
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
:host-context(.pami-list--standard):host(:last-of-type) {
|
|
583
|
+
--pami-list-item-container-shape-end-start: var(--md-sys-shape-corner-large, 16px);
|
|
584
|
+
--pami-list-item-container-shape-end-end: var(--md-sys-shape-corner-large, 16px);
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
:host-context(.pami-list--standard):host(:only-of-type) {
|
|
588
|
+
--pami-list-item-container-shape-start-start: var(--md-sys-shape-corner-large, 16px);
|
|
589
|
+
--pami-list-item-container-shape-start-end: var(--md-sys-shape-corner-large, 16px);
|
|
590
|
+
--pami-list-item-container-shape-end-start: var(--md-sys-shape-corner-large, 16px);
|
|
591
|
+
--pami-list-item-container-shape-end-end: var(--md-sys-shape-corner-large, 16px);
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
/* Expandable rows that are open hand their bottom corners to the last child
|
|
595
|
+
row in the panel so the connected chassis continues as one flat stack. */
|
|
596
|
+
:host(.pami-list-item--expandable.pami-list-item--expanded) {
|
|
597
|
+
--pami-list-item-container-shape-end-start: 0px;
|
|
598
|
+
--pami-list-item-container-shape-end-end: 0px;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
/* Segmented adds the rounded-tile container shape on top of the
|
|
602
|
+
shared Expressive icon/image overrides above. The container colour
|
|
603
|
+
already falls through to the `:host` default (surface = the M3
|
|
604
|
+
`list-item-segmented-container-color` token), so re-declaring it
|
|
605
|
+
here would lift the cascade specificity of `:host-context()` above
|
|
606
|
+
`:host(.pami-list-item--selected)` and stop the selected-state tint
|
|
607
|
+
from painting. Authors can still re-tint the bay via
|
|
608
|
+
`--pami-list-item-container-color` on the row or list. */
|
|
609
|
+
:host-context(.pami-list--segmented) {
|
|
610
|
+
--_container-shape: var(--pami-list-item-container-shape, var(--md-sys-shape-corner-extra-small, 4px));
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
/* Segmented connected stack — first / last row corner emphasis at rest.
|
|
614
|
+
Tiles keep corner-extra-small (4px) on internal edges; the first row
|
|
615
|
+
lifts its top corners and the last row lifts its bottom corners to
|
|
616
|
+
corner-large (16px) so the separated stack reads as one grouped chassis
|
|
617
|
+
(mirrors standard list first/last treatment). Middle rows stay 4px
|
|
618
|
+
on all four corners. */
|
|
619
|
+
:host-context(.pami-list--segmented):host(:first-of-type) {
|
|
620
|
+
--pami-list-item-container-shape-start-start: var(--md-sys-shape-corner-large, 16px);
|
|
621
|
+
--pami-list-item-container-shape-start-end: var(--md-sys-shape-corner-large, 16px);
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
:host-context(.pami-list--segmented):host(:last-of-type) {
|
|
625
|
+
--pami-list-item-container-shape-end-start: var(--md-sys-shape-corner-large, 16px);
|
|
626
|
+
--pami-list-item-container-shape-end-end: var(--md-sys-shape-corner-large, 16px);
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
:host-context(.pami-list--segmented):host(:only-of-type) {
|
|
630
|
+
--pami-list-item-container-shape-start-start: var(--md-sys-shape-corner-large, 16px);
|
|
631
|
+
--pami-list-item-container-shape-start-end: var(--md-sys-shape-corner-large, 16px);
|
|
632
|
+
--pami-list-item-container-shape-end-start: var(--md-sys-shape-corner-large, 16px);
|
|
633
|
+
--pami-list-item-container-shape-end-end: var(--md-sys-shape-corner-large, 16px);
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
/* ==========================================================
|
|
637
|
+
4. STATE LAYER (interactive rows only)
|
|
638
|
+
========================================================== */
|
|
639
|
+
.pami-list-item__state-layer {
|
|
640
|
+
position: absolute;
|
|
641
|
+
inset: 0;
|
|
642
|
+
/* Match the row's (possibly morphed) corner radius so the overlay clips to
|
|
643
|
+
the rounded chassis even if a consumer lifts the row out of flow during a
|
|
644
|
+
drag and an ancestor's overflow no longer does the clipping for us. */
|
|
645
|
+
border-radius: inherit;
|
|
646
|
+
background: var(--md-sys-pari-glow);
|
|
647
|
+
opacity: 0;
|
|
648
|
+
transition: opacity var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
|
|
649
|
+
pointer-events: none;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
:host(.pami-list-item--interactive) .pami-list-item__row:hover .pami-list-item__state-layer {
|
|
653
|
+
opacity: var(--_hover-state-layer-opacity);
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
:host(.pami-list-item--interactive:focus-visible) .pami-list-item__state-layer,
|
|
657
|
+
:host(.pami-list-item--interactive.pami-list-item--roving-focus-visible:not(:focus)) .pami-list-item__state-layer {
|
|
658
|
+
opacity: var(--_focus-state-layer-opacity);
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
/* Inner-primary keyboard focus. The row uses no delegatesFocus (that broke
|
|
662
|
+
focusable option-row hosts), so keyboard focus lands on the inner primary and
|
|
663
|
+
the host does NOT match :focus-visible — :has() drives the chassis focus
|
|
664
|
+
feedback for button / link / menuitem rows instead. */
|
|
665
|
+
:host(.pami-list-item--interactive:has(.pami-list-item__primary:focus-visible)) .pami-list-item__state-layer {
|
|
666
|
+
opacity: var(--_focus-state-layer-opacity);
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
:host(.pami-list-item--interactive) .pami-list-item__row:active .pami-list-item__state-layer,
|
|
670
|
+
:host(.pami-list-item--pressed) .pami-list-item__state-layer {
|
|
671
|
+
opacity: var(--_pressed-state-layer-opacity);
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
/* Dragged is an app-driven state — toggle `.pami-list-item--dragged` on the
|
|
675
|
+
host (e.g. from a reorderable drag wrapper) to get the spec's 16% state
|
|
676
|
+
layer, corner-large morph, and a level-4 elevation lift so the tile
|
|
677
|
+
visually detaches from its neighbours. z-index keeps the shadow above
|
|
678
|
+
sibling rows that haven't scrolled past. */
|
|
679
|
+
:host(.pami-list-item--dragged) .pami-list-item__state-layer {
|
|
680
|
+
opacity: var(--_dragged-state-layer-opacity);
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
/* While dragged, the M3 affordance is the steady 16 % state layer (above) plus
|
|
684
|
+
the elevation lift — NOT an active press ripple. Suppress the ripple wave so
|
|
685
|
+
it can't sit as an oversized circle near the press point (e.g. the trailing
|
|
686
|
+
drag handle the user grabbed) for the whole drag, which previously read as a
|
|
687
|
+
large blob overlapping the handle. */
|
|
688
|
+
:host(.pami-list-item--dragged) pami-ripple {
|
|
689
|
+
display: none;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
:host(.pami-list-item--dragged) {
|
|
693
|
+
box-shadow: var(--_dragged-container-elevation);
|
|
694
|
+
z-index: 1;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
/* ==========================================================
|
|
698
|
+
5. FOCUS RING
|
|
699
|
+
Inset box-shadow on :host — paints inside the border-box so
|
|
700
|
+
parent overflow (pami-list overflow:clip, story wrappers with
|
|
701
|
+
overflow:hidden, stacked connected rows) cannot clip the ring.
|
|
702
|
+
Outward host outlines + outline-offset extended past the chassis
|
|
703
|
+
and lost pixels at the top edge of first rows. Row-level inset
|
|
704
|
+
rings were still clipped by :host { overflow: clip } and
|
|
705
|
+
.pami-list-item__row { overflow: hidden }. z-index keeps dragged
|
|
706
|
+
elevation shadows above neighbours when both apply.
|
|
707
|
+
========================================================== */
|
|
708
|
+
:host(.pami-list-item--interactive:focus-visible),
|
|
709
|
+
:host(.pami-list-item--interactive.pami-list-item--roving-focus-visible:not(:focus)) {
|
|
710
|
+
box-shadow: inset 0 0 0 var(--md-sys-state-focus-ring-width, 2px) var(--md-sys-color-focus-ring, var(--md-sys-color-secondary));
|
|
711
|
+
outline: none;
|
|
712
|
+
z-index: 1;
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
/* Chassis focus ring when the inner primary holds keyboard focus (the host
|
|
716
|
+
itself isn't focused for button / link / menuitem rows — see the state-layer
|
|
717
|
+
note above). Kept on the host so the ring hugs the chassis edge, not the
|
|
718
|
+
padding-inset primary. */
|
|
719
|
+
:host(.pami-list-item--interactive:has(.pami-list-item__primary:focus-visible)) {
|
|
720
|
+
box-shadow: inset 0 0 0 var(--md-sys-state-focus-ring-width, 2px) var(--md-sys-color-focus-ring, var(--md-sys-color-secondary));
|
|
721
|
+
outline: none;
|
|
722
|
+
z-index: 1;
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
:host(.pami-list-item--dragged:focus-visible) {
|
|
726
|
+
box-shadow:
|
|
727
|
+
var(--_dragged-container-elevation),
|
|
728
|
+
inset 0 0 0 3px var(--md-sys-color-focus-ring, #513018);
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
/* ==========================================================
|
|
732
|
+
5b. ACTIVE-STATE SHAPE MORPH (M3 Lists spec)
|
|
733
|
+
Per https://m3.material.io/components/lists/specs, the list-item
|
|
734
|
+
morphs from its resting shape into a state-specific corner radius:
|
|
735
|
+
|
|
736
|
+
Hover → no default morph (state layer only)
|
|
737
|
+
Focus → 16px (corner-large)
|
|
738
|
+
Pressed → 16px (corner-large)
|
|
739
|
+
Selected → 16px (corner-large)
|
|
740
|
+
Dragged → 16px (corner-large)
|
|
741
|
+
|
|
742
|
+
Applied on focus / selected / pressed / dragged — NOT hover. Hover
|
|
743
|
+
uses the state layer only; morphing corners on hover made flat middle
|
|
744
|
+
rows round to 16px then snap back to sharp on mouse-out. Even with
|
|
745
|
+
border-radius transitions removed, the fading state layer made that
|
|
746
|
+
snap read as an animated corner morph.
|
|
747
|
+
|
|
748
|
+
Coverage:
|
|
749
|
+
- focus / selected / pressed / dragged on standard rows
|
|
750
|
+
- standard first / last edge corners — focus would otherwise SHRINK
|
|
751
|
+
below resting 16px; clamped via max()
|
|
752
|
+
- segmented tiles (resting 4px) — focus morphs up to corner-large;
|
|
753
|
+
clamped via max()
|
|
754
|
+
- grouped first / middle / last rows — morph that lifts out of the
|
|
755
|
+
shared chassis
|
|
756
|
+
|
|
757
|
+
Each corner is computed as `max(resting, active)` so an interaction
|
|
758
|
+
can only ever round a corner further — never sharpen one.
|
|
759
|
+
|
|
760
|
+
Border-radius animates on shape-morph states only (focus / selected /
|
|
761
|
+
pressed / dragged) via the logical-corner transitions on :host and
|
|
762
|
+
.pami-list-item__row. Hover does not change border-radius, so pointer-
|
|
763
|
+
over stays state-layer-only with no corner morph on hover-out. The
|
|
764
|
+
focus ring (Section 5 inset box-shadow) follows the morphed host
|
|
765
|
+
border-radius on :host.
|
|
766
|
+
|
|
767
|
+
Asymmetric M3 Expressive timing (mirrors pami-button / pami-icon-button):
|
|
768
|
+
Enter / settle : medium4 (400ms) + emphasized-decelerate — base :host
|
|
769
|
+
Exit / release : short4 (200ms) + standard — active states
|
|
770
|
+
|
|
771
|
+
Rule order matters: when multiple states are simultaneously true
|
|
772
|
+
(e.g. selected + focused, pressed + selected), the LATER rule in
|
|
773
|
+
source order wins on equal specificity. Priority climbs
|
|
774
|
+
focus → selected → pressed/dragged.
|
|
775
|
+
|
|
776
|
+
Authors can override per-state (--pami-list-item-{state}-container-shape)
|
|
777
|
+
or globally (--pami-list-item-active-container-shape). To restore hover
|
|
778
|
+
rounding, set --pami-list-item-hover-container-shape and add a :hover
|
|
779
|
+
rule in app CSS.
|
|
780
|
+
========================================================== */
|
|
781
|
+
/* Shape morph exit timing — applied on active states so release snaps
|
|
782
|
+
back with short4 + standard while press-in uses the base medium4 +
|
|
783
|
+
emphasized-decelerate curve (CSS uses the pre-change transition). */
|
|
784
|
+
:host(.pami-list-item--interactive:focus-visible),
|
|
785
|
+
:host(.pami-list-item--interactive.pami-list-item--roving-focus-visible:not(:focus)),
|
|
786
|
+
:host(.pami-list-item--selected),
|
|
787
|
+
:host(.pami-list-item--interactive:active),
|
|
788
|
+
:host(.pami-list-item--pressed),
|
|
789
|
+
:host(.pami-list-item--dragged) {
|
|
790
|
+
transition:
|
|
791
|
+
box-shadow var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),
|
|
792
|
+
border-start-start-radius var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),
|
|
793
|
+
border-start-end-radius var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),
|
|
794
|
+
border-end-start-radius var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),
|
|
795
|
+
border-end-end-radius var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
:host(.pami-list-item--interactive:focus-visible) .pami-list-item__row,
|
|
799
|
+
:host(.pami-list-item--interactive.pami-list-item--roving-focus-visible:not(:focus)) .pami-list-item__row,
|
|
800
|
+
:host(.pami-list-item--selected) .pami-list-item__row,
|
|
801
|
+
:host(.pami-list-item--interactive:active) .pami-list-item__row,
|
|
802
|
+
:host(.pami-list-item--pressed) .pami-list-item__row,
|
|
803
|
+
:host(.pami-list-item--dragged) .pami-list-item__row {
|
|
804
|
+
transition:
|
|
805
|
+
border-start-start-radius var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),
|
|
806
|
+
border-start-end-radius var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),
|
|
807
|
+
border-end-start-radius var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),
|
|
808
|
+
border-end-end-radius var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
:host(.pami-list-item--interactive:focus-visible),
|
|
812
|
+
:host(.pami-list-item--interactive.pami-list-item--roving-focus-visible:not(:focus)),
|
|
813
|
+
:host(.pami-list-item--interactive:focus-visible) .pami-list-item__row,
|
|
814
|
+
:host(.pami-list-item--interactive.pami-list-item--roving-focus-visible:not(:focus)) .pami-list-item__row {
|
|
815
|
+
border-start-start-radius: max(var(--_container-shape-start-start), var(--_focus-container-shape));
|
|
816
|
+
border-start-end-radius: max(var(--_container-shape-start-end), var(--_focus-container-shape));
|
|
817
|
+
border-end-start-radius: max(var(--_container-shape-end-start), var(--_focus-container-shape));
|
|
818
|
+
border-end-end-radius: max(var(--_container-shape-end-end), var(--_focus-container-shape));
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
:host(.pami-list-item--selected),
|
|
822
|
+
:host(.pami-list-item--selected) .pami-list-item__row {
|
|
823
|
+
border-start-start-radius: max(var(--_container-shape-start-start), var(--_selected-container-shape));
|
|
824
|
+
border-start-end-radius: max(var(--_container-shape-start-end), var(--_selected-container-shape));
|
|
825
|
+
border-end-start-radius: max(var(--_container-shape-end-start), var(--_selected-container-shape));
|
|
826
|
+
border-end-end-radius: max(var(--_container-shape-end-end), var(--_selected-container-shape));
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
:host(.pami-list-item--interactive:active),
|
|
830
|
+
:host(.pami-list-item--pressed),
|
|
831
|
+
:host(.pami-list-item--dragged),
|
|
832
|
+
:host(.pami-list-item--interactive:active) .pami-list-item__row,
|
|
833
|
+
:host(.pami-list-item--pressed) .pami-list-item__row,
|
|
834
|
+
:host(.pami-list-item--dragged) .pami-list-item__row {
|
|
835
|
+
border-start-start-radius: max(var(--_container-shape-start-start), var(--_pressed-container-shape));
|
|
836
|
+
border-start-end-radius: max(var(--_container-shape-start-end), var(--_pressed-container-shape));
|
|
837
|
+
border-end-start-radius: max(var(--_container-shape-end-start), var(--_pressed-container-shape));
|
|
838
|
+
border-end-end-radius: max(var(--_container-shape-end-end), var(--_pressed-container-shape));
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
/* Dragged supersedes its own pressed default but inherits visually. */
|
|
842
|
+
:host(.pami-list-item--dragged),
|
|
843
|
+
:host(.pami-list-item--dragged) .pami-list-item__row {
|
|
844
|
+
border-start-start-radius: max(var(--_container-shape-start-start), var(--_dragged-container-shape));
|
|
845
|
+
border-start-end-radius: max(var(--_container-shape-start-end), var(--_dragged-container-shape));
|
|
846
|
+
border-end-start-radius: max(var(--_container-shape-end-start), var(--_dragged-container-shape));
|
|
847
|
+
border-end-end-radius: max(var(--_container-shape-end-end), var(--_dragged-container-shape));
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
/* ==========================================================
|
|
851
|
+
6. SELECTED STATE
|
|
852
|
+
When a row is selected we tint the container and remap the
|
|
853
|
+
text/icon colors onto the selection palette (tertiary-container /
|
|
854
|
+
on-tertiary-container in the Pami palette).
|
|
855
|
+
========================================================== */
|
|
856
|
+
:host(.pami-list-item--selected) {
|
|
857
|
+
--_container-color: var(--_selected-container-color);
|
|
858
|
+
--_label-text-color: var(--_selected-label-text-color);
|
|
859
|
+
--_supporting-text-color: var(--_selected-label-text-color);
|
|
860
|
+
--_overline-color: var(--_selected-label-text-color);
|
|
861
|
+
--_leading-icon-color: var(--_selected-label-text-color);
|
|
862
|
+
--_trailing-icon-color: var(--_selected-label-text-color);
|
|
863
|
+
--_trailing-supporting-text-color: var(--_selected-label-text-color);
|
|
864
|
+
--_state-layer-color: var(--_selected-label-text-color);
|
|
865
|
+
--_expand-chevron-color: var(--_selected-label-text-color);
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
/* ==========================================================
|
|
869
|
+
6b. SELECTION-MODE UNSELECTED TRAILING ICON
|
|
870
|
+
Per the M3 token spec a row in a `selection-mode` list that is NOT
|
|
871
|
+
selected swaps its trailing icon to on-surface (#1D1B20) so the
|
|
872
|
+
tap-to-select affordance (checkbox/radio glyph) reads at full
|
|
873
|
+
contrast. The leading icon stays on-surface-variant.
|
|
874
|
+
========================================================== */
|
|
875
|
+
:host(.pami-list-item--selection-mode:not(.pami-list-item--selected)) {
|
|
876
|
+
--_trailing-icon-color: var(--_unselected-trailing-icon-color);
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
/* ==========================================================
|
|
880
|
+
6c. SELECTED + ACTIVE-STATE ICON SHIFT
|
|
881
|
+
Per the M3 Lists spec, a selected row in an active interaction
|
|
882
|
+
(hover / focus / pressed / dragged) shifts its leading + trailing
|
|
883
|
+
icons from on-tertiary-container (#4A4458) up to on-surface
|
|
884
|
+
(#1D1B20) for the duration of the interaction so the affordance
|
|
885
|
+
reads slightly louder under the cursor. The selected resting label
|
|
886
|
+
colour stays on-tertiary-container.
|
|
887
|
+
========================================================== */
|
|
888
|
+
:host(.pami-list-item--selected.pami-list-item--interactive:hover),
|
|
889
|
+
:host(.pami-list-item--selected.pami-list-item--interactive:focus-visible),
|
|
890
|
+
:host(.pami-list-item--selected.pami-list-item--interactive.pami-list-item--roving-focus-visible:not(:focus)),
|
|
891
|
+
:host(.pami-list-item--selected.pami-list-item--interactive:active),
|
|
892
|
+
:host(.pami-list-item--selected.pami-list-item--pressed),
|
|
893
|
+
:host(.pami-list-item--selected.pami-list-item--dragged) {
|
|
894
|
+
--_leading-icon-color: var(--_selected-active-icon-color);
|
|
895
|
+
--_trailing-icon-color: var(--_selected-active-icon-color);
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
/* 6d. EXPANDABLE DISCLOSURE TRIGGERS — never list-selection targets.
|
|
899
|
+
Only flat child rows in `expanded-content` may carry selection tint.
|
|
900
|
+
Wins over §6 / §6c when a stale handler sets `selected` on the parent. */
|
|
901
|
+
:host(.pami-list-item--expandable),
|
|
902
|
+
:host(.pami-list-item--expandable[selected]),
|
|
903
|
+
:host(.pami-list-item--expandable.pami-list-item--selected),
|
|
904
|
+
:host(.pami-list-item--expandable.pami-list-item--selected.pami-list-item--interactive:hover),
|
|
905
|
+
:host(.pami-list-item--expandable.pami-list-item--selected.pami-list-item--interactive:focus-visible),
|
|
906
|
+
:host(.pami-list-item--expandable.pami-list-item--selected.pami-list-item--interactive:active),
|
|
907
|
+
:host(.pami-list-item--expandable.pami-list-item--selected.pami-list-item--pressed),
|
|
908
|
+
:host(.pami-list-item--expandable.pami-list-item--selected.pami-list-item--dragged) {
|
|
909
|
+
--_container-color: var(--pami-list-item-container-color, var(--md-sys-color-surface, #fef7ff));
|
|
910
|
+
--_label-text-color: var(--pami-list-item-label-text-color, var(--md-sys-color-on-surface, #1c1b1f));
|
|
911
|
+
--_supporting-text-color: var(--pami-list-item-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
912
|
+
--_overline-color: var(--pami-list-item-overline-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
913
|
+
--_leading-icon-color: var(--pami-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
914
|
+
--_trailing-icon-color: var(--pami-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
915
|
+
--_trailing-supporting-text-color: var(
|
|
916
|
+
--pami-list-item-trailing-supporting-text-color,
|
|
917
|
+
var(--md-sys-color-on-surface-variant, #49454f)
|
|
918
|
+
);
|
|
919
|
+
--_state-layer-color: var(--md-sys-color-on-surface, #1c1b1f);
|
|
920
|
+
--_expand-chevron-color: var(--pami-list-item-expand-chevron-color, var(--md-sys-color-on-surface-variant, #49454f));
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
:host(.pami-list-item--expandable.pami-list-item--selected),
|
|
924
|
+
:host(.pami-list-item--expandable.pami-list-item--selected) .pami-list-item__row {
|
|
925
|
+
border-start-start-radius: var(--_container-shape-start-start);
|
|
926
|
+
border-start-end-radius: var(--_container-shape-start-end);
|
|
927
|
+
border-end-start-radius: var(--_container-shape-end-start);
|
|
928
|
+
border-end-end-radius: var(--_container-shape-end-end);
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
/* ==========================================================
|
|
932
|
+
7. DISABLED STATE
|
|
933
|
+
========================================================== */
|
|
934
|
+
:host(.pami-list-item--disabled) {
|
|
935
|
+
cursor: default;
|
|
936
|
+
pointer-events: none;
|
|
937
|
+
--_label-text-color: color-mix(in srgb, var(--md-sys-color-on-surface, #1c1b1f) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent);
|
|
938
|
+
--_supporting-text-color: color-mix(in srgb, var(--md-sys-color-on-surface, #1c1b1f) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent);
|
|
939
|
+
--_overline-color: color-mix(in srgb, var(--md-sys-color-on-surface, #1c1b1f) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent);
|
|
940
|
+
--_leading-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);
|
|
941
|
+
--_trailing-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);
|
|
942
|
+
--_trailing-supporting-text-color: color-mix(in srgb, var(--md-sys-color-on-surface, #1c1b1f) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent);
|
|
943
|
+
--_expand-chevron-color: color-mix(in srgb, var(--md-sys-color-on-surface, #1c1b1f) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent);
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
:host(.pami-list-item--disabled) .pami-list-item__state-layer {
|
|
947
|
+
opacity: var(--_disabled-state-layer-opacity);
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
/* When a row is BOTH selected AND disabled, the M3 spec collapses the
|
|
951
|
+
tertiary-container fill to a faint on-surface @ 12% wash and lets the
|
|
952
|
+
disabled content opacity (0.38) carry the "frozen" cue. Authors can
|
|
953
|
+
override via --pami-list-item-selected-disabled-container-color. */
|
|
954
|
+
:host(.pami-list-item--selected.pami-list-item--disabled) {
|
|
955
|
+
--_container-color: var(--_selected-disabled-container-color);
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
/* Soft-disabled: same disabled visuals but remains focusable.
|
|
959
|
+
Overrides the hard-disabled pointer-events:none so keyboard users
|
|
960
|
+
can still discover the row and hear aria-disabled="true". */
|
|
961
|
+
:host([soft-disabled]) {
|
|
962
|
+
pointer-events: auto;
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
:host([soft-disabled]) .pami-list-item__row {
|
|
966
|
+
cursor: default;
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
:host([soft-disabled]) .pami-list-item__state-layer {
|
|
970
|
+
display: none;
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
/* ==========================================================
|
|
974
|
+
8. LEADING SLOT — icon (18px), avatar (40px), image (56px)
|
|
975
|
+
========================================================== */
|
|
976
|
+
.pami-list-item__leading {
|
|
977
|
+
display: flex;
|
|
978
|
+
align-items: center;
|
|
979
|
+
justify-content: center;
|
|
980
|
+
flex-shrink: 0;
|
|
981
|
+
min-inline-size: 24px;
|
|
982
|
+
color: var(--_leading-icon-color);
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
/* Hide empty wrappers for slots that ARE always rendered (so the
|
|
986
|
+
* slot elements stay queryable + slotchange listeners always wire).
|
|
987
|
+
* `.pami-list-item__trailing` is intentionally NOT in this list — the
|
|
988
|
+
* trailing wrapper is omitted from the DOM entirely when empty (see
|
|
989
|
+
* `renderTrailing` + `detectSlottedFromLightDom` in pami-list-item.tsx). */
|
|
990
|
+
.pami-list-item__leading--empty,
|
|
991
|
+
.pami-list-item__overline--empty,
|
|
992
|
+
.pami-list-item__supporting-text--empty,
|
|
993
|
+
.pami-list-item__trailing-text--empty {
|
|
994
|
+
display: none;
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
/* Lucide leading icon — per the M3 expansion list spec the parent
|
|
998
|
+
row's leading icon fills (FILL axis → 1) while expanded. Child rows in
|
|
999
|
+
`expanded-content` are separate hosts and keep their own resting icon. */
|
|
1000
|
+
.pami-list-item__icon {
|
|
1001
|
+
font-size: var(--_leading-icon-size);
|
|
1002
|
+
inline-size: var(--_leading-icon-size);
|
|
1003
|
+
block-size: var(--_leading-icon-size);
|
|
1004
|
+
line-height: 1;
|
|
1005
|
+
color: var(--_leading-icon-color);
|
|
1006
|
+
transition: font-variation-settings var(--md-sys-motion-duration-short3, 150ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
:host(.pami-list-item--expanded) .pami-list-item__icon {
|
|
1010
|
+
}
|
|
1011
|
+
|
|
1012
|
+
/* The leading avatar is now an internal `pami-avatar` component. We forward
|
|
1013
|
+
the list-item's avatar tokens (`--_leading-avatar-*`) to the avatar's
|
|
1014
|
+
public API via CSS custom-property inheritance so authors can keep
|
|
1015
|
+
theming the avatar through the list-item without knowing the avatar
|
|
1016
|
+
component exists. */
|
|
1017
|
+
pami-avatar.pami-list-item__avatar {
|
|
1018
|
+
--pami-avatar-size: var(--_leading-avatar-size);
|
|
1019
|
+
--pami-avatar-container-shape: var(--_leading-avatar-shape);
|
|
1020
|
+
/* When the list-item caller did NOT explicitly request name-derived
|
|
1021
|
+
palette colors, fall back to the legacy primary-container tone so
|
|
1022
|
+
existing pages keep their visuals. */
|
|
1023
|
+
--pami-avatar-container-color: var(--_leading-avatar-color);
|
|
1024
|
+
--pami-avatar-label-color: var(--_leading-avatar-label-color);
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
/* Image thumbnail — prop-based `leading-image` wraps the <img> so a
|
|
1028
|
+
selected-state scrim + checkmark circle can overlay the tile per M3. */
|
|
1029
|
+
.pami-list-item__image-wrap {
|
|
1030
|
+
position: relative;
|
|
1031
|
+
display: inline-flex;
|
|
1032
|
+
flex-shrink: 0;
|
|
1033
|
+
inline-size: var(--_leading-image-width);
|
|
1034
|
+
block-size: var(--_leading-image-height);
|
|
1035
|
+
border-radius: var(--_leading-image-shape);
|
|
1036
|
+
overflow: hidden;
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1039
|
+
.pami-list-item__image {
|
|
1040
|
+
inline-size: 100%;
|
|
1041
|
+
block-size: 100%;
|
|
1042
|
+
object-fit: cover;
|
|
1043
|
+
}
|
|
1044
|
+
|
|
1045
|
+
/* Selected thumbnail overlay — scrim fades in; circle scales in with M3
|
|
1046
|
+
emphasized-decelerate (mirrors pami-step check-in). Always `display:flex`
|
|
1047
|
+
so opacity/scale can animate; visibility is driven by opacity, not
|
|
1048
|
+
display:none toggling. */
|
|
1049
|
+
.pami-list-item__image-selection-indicator {
|
|
1050
|
+
position: absolute;
|
|
1051
|
+
inset: 0;
|
|
1052
|
+
display: flex;
|
|
1053
|
+
align-items: center;
|
|
1054
|
+
justify-content: center;
|
|
1055
|
+
background-color: var(--_leading-image-selection-scrim-color);
|
|
1056
|
+
pointer-events: none;
|
|
1057
|
+
opacity: 0;
|
|
1058
|
+
transition: opacity var(--md-sys-motion-duration-short3, 150ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
:host(.pami-list-item--selected) .pami-list-item__image-selection-indicator {
|
|
1062
|
+
opacity: 1;
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
.pami-list-item__image-selection-circle {
|
|
1066
|
+
display: inline-flex;
|
|
1067
|
+
align-items: center;
|
|
1068
|
+
justify-content: center;
|
|
1069
|
+
flex-shrink: 0;
|
|
1070
|
+
inline-size: var(--_leading-image-selection-icon-size);
|
|
1071
|
+
block-size: var(--_leading-image-selection-icon-size);
|
|
1072
|
+
border-radius: var(--md-sys-shape-corner-full, 9999px);
|
|
1073
|
+
background-color: var(--_leading-image-selection-circle-color);
|
|
1074
|
+
transform: scale(0);
|
|
1075
|
+
opacity: 0;
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
:host(.pami-list-item--selected) .pami-list-item__image-selection-circle {
|
|
1079
|
+
animation: pami-list-item-image-selection-in var(--md-sys-motion-duration-medium2, 250ms)
|
|
1080
|
+
var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)) both;
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
@keyframes pami-list-item-image-selection-in {
|
|
1084
|
+
0% {
|
|
1085
|
+
transform: scale(0);
|
|
1086
|
+
opacity: 0;
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
60% {
|
|
1090
|
+
transform: scale(1.08);
|
|
1091
|
+
opacity: 1;
|
|
1092
|
+
}
|
|
1093
|
+
|
|
1094
|
+
100% {
|
|
1095
|
+
transform: scale(1);
|
|
1096
|
+
opacity: 1;
|
|
1097
|
+
}
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
/* Outscore the generic `pami-icon { display: inline-block }`
|
|
1101
|
+
rule in Section 11 so the glyph centers inside the 24px circle. */
|
|
1102
|
+
.pami-list-item__image-selection-checkpami-icon {
|
|
1103
|
+
display: inline-flex;
|
|
1104
|
+
align-items: center;
|
|
1105
|
+
justify-content: center;
|
|
1106
|
+
inline-size: calc(var(--_leading-image-selection-icon-size) * 0.667);
|
|
1107
|
+
block-size: calc(var(--_leading-image-selection-icon-size) * 0.667);
|
|
1108
|
+
font-size: calc(var(--_leading-image-selection-icon-size) * 0.667);
|
|
1109
|
+
line-height: 1;
|
|
1110
|
+
color: var(--_leading-image-selection-icon-color);
|
|
1111
|
+
font-weight: normal;
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
/* Slotted leading content inherits color */
|
|
1115
|
+
::slotted([slot="leading"]) {
|
|
1116
|
+
display: inline-flex;
|
|
1117
|
+
align-items: center;
|
|
1118
|
+
justify-content: center;
|
|
1119
|
+
color: var(--_leading-icon-color);
|
|
1120
|
+
fill: currentColor;
|
|
1121
|
+
}
|
|
1122
|
+
|
|
1123
|
+
/* Direct <video slot="leading"> thumbnail — sized per the M3 leading
|
|
1124
|
+
video tokens (100×56 dp default). For a custom-sized video, override
|
|
1125
|
+
--pami-list-item-leading-video-{width,height,shape} on the host or
|
|
1126
|
+
set width/height inline on the video element. */
|
|
1127
|
+
::slotted(video[slot="leading"]) {
|
|
1128
|
+
inline-size: var(--_leading-video-width);
|
|
1129
|
+
block-size: var(--_leading-video-height);
|
|
1130
|
+
border-radius: var(--_leading-video-shape);
|
|
1131
|
+
object-fit: cover;
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
/* ==========================================================
|
|
1135
|
+
9. CONTENT (CENTER) — overline, headline, supporting
|
|
1136
|
+
========================================================== */
|
|
1137
|
+
.pami-list-item__content {
|
|
1138
|
+
flex: 1;
|
|
1139
|
+
display: flex;
|
|
1140
|
+
flex-direction: column;
|
|
1141
|
+
min-inline-size: 0;
|
|
1142
|
+
overflow: hidden;
|
|
1143
|
+
gap: 0;
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1146
|
+
/* Overline */
|
|
1147
|
+
.pami-list-item__overline {
|
|
1148
|
+
font-family: var(--md-sys-typescale-label-small-font-family, Roboto, sans-serif);
|
|
1149
|
+
font-size: var(--md-sys-typescale-label-small-font-size, 11px);
|
|
1150
|
+
font-weight: var(--md-sys-typescale-label-small-font-weight, 500);
|
|
1151
|
+
line-height: var(--md-sys-typescale-label-small-line-height, 16px);
|
|
1152
|
+
letter-spacing: var(--md-sys-typescale-label-small-letter-spacing, 0.5px);
|
|
1153
|
+
color: var(--_overline-color);
|
|
1154
|
+
contain: inline-size;
|
|
1155
|
+
min-inline-size: 0;
|
|
1156
|
+
text-overflow: ellipsis;
|
|
1157
|
+
overflow: hidden;
|
|
1158
|
+
white-space: nowrap;
|
|
1159
|
+
text-transform: uppercase;
|
|
1160
|
+
transition: none;
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
/* Headline.
|
|
1164
|
+
`display: block` makes the span clip with `text-overflow: ellipsis` even
|
|
1165
|
+
though it is now nested inside the layout-transparent pami-tooltip wrapper
|
|
1166
|
+
(when unwrapped it was blockified as a flex child; inside the wrapper it
|
|
1167
|
+
needs an explicit block box). The wrapper stretches to the content-column
|
|
1168
|
+
width and constrains this span — see section 9b. */
|
|
1169
|
+
.pami-list-item__headline {
|
|
1170
|
+
font-family: var(--_label-text-font);
|
|
1171
|
+
font-size: max(13px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px));
|
|
1172
|
+
font-weight: var(--md-sys-typescale-body-large-font-weight, 400);
|
|
1173
|
+
line-height: max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));
|
|
1174
|
+
letter-spacing: var(--md-sys-typescale-body-large-letter-spacing, 0.5px);
|
|
1175
|
+
color: var(--_label-text-color);
|
|
1176
|
+
display: block;
|
|
1177
|
+
contain: inline-size;
|
|
1178
|
+
min-inline-size: 0;
|
|
1179
|
+
max-inline-size: 100%;
|
|
1180
|
+
text-overflow: ellipsis;
|
|
1181
|
+
overflow: hidden;
|
|
1182
|
+
white-space: nowrap;
|
|
1183
|
+
transition: none;
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
/* Supporting */
|
|
1187
|
+
.pami-list-item__supporting-text {
|
|
1188
|
+
font-family: var(--_supporting-text-font);
|
|
1189
|
+
font-size: max(11px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));
|
|
1190
|
+
font-weight: var(--md-sys-typescale-body-medium-font-weight, 400);
|
|
1191
|
+
line-height: max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));
|
|
1192
|
+
letter-spacing: var(--md-sys-typescale-body-medium-letter-spacing, 0.25px);
|
|
1193
|
+
color: var(--_supporting-text-color);
|
|
1194
|
+
display: block;
|
|
1195
|
+
contain: inline-size;
|
|
1196
|
+
min-inline-size: 0;
|
|
1197
|
+
max-inline-size: 100%;
|
|
1198
|
+
text-overflow: ellipsis;
|
|
1199
|
+
overflow: hidden;
|
|
1200
|
+
white-space: nowrap;
|
|
1201
|
+
transition: none;
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
/* 3-line: supporting text wraps up to 2 lines */
|
|
1205
|
+
:host(.pami-list-item--3-line) .pami-list-item__supporting-text {
|
|
1206
|
+
display: -webkit-box;
|
|
1207
|
+
-webkit-line-clamp: 2;
|
|
1208
|
+
-webkit-box-orient: vertical;
|
|
1209
|
+
white-space: normal;
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
/* ==========================================================
|
|
1213
|
+
9b. TEXT TOOLTIP WRAPPERS
|
|
1214
|
+
The headline + supporting-text spans are ALWAYS wrapped in a stable
|
|
1215
|
+
pami-tooltip (rendered unconditionally — never mounted/unmounted on
|
|
1216
|
+
resize, so there is no DOM-swap flicker). The full text is shown on
|
|
1217
|
+
hover ONLY while the span is actually clipped; the tooltip's
|
|
1218
|
+
`disabled` prop is toggled imperatively from a single debounced
|
|
1219
|
+
ResizeObserver (see applyTooltipToggle in pami-list-item.tsx) so there
|
|
1220
|
+
is no Stencil re-render on resize either.
|
|
1221
|
+
|
|
1222
|
+
The wrapper must be layout-transparent so the inner span's ellipsis
|
|
1223
|
+
math is byte-for-byte what it was unwrapped. We give the tooltip host
|
|
1224
|
+
`display:block; min-inline-size:0; overflow:hidden`: as a column-flex
|
|
1225
|
+
child of `.pami-list-item__content` it stretches to the content-column
|
|
1226
|
+
width (align-items:stretch) and then constrains the inner block span,
|
|
1227
|
+
which keeps `text-overflow: ellipsis` working exactly as before. The
|
|
1228
|
+
`pami-tooltip` + class selector outscores pami-tooltip's own
|
|
1229
|
+
`:host { display: inline-block }` so the block override is
|
|
1230
|
+
deterministic across the shadow boundary. The popup itself is
|
|
1231
|
+
position:fixed and escapes the wrapper's overflow:hidden.
|
|
1232
|
+
========================================================== */
|
|
1233
|
+
pami-tooltip.pami-list-item__headline-tooltip,
|
|
1234
|
+
pami-tooltip.pami-list-item__supporting-tooltip {
|
|
1235
|
+
display: block;
|
|
1236
|
+
min-inline-size: 0;
|
|
1237
|
+
max-inline-size: 100%;
|
|
1238
|
+
overflow: hidden;
|
|
1239
|
+
/* A touch wider than the 280px plain-tooltip default so long row text
|
|
1240
|
+
is more fully revealed when the tooltip does show. */
|
|
1241
|
+
--pami-tooltip-plain-max-inline-size: 320px;
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
/* Empty supporting text → collapse the whole wrapper, mirroring the
|
|
1245
|
+
legacy `--empty` span behavior (nothing to measure or reveal). */
|
|
1246
|
+
pami-tooltip.pami-list-item__supporting-tooltip--empty {
|
|
1247
|
+
display: none;
|
|
1248
|
+
}
|
|
1249
|
+
|
|
1250
|
+
/* ==========================================================
|
|
1251
|
+
10. TRAILING SLOT
|
|
1252
|
+
========================================================== */
|
|
1253
|
+
.pami-list-item__trailing {
|
|
1254
|
+
display: flex;
|
|
1255
|
+
align-items: center;
|
|
1256
|
+
gap: 4px;
|
|
1257
|
+
flex-shrink: 0;
|
|
1258
|
+
color: var(--_trailing-icon-color);
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
/* Trailing supporting text */
|
|
1262
|
+
.pami-list-item__trailing-text {
|
|
1263
|
+
font-family: var(--_trailing-supporting-text-font);
|
|
1264
|
+
font-size: var(--md-sys-typescale-label-small-font-size, 11px);
|
|
1265
|
+
font-weight: var(--md-sys-typescale-label-small-font-weight, 500);
|
|
1266
|
+
line-height: var(--md-sys-typescale-label-small-line-height, 16px);
|
|
1267
|
+
color: var(--_trailing-supporting-text-color);
|
|
1268
|
+
white-space: nowrap;
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1271
|
+
/* Trailing icon */
|
|
1272
|
+
.pami-list-item__trailing-icon {
|
|
1273
|
+
display: inline-flex;
|
|
1274
|
+
align-items: center;
|
|
1275
|
+
justify-content: center;
|
|
1276
|
+
font-size: var(--_trailing-icon-size);
|
|
1277
|
+
inline-size: var(--_trailing-icon-size);
|
|
1278
|
+
block-size: var(--_trailing-icon-size);
|
|
1279
|
+
line-height: 1;
|
|
1280
|
+
color: var(--_trailing-icon-color);
|
|
1281
|
+
}
|
|
1282
|
+
|
|
1283
|
+
/* Slotted trailing content — secondary actions keep their own hit targets
|
|
1284
|
+
in multi-action lists (icon buttons, switches, etc.).
|
|
1285
|
+
pami-badge is excluded: it owns container/label colors via --pami-badge-* tokens
|
|
1286
|
+
and must not inherit the row's trailing-icon color (on-surface-variant). */
|
|
1287
|
+
::slotted([slot="trailing"]:not(pami-badge)) {
|
|
1288
|
+
display: inline-flex;
|
|
1289
|
+
align-items: center;
|
|
1290
|
+
justify-content: center;
|
|
1291
|
+
color: var(--_trailing-icon-color);
|
|
1292
|
+
fill: currentColor;
|
|
1293
|
+
pointer-events: auto;
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1296
|
+
/* pami-badge is authored as an overlay (position:absolute on the host) for
|
|
1297
|
+
icon-button anchors. When slotted directly as trailing list content it
|
|
1298
|
+
must participate in the row flex flow so it vertically centres with the
|
|
1299
|
+
headline instead of painting against the row bottom / divider edge.
|
|
1300
|
+
Color is intentionally omitted — badge owns label/container tokens. */
|
|
1301
|
+
::slotted(pami-badge[slot="trailing"]) {
|
|
1302
|
+
display: inline-flex;
|
|
1303
|
+
align-items: center;
|
|
1304
|
+
justify-content: center;
|
|
1305
|
+
pointer-events: auto;
|
|
1306
|
+
position: static;
|
|
1307
|
+
inset-block-start: auto;
|
|
1308
|
+
inset-inline-end: auto;
|
|
1309
|
+
transform: none;
|
|
1310
|
+
flex-shrink: 0;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
/* 3-line rows stack trailing content in a column — centre standalone badges
|
|
1314
|
+
the same way trailing icons get margin-block:auto. */
|
|
1315
|
+
:host(.pami-list-item--3-line) ::slotted(pami-badge[slot="trailing"]) {
|
|
1316
|
+
margin-block: auto;
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1319
|
+
/* ==========================================================
|
|
1320
|
+
10a2. DRAG HANDLE (reorderable rows)
|
|
1321
|
+
Rendered as the LAST trailing affordance when the parent
|
|
1322
|
+
pami-list is `reorderable`. Grabbing it starts a pointer drag
|
|
1323
|
+
that the parent list turns into a reorder. `touch-action:none`
|
|
1324
|
+
lets the drag work on touch without the page scrolling, and
|
|
1325
|
+
`pointer-events:auto` keeps the handle grabbable even inside a
|
|
1326
|
+
row whose body is the primary click target.
|
|
1327
|
+
|
|
1328
|
+
The selector intentionally doubles up the `pami-icon`
|
|
1329
|
+
class (which the handle also carries for its glyph font) so this rule
|
|
1330
|
+
outscores the generic `pami-icon { pointer-events: none }`
|
|
1331
|
+
in Section 11. With equal single-class specificity that later rule would
|
|
1332
|
+
otherwise win on source order and make the handle non-hittable — the
|
|
1333
|
+
pointer would fall through to the row, `pointerdown`'s composedPath would
|
|
1334
|
+
never include the handle, and the drag would never start. */
|
|
1335
|
+
.pami-list-item__drag-handlepami-icon {
|
|
1336
|
+
/* Visual parity with pami-accordion-item's drag handle: a 24px box holding a
|
|
1337
|
+
22px `drag_indicator` glyph that rests at on-surface-variant / 0.55 opacity
|
|
1338
|
+
and lifts to full opacity + a subtle scale on hover. */
|
|
1339
|
+
display: inline-flex;
|
|
1340
|
+
align-items: center;
|
|
1341
|
+
justify-content: center;
|
|
1342
|
+
inline-size: 24px;
|
|
1343
|
+
block-size: 24px;
|
|
1344
|
+
flex-shrink: 0;
|
|
1345
|
+
font-size: 22px;
|
|
1346
|
+
line-height: 1;
|
|
1347
|
+
color: var(--_trailing-icon-color);
|
|
1348
|
+
opacity: 0.55;
|
|
1349
|
+
cursor: grab;
|
|
1350
|
+
touch-action: none;
|
|
1351
|
+
pointer-events: auto;
|
|
1352
|
+
transition:
|
|
1353
|
+
opacity var(--md-sys-motion-duration-short3, 150ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),
|
|
1354
|
+
transform var(--md-sys-motion-duration-short3, 150ms) var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)),
|
|
1355
|
+
color var(--md-sys-motion-duration-short3, 150ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
|
|
1356
|
+
}
|
|
1357
|
+
|
|
1358
|
+
.pami-list-item__drag-handlepami-icon:hover {
|
|
1359
|
+
opacity: 1;
|
|
1360
|
+
color: var(--md-sys-color-on-surface, #1c1b1f);
|
|
1361
|
+
transform: scale(1.08);
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
.pami-list-item__drag-handlepami-icon:active {
|
|
1365
|
+
cursor: grabbing;
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
:host(.pami-list-item--dragged) .pami-list-item__drag-handle {
|
|
1369
|
+
opacity: 1;
|
|
1370
|
+
color: var(--md-sys-color-on-surface, #1c1b1f);
|
|
1371
|
+
cursor: grabbing;
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
/* Siblings of the dragged row glide into their new slot. The dragged row
|
|
1375
|
+
itself is NOT given this class, so its pointer-follow transform stays
|
|
1376
|
+
instant (no lag). */
|
|
1377
|
+
:host(.pami-list-item--shifting) {
|
|
1378
|
+
transition: transform var(--md-sys-motion-duration-short4, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
|
|
1379
|
+
will-change: transform;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
/* ==========================================================
|
|
1383
|
+
10b. EXPAND CARET (pami-icon-button)
|
|
1384
|
+
The disclosure control is now an pami-icon-button rendered as
|
|
1385
|
+
the LAST child of the trailing slot when the row is
|
|
1386
|
+
`expandable`. It carries aria-expanded / aria-controls, gets
|
|
1387
|
+
the icon-button's pill/squircle shape morph when selected
|
|
1388
|
+
(expanded), and its `expand_more` glyph rotates 180° (points
|
|
1389
|
+
up) when expanded — animated through the ::part(icon) it
|
|
1390
|
+
forwards.
|
|
1391
|
+
========================================================== */
|
|
1392
|
+
.pami-list-item__expand-button {
|
|
1393
|
+
flex-shrink: 0;
|
|
1394
|
+
/* xs (32px) fits the 56px row chassis — sm (40px) + 8/10 padding overshoots
|
|
1395
|
+
min-block-size and makes the trigger look taller than child rows. */
|
|
1396
|
+
--pami-icon-button-container-width: var(--pami-list-item-expand-button-size, 32px);
|
|
1397
|
+
--pami-icon-button-container-height: var(--pami-list-item-expand-button-size, 32px);
|
|
1398
|
+
--pami-icon-button-icon-size: var(--pami-list-item-expand-chevron-size, 24px);
|
|
1399
|
+
--pami-icon-button-icon-color: var(--_expand-chevron-color);
|
|
1400
|
+
--pami-icon-button-state-layer-color: var(--_expand-chevron-color);
|
|
1401
|
+
margin-inline-end: -4px;
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1404
|
+
/* Expanded: MD3 expansion-list active pill — narrow vertical squircle, primary
|
|
1405
|
+
container fill, on-primary chevron (points up via rotation). */
|
|
1406
|
+
.pami-list-item__expand-button--expanded {
|
|
1407
|
+
--pami-icon-button-container-color: var(--md-sys-color-primary, #6750a4);
|
|
1408
|
+
--pami-icon-button-icon-color: var(--md-sys-color-on-primary, #ffffff);
|
|
1409
|
+
--pami-icon-button-state-layer-color: var(--md-sys-color-on-primary, #ffffff);
|
|
1410
|
+
--pami-icon-button-outline-color: transparent;
|
|
1411
|
+
}
|
|
1412
|
+
|
|
1413
|
+
/* Rotate the caret glyph. We reach into the icon-button's forwarded
|
|
1414
|
+
`icon` part — ::part pierces exactly one shadow level, which is the
|
|
1415
|
+
pami-icon-button living in this row's shadow tree. */
|
|
1416
|
+
.pami-list-item__expand-button::part(icon) {
|
|
1417
|
+
transition: transform var(--md-sys-motion-duration-medium2, 250ms) var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));
|
|
1418
|
+
transform-origin: center;
|
|
1419
|
+
}
|
|
1420
|
+
|
|
1421
|
+
.pami-list-item__expand-button--expanded::part(icon) {
|
|
1422
|
+
transform: rotate(180deg);
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
/* ==========================================================
|
|
1426
|
+
10c. EXPANDED PANEL — MD3 expressive open / retract
|
|
1427
|
+
Single-level reveal: the panel animates height via the modern
|
|
1428
|
+
`grid-template-rows: 0fr ↔ 1fr` trick PLUS an opacity fade and
|
|
1429
|
+
a small inner translateY so the content "arches" down into
|
|
1430
|
+
place on open and retracts on close. Open uses
|
|
1431
|
+
emphasized-decelerate (settle), close uses emphasized-accelerate
|
|
1432
|
+
(clear out) — asymmetric M3 Expressive motion. The inner
|
|
1433
|
+
wrapper carries the padding so the grid can collapse cleanly.
|
|
1434
|
+
========================================================== */
|
|
1435
|
+
.pami-list-item__expanded-panel {
|
|
1436
|
+
display: grid;
|
|
1437
|
+
grid-template-rows: 0fr;
|
|
1438
|
+
opacity: 0;
|
|
1439
|
+
background-color: var(--_expanded-panel-background);
|
|
1440
|
+
transition:
|
|
1441
|
+
grid-template-rows var(--_collapse-duration) var(--_collapse-easing),
|
|
1442
|
+
opacity var(--_collapse-duration) var(--_collapse-easing);
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1445
|
+
:host(.pami-list-item--expanded) .pami-list-item__expanded-panel {
|
|
1446
|
+
grid-template-rows: 1fr;
|
|
1447
|
+
opacity: 1;
|
|
1448
|
+
transition:
|
|
1449
|
+
grid-template-rows var(--_expand-duration) var(--_expand-easing),
|
|
1450
|
+
opacity var(--_expand-duration) var(--_expand-easing);
|
|
1451
|
+
}
|
|
1452
|
+
|
|
1453
|
+
.pami-list-item__expanded-panel-inner {
|
|
1454
|
+
min-block-size: 0;
|
|
1455
|
+
overflow: hidden;
|
|
1456
|
+
/* Child motion coordinated with the parent height/opacity — the content
|
|
1457
|
+
starts lifted and arcs down into its resting position on open. */
|
|
1458
|
+
transform: translateY(-8px);
|
|
1459
|
+
transition: transform var(--_collapse-duration) var(--_collapse-easing);
|
|
1460
|
+
padding-block: var(--_expanded-panel-padding-block);
|
|
1461
|
+
padding-inline-start: var(--_expanded-panel-padding-inline-start);
|
|
1462
|
+
padding-inline-end: var(--_expanded-panel-padding-inline);
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1465
|
+
:host(.pami-list-item--expanded) .pami-list-item__expanded-panel-inner {
|
|
1466
|
+
transform: translateY(0);
|
|
1467
|
+
transition: transform var(--_expand-duration) var(--_expand-easing);
|
|
1468
|
+
}
|
|
1469
|
+
|
|
1470
|
+
/* Flat expansion list — child rows are full-width sibling list items, not a
|
|
1471
|
+
nested sub-box. Sharp corners on every child; the last child inherits the
|
|
1472
|
+
expandable group's bottom rounding when this row is the list's last item. */
|
|
1473
|
+
:host(.pami-list-item--expandable) ::slotted(pami-list-item[slot="expanded-content"]) {
|
|
1474
|
+
--pami-list-item-container-shape: 0px;
|
|
1475
|
+
--pami-list-item-container-shape-start-start: 0px;
|
|
1476
|
+
--pami-list-item-container-shape-start-end: 0px;
|
|
1477
|
+
--pami-list-item-container-shape-end-start: 0px;
|
|
1478
|
+
--pami-list-item-container-shape-end-end: 0px;
|
|
1479
|
+
display: block;
|
|
1480
|
+
inline-size: 100%;
|
|
1481
|
+
box-sizing: border-box;
|
|
1482
|
+
}
|
|
1483
|
+
|
|
1484
|
+
:host-context(.pami-list--standard):host(:last-of-type.pami-list-item--expanded) ::slotted(pami-list-item[slot="expanded-content"]:last-of-type),
|
|
1485
|
+
:host-context(.pami-list--segmented):host(:last-of-type.pami-list-item--expanded) ::slotted(pami-list-item[slot="expanded-content"]:last-of-type) {
|
|
1486
|
+
--pami-list-item-container-shape-end-start: var(--md-sys-shape-corner-large, 16px);
|
|
1487
|
+
--pami-list-item-container-shape-end-end: var(--md-sys-shape-corner-large, 16px);
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
/* Dividers between child rows slot inline with the connected chassis. */
|
|
1491
|
+
::slotted(pami-divider[slot="expanded-content"]) {
|
|
1492
|
+
display: block;
|
|
1493
|
+
}
|
|
1494
|
+
|
|
1495
|
+
::slotted([slot="expanded-content"]) {
|
|
1496
|
+
display: block;
|
|
1497
|
+
}
|
|
1498
|
+
|
|
1499
|
+
/* When the panel is hidden via [hidden], grid still animates from 0fr
|
|
1500
|
+
so don't collapse the box ourselves. */
|
|
1501
|
+
.pami-list-item__expanded-panel[hidden] {
|
|
1502
|
+
display: grid;
|
|
1503
|
+
}
|
|
1504
|
+
|
|
1505
|
+
/* Reduced motion: snap, don't animate */
|
|
1506
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1507
|
+
:host {
|
|
1508
|
+
transition-property: box-shadow;
|
|
1509
|
+
}
|
|
1510
|
+
|
|
1511
|
+
.pami-list-item__row,
|
|
1512
|
+
.pami-list-item__expanded-panel,
|
|
1513
|
+
.pami-list-item__expanded-panel-inner,
|
|
1514
|
+
.pami-list-item__drag-handle {
|
|
1515
|
+
transition: none;
|
|
1516
|
+
}
|
|
1517
|
+
|
|
1518
|
+
.pami-list-item__drag-handlepami-icon:hover {
|
|
1519
|
+
transform: none;
|
|
1520
|
+
}
|
|
1521
|
+
|
|
1522
|
+
.pami-list-item__expand-button::part(icon) {
|
|
1523
|
+
transition: none;
|
|
1524
|
+
}
|
|
1525
|
+
|
|
1526
|
+
.pami-list-item__image-selection-indicator {
|
|
1527
|
+
transition: none;
|
|
1528
|
+
}
|
|
1529
|
+
|
|
1530
|
+
:host(.pami-list-item--selected) .pami-list-item__image-selection-circle {
|
|
1531
|
+
animation: none;
|
|
1532
|
+
transform: scale(1);
|
|
1533
|
+
opacity: 1;
|
|
1534
|
+
}
|
|
1535
|
+
}
|
|
1536
|
+
|
|
1537
|
+
/* ==========================================================
|
|
1538
|
+
11. ICON (icon font inside shadow DOM)
|
|
1539
|
+
========================================================== */
|
|
1540
|
+
pami-icon {
|
|
1541
|
+
font-weight: normal;
|
|
1542
|
+
font-style: normal;
|
|
1543
|
+
line-height: 1;
|
|
1544
|
+
letter-spacing: normal;
|
|
1545
|
+
text-transform: none;
|
|
1546
|
+
display: inline-block;
|
|
1547
|
+
white-space: nowrap;
|
|
1548
|
+
overflow-wrap: normal;
|
|
1549
|
+
direction: ltr;
|
|
1550
|
+
-webkit-font-smoothing: antialiased;
|
|
1551
|
+
pointer-events: none;
|
|
1552
|
+
}
|
|
1553
|
+
|
|
1554
|
+
/* ==========================================================
|
|
1555
|
+
12. RTL — directional icon mirroring hook
|
|
1556
|
+
Trailing icons that imply direction (chevrons, arrows) can
|
|
1557
|
+
be mirrored at the application level via a class. We do not
|
|
1558
|
+
mirror by default since most trailing icons are non-directional.
|
|
1559
|
+
========================================================== */
|
|
1560
|
+
:host([dir="rtl"]) .pami-list-item__trailing-icon[data-rtl-mirror],
|
|
1561
|
+
:host-context([dir="rtl"]) .pami-list-item__trailing-icon[data-rtl-mirror] {
|
|
1562
|
+
transform: scaleX(-1);
|
|
1563
|
+
}
|
|
1564
|
+
|
|
1565
|
+
/* ==========================================================
|
|
1566
|
+
14. IMAGE / AVATAR padding adjustments
|
|
1567
|
+
When a row uses an image thumbnail, the leading slot fills
|
|
1568
|
+
the full 16+56+16 column so the start padding of the host
|
|
1569
|
+
moves onto the image itself.
|
|
1570
|
+
========================================================== */
|
|
1571
|
+
:host(.pami-list-item--with-image) .pami-list-item__row {
|
|
1572
|
+
padding-inline-start: 16px;
|
|
1573
|
+
}
|
|
1574
|
+
|
|
1575
|
+
/* ==========================================================
|
|
1576
|
+
DENSITY (local override)
|
|
1577
|
+
Maps the local `density` prop onto the same --md-sys-density-scale signal a
|
|
1578
|
+
global `data-density` ancestor sets. Declared on :host, so a local rung wins
|
|
1579
|
+
over the inherited global one. Every density-sensitive value in this file
|
|
1580
|
+
derives from that single signal by calc — never add a fixed per-rung ladder.
|
|
1581
|
+
========================================================== */
|
|
1582
|
+
:host([density='-1']) { --md-sys-density-scale: -1; }
|
|
1583
|
+
:host([density='-2']) { --md-sys-density-scale: -2; }
|
|
1584
|
+
:host([density='-3']) { --md-sys-density-scale: -3; }
|
|
1585
|
+
:host([density='-4']) { --md-sys-density-scale: -4; }
|
|
1586
|
+
|
|
1587
|
+
/* ==========================================================
|
|
1588
|
+
HIDDEN
|
|
1589
|
+
`[hidden]` is a UA-stylesheet rule, and every `:host` display
|
|
1590
|
+
declaration above is an AUTHOR rule — author origin beats UA, so without
|
|
1591
|
+
this guard `el.hidden = true` left the component fully laid out.
|
|
1592
|
+
`!important` because state rules in this file set `display` at equal or
|
|
1593
|
+
higher specificity than `:host([hidden])`.
|
|
1594
|
+
========================================================== */
|
|
1595
|
+
:host([hidden]) {
|
|
1596
|
+
display: none !important;
|
|
1597
|
+
}
|