@material/web 2.4.2-nightly.fd6fe2a.0 → 2.5.1-nightly.12ec888.0
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/custom-elements.json +7000 -6991
- package/labs/aria/query-associated.d.ts +23 -0
- package/labs/aria/query-associated.js +36 -0
- package/labs/aria/query-associated.js.map +1 -0
- package/labs/aria/tabs/md-aria-tab.d.ts +11 -0
- package/labs/aria/tabs/md-aria-tab.js +8 -0
- package/labs/aria/tabs/md-aria-tab.js.map +1 -0
- package/labs/aria/tabs/md-aria-tablist.d.ts +11 -0
- package/labs/aria/tabs/md-aria-tablist.js +8 -0
- package/labs/aria/tabs/md-aria-tablist.js.map +1 -0
- package/labs/aria/tabs/md-aria-tabpanel.d.ts +11 -0
- package/labs/aria/tabs/md-aria-tabpanel.js +8 -0
- package/labs/aria/tabs/md-aria-tabpanel.js.map +1 -0
- package/labs/aria/tabs/tab.d.ts +33 -0
- package/labs/aria/tabs/tab.js +88 -0
- package/labs/aria/tabs/tab.js.map +1 -0
- package/labs/aria/tabs/tablist.d.ts +67 -0
- package/labs/aria/tabs/tablist.js +271 -0
- package/labs/aria/tabs/tablist.js.map +1 -0
- package/labs/aria/tabs/tabpanel.d.ts +26 -0
- package/labs/aria/tabs/tabpanel.js +53 -0
- package/labs/aria/tabs/tabpanel.js.map +1 -0
- package/labs/gb/components/appbar/_app-bar-tokens.scss +136 -0
- package/labs/gb/components/appbar/app-bar-element.d.ts +53 -0
- package/labs/gb/components/appbar/app-bar-element.js +144 -0
- package/labs/gb/components/appbar/app-bar-element.js.map +1 -0
- package/labs/gb/components/appbar/app-bar.css +4 -0
- package/labs/gb/components/appbar/app-bar.css.map +1 -0
- package/labs/gb/components/appbar/app-bar.cssresult.d.ts +3 -0
- package/labs/gb/components/appbar/app-bar.cssresult.js +14 -0
- package/labs/gb/components/appbar/app-bar.cssresult.js.map +1 -0
- package/labs/gb/components/appbar/app-bar.d.ts +71 -0
- package/labs/gb/components/appbar/app-bar.js +96 -0
- package/labs/gb/components/appbar/app-bar.js.map +1 -0
- package/labs/gb/components/appbar/app-bar.scss +167 -0
- package/labs/gb/components/appbar/md-gb-app-bar.d.ts +12 -0
- package/labs/gb/components/appbar/md-gb-app-bar.js +8 -0
- package/labs/gb/components/appbar/md-gb-app-bar.js.map +1 -0
- package/labs/gb/components/badge/_badge-tokens.scss +18 -0
- package/labs/gb/components/badge/badge-element.d.ts +15 -0
- package/labs/gb/components/badge/badge-element.js +49 -0
- package/labs/gb/components/badge/badge-element.js.map +1 -0
- package/labs/gb/components/badge/badge.css +4 -0
- package/labs/gb/components/badge/badge.css.map +1 -0
- package/labs/gb/components/badge/badge.cssresult.d.ts +3 -0
- package/labs/gb/components/badge/badge.cssresult.js +14 -0
- package/labs/gb/components/badge/badge.cssresult.js.map +1 -0
- package/labs/gb/components/badge/badge.d.ts +32 -0
- package/labs/gb/components/badge/badge.js +35 -0
- package/labs/gb/components/badge/badge.js.map +1 -0
- package/labs/gb/components/badge/badge.scss +49 -0
- package/labs/gb/components/badge/md-gb-badge.d.ts +12 -0
- package/labs/gb/components/badge/md-gb-badge.js +8 -0
- package/labs/gb/components/badge/md-gb-badge.js.map +1 -0
- package/labs/gb/components/button/_button-tokens.scss +6 -0
- package/labs/gb/components/button/{md-button.d.ts → button-element.d.ts} +23 -7
- package/labs/gb/components/button/{md-button.js → button-element.js} +39 -20
- package/labs/gb/components/button/button-element.js.map +1 -0
- package/labs/gb/components/button/button.css +1 -1
- package/labs/gb/components/button/button.css.map +1 -1
- package/labs/gb/components/button/button.cssresult.js +1 -1
- package/labs/gb/components/button/button.cssresult.js.map +1 -1
- package/labs/gb/components/button/button.scss +1 -0
- package/labs/gb/components/button/md-gb-button.d.ts +12 -0
- package/labs/gb/components/button/md-gb-button.js +8 -0
- package/labs/gb/components/button/md-gb-button.js.map +1 -0
- package/labs/gb/components/card/_card-tokens.scss +2 -0
- package/labs/gb/components/card/{md-card.d.ts → card-element.d.ts} +12 -7
- package/labs/gb/components/card/{md-card.js → card-element.js} +21 -14
- package/labs/gb/components/card/card-element.js.map +1 -0
- package/labs/gb/components/card/card.css.map +1 -1
- package/labs/gb/components/card/md-gb-card.d.ts +12 -0
- package/labs/gb/components/card/md-gb-card.js +8 -0
- package/labs/gb/components/card/md-gb-card.js.map +1 -0
- package/labs/gb/components/checkbox/_checkbox-tokens.scss +2 -0
- package/labs/gb/components/checkbox/{md-checkbox.d.ts → checkbox-element.d.ts} +15 -7
- package/labs/gb/components/checkbox/{md-checkbox.js → checkbox-element.js} +26 -16
- package/labs/gb/components/checkbox/checkbox-element.js.map +1 -0
- package/labs/gb/components/checkbox/checkbox.css.map +1 -1
- package/labs/gb/components/checkbox/md-gb-checkbox.d.ts +12 -0
- package/labs/gb/components/checkbox/md-gb-checkbox.js +8 -0
- package/labs/gb/components/checkbox/md-gb-checkbox.js.map +1 -0
- package/labs/gb/components/chip/_chip-tokens.scss +167 -0
- package/labs/gb/components/chip/chip-element.d.ts +73 -0
- package/labs/gb/components/chip/chip-element.js +233 -0
- package/labs/gb/components/chip/chip-element.js.map +1 -0
- package/labs/gb/components/chip/chip.css +4 -0
- package/labs/gb/components/chip/chip.css.map +1 -0
- package/labs/gb/components/chip/chip.cssresult.d.ts +3 -0
- package/labs/gb/components/chip/chip.cssresult.js +14 -0
- package/labs/gb/components/chip/chip.cssresult.js.map +1 -0
- package/labs/gb/components/chip/chip.d.ts +77 -0
- package/labs/gb/components/chip/chip.js +99 -0
- package/labs/gb/components/chip/chip.js.map +1 -0
- package/labs/gb/components/chip/chip.scss +99 -0
- package/labs/gb/components/chip/md-gb-chip.d.ts +13 -0
- package/labs/gb/components/chip/md-gb-chip.js +9 -0
- package/labs/gb/components/chip/md-gb-chip.js.map +1 -0
- package/labs/gb/components/divider/_divider-tokens.scss +2 -0
- package/labs/gb/components/divider/{md-divider.d.ts → divider-element.d.ts} +5 -7
- package/labs/gb/components/divider/{md-divider.js → divider-element.js} +10 -10
- package/labs/gb/components/divider/divider-element.js.map +1 -0
- package/labs/gb/components/divider/divider.css.map +1 -1
- package/labs/gb/components/divider/md-gb-divider.d.ts +12 -0
- package/labs/gb/components/divider/md-gb-divider.js +8 -0
- package/labs/gb/components/divider/md-gb-divider.js.map +1 -0
- package/labs/gb/components/fab/_fab-tokens.scss +5 -0
- package/labs/gb/components/fab/fab-element.d.ts +32 -0
- package/labs/gb/components/fab/{md-fab.js → fab-element.js} +23 -11
- package/labs/gb/components/fab/fab-element.js.map +1 -0
- package/labs/gb/components/fab/fab.css +1 -1
- package/labs/gb/components/fab/fab.css.map +1 -1
- package/labs/gb/components/fab/fab.cssresult.js +1 -1
- package/labs/gb/components/fab/fab.cssresult.js.map +1 -1
- package/labs/gb/components/fab/fab.scss +1 -0
- package/labs/gb/components/fab/md-gb-fab.d.ts +12 -0
- package/labs/gb/components/fab/md-gb-fab.js +8 -0
- package/labs/gb/components/fab/md-gb-fab.js.map +1 -0
- package/labs/gb/components/iconbutton/_icon-button-tokens.scss +2 -0
- package/labs/gb/components/iconbutton/{md-icon-button.d.ts → icon-button-element.d.ts} +15 -7
- package/labs/gb/components/iconbutton/{md-icon-button.js → icon-button-element.js} +30 -20
- package/labs/gb/components/iconbutton/icon-button-element.js.map +1 -0
- package/labs/gb/components/iconbutton/icon-button.css.map +1 -1
- package/labs/gb/components/iconbutton/md-gb-icon-button.d.ts +12 -0
- package/labs/gb/components/iconbutton/md-gb-icon-button.js +8 -0
- package/labs/gb/components/iconbutton/md-gb-icon-button.js.map +1 -0
- package/labs/gb/components/list/_list-tokens.scss +13 -12
- package/labs/gb/components/list/{md-list.d.ts → list-element.d.ts} +6 -7
- package/labs/gb/components/list/{md-list.js → list-element.js} +11 -10
- package/labs/gb/components/list/list-element.js.map +1 -0
- package/labs/gb/components/list/list-item-element.d.ts +81 -0
- package/labs/gb/components/list/{md-list-item.js → list-item-element.js} +52 -13
- package/labs/gb/components/list/list-item-element.js.map +1 -0
- package/labs/gb/components/list/list.css +1 -1
- package/labs/gb/components/list/list.css.map +1 -1
- package/labs/gb/components/list/list.cssresult.js +1 -1
- package/labs/gb/components/list/list.cssresult.js.map +1 -1
- package/labs/gb/components/list/list.scss +5 -0
- package/labs/gb/components/list/md-gb-list-item.d.ts +12 -0
- package/labs/gb/components/list/md-gb-list-item.js +8 -0
- package/labs/gb/components/list/md-gb-list-item.js.map +1 -0
- package/labs/gb/components/list/md-gb-list.d.ts +12 -0
- package/labs/gb/components/list/md-gb-list.js +8 -0
- package/labs/gb/components/list/md-gb-list.js.map +1 -0
- package/labs/gb/components/menu/_menu-tokens.scss +47 -14
- package/labs/gb/components/menu/md-gb-menu-group.d.ts +12 -0
- package/labs/gb/components/menu/md-gb-menu-group.js +8 -0
- package/labs/gb/components/menu/md-gb-menu-group.js.map +1 -0
- package/labs/gb/components/menu/md-gb-menu-item.d.ts +12 -0
- package/labs/gb/components/menu/md-gb-menu-item.js +8 -0
- package/labs/gb/components/menu/md-gb-menu-item.js.map +1 -0
- package/labs/gb/components/menu/md-gb-menu.d.ts +12 -0
- package/labs/gb/components/menu/md-gb-menu.js +8 -0
- package/labs/gb/components/menu/md-gb-menu.js.map +1 -0
- package/labs/gb/components/menu/{md-menu.d.ts → menu-element.d.ts} +11 -7
- package/labs/gb/components/menu/{md-menu.js → menu-element.js} +16 -10
- package/labs/gb/components/menu/menu-element.js.map +1 -0
- package/labs/gb/components/menu/{md-menu-group.d.ts → menu-group-element.d.ts} +3 -6
- package/labs/gb/components/menu/{md-menu-group.js → menu-group-element.js} +11 -11
- package/labs/gb/components/menu/menu-group-element.js.map +1 -0
- package/labs/gb/components/menu/menu-item-element.d.ts +59 -0
- package/labs/gb/components/menu/{md-menu-item.js → menu-item-element.js} +44 -13
- package/labs/gb/components/menu/menu-item-element.js.map +1 -0
- package/labs/gb/components/menu/menu.css +1 -1
- package/labs/gb/components/menu/menu.css.map +1 -1
- package/labs/gb/components/menu/menu.cssresult.js +1 -1
- package/labs/gb/components/menu/menu.cssresult.js.map +1 -1
- package/labs/gb/components/menu/menu.js +1 -1
- package/labs/gb/components/menu/menu.js.map +1 -1
- package/labs/gb/components/menu/menu.scss +3 -0
- package/labs/gb/components/radio/_radio-tokens.scss +2 -0
- package/labs/gb/components/radio/md-gb-radio.d.ts +12 -0
- package/labs/gb/components/radio/md-gb-radio.js +8 -0
- package/labs/gb/components/radio/md-gb-radio.js.map +1 -0
- package/labs/gb/components/radio/{md-radio.d.ts → radio-element.d.ts} +10 -7
- package/labs/gb/components/radio/{md-radio.js → radio-element.js} +19 -14
- package/labs/gb/components/radio/radio-element.js.map +1 -0
- package/labs/gb/components/radio/radio.css.map +1 -1
- package/labs/gb/components/splitbutton/_split-button-tokens.scss +4 -0
- package/labs/gb/components/splitbutton/md-gb-split-button.d.ts +12 -0
- package/labs/gb/components/splitbutton/md-gb-split-button.js +8 -0
- package/labs/gb/components/splitbutton/md-gb-split-button.js.map +1 -0
- package/labs/gb/components/splitbutton/split-button-element.d.ts +33 -0
- package/labs/gb/components/splitbutton/{md-split-button.js → split-button-element.js} +21 -12
- package/labs/gb/components/splitbutton/split-button-element.js.map +1 -0
- package/labs/gb/components/splitbutton/split-button.css.map +1 -1
- package/labs/gb/components/splitbutton/split-button.d.ts +4 -4
- package/labs/gb/components/splitbutton/split-button.js +4 -4
- package/labs/gb/components/splitbutton/split-button.js.map +1 -1
- package/labs/gb/components/switch/_switch-tokens.scss +2 -0
- package/labs/gb/components/switch/md-gb-switch.d.ts +12 -0
- package/labs/gb/components/switch/md-gb-switch.js +8 -0
- package/labs/gb/components/switch/md-gb-switch.js.map +1 -0
- package/labs/gb/components/switch/{md-switch.d.ts → switch-element.d.ts} +19 -7
- package/labs/gb/components/switch/{md-switch.js → switch-element.js} +28 -14
- package/labs/gb/components/switch/switch-element.js.map +1 -0
- package/labs/gb/components/switch/switch.css.map +1 -1
- package/labs/gb/styles/adopt-styles.js +6 -1
- package/labs/gb/styles/adopt-styles.js.map +1 -1
- package/labs/gb/styles/icon/{md-icon.d.ts → icon-element.d.ts} +1 -7
- package/labs/gb/styles/icon/{md-icon.js → icon-element.js} +8 -10
- package/labs/gb/styles/icon/icon-element.js.map +1 -0
- package/labs/gb/styles/icon/md-gb-icon.d.ts +12 -0
- package/labs/gb/styles/icon/md-gb-icon.js +8 -0
- package/labs/gb/styles/icon/md-gb-icon.js.map +1 -0
- package/package.json +3 -3
- package/labs/gb/components/button/md-button.js.map +0 -1
- package/labs/gb/components/card/md-card.js.map +0 -1
- package/labs/gb/components/checkbox/md-checkbox.js.map +0 -1
- package/labs/gb/components/divider/md-divider.js.map +0 -1
- package/labs/gb/components/fab/md-fab.d.ts +0 -22
- package/labs/gb/components/fab/md-fab.js.map +0 -1
- package/labs/gb/components/iconbutton/md-icon-button.js.map +0 -1
- package/labs/gb/components/list/md-list-item.d.ts +0 -44
- package/labs/gb/components/list/md-list-item.js.map +0 -1
- package/labs/gb/components/list/md-list.js.map +0 -1
- package/labs/gb/components/menu/md-menu-group.js.map +0 -1
- package/labs/gb/components/menu/md-menu-item.d.ts +0 -30
- package/labs/gb/components/menu/md-menu-item.js.map +0 -1
- package/labs/gb/components/menu/md-menu.js.map +0 -1
- package/labs/gb/components/radio/md-radio.js.map +0 -1
- package/labs/gb/components/splitbutton/md-split-button.d.ts +0 -26
- package/labs/gb/components/splitbutton/md-split-button.js.map +0 -1
- package/labs/gb/components/switch/md-switch.js.map +0 -1
- package/labs/gb/styles/icon/md-icon.js.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
// Generated stylesheet for ./labs/gb/components/chip/chip.css.
|
|
7
|
+
import { css } from 'lit';
|
|
8
|
+
export const styles = css `/*!
|
|
9
|
+
* Copyright 2026 Google LLC
|
|
10
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
11
|
+
*/@layer md.sys, md.comp.ripple, md.comp.focus-ring;@layer md.comp.chip{.chip{--avatar-opacity: unset;--avatar-shape: var(--md-sys-shape-corner-full);--avatar-size: 24px;--container-color: unset;--container-elevation: var(--md-sys-elevation-shadow-0);--gap-horizontal: var(--md-sys-space-50);--height: 32px;--label-text: var(--md-sys-typescale-label-lg);--label-text-axes: var(--md-sys-typescale-label-lg-axes);--label-text-color: var(--md-sys-color-on-surface-variant);--label-text-tracking: var(--md-sys-typescale-label-lg-tracking);--leading-icon-color: var(--md-sys-color-on-surface-variant);--leading-icon-size: 18px;--outline-color: var(--md-sys-color-outline-variant);--outline-width: 1px;--padding-bottom: var(--md-sys-space-75);--padding-leading: var(--md-sys-space-200);--padding-top: var(--md-sys-space-75);--padding-trailing: var(--md-sys-space-200);--shape: var(--md-sys-shape-corner-md);--trailing-icon-color: var(--md-sys-color-on-surface-variant);--trailing-icon-size: 18px}.chip.chip-elevated{--container-color: var(--md-sys-color-surface-container-low);--container-elevation: var(--md-sys-elevation-shadow-1);--label-text-color: var(--md-sys-color-on-surface);--outline-width: 0}.chip.chip-filled{--container-color: var(--md-sys-color-surface-container);--container-elevation: var(--md-sys-elevation-shadow-0);--label-text-color: var(--md-sys-color-on-surface);--outline-width: 0}.chip.chip-tonal{--container-color: var(--md-sys-color-secondary-container);--container-elevation: var(--md-sys-elevation-shadow-0);--label-text-color: var(--md-sys-color-on-secondary-container);--outline-width: 0}.chip.chip-outlined{--container-color: transparent;--container-elevation: var(--md-sys-elevation-shadow-0);--label-text-color: var(--md-sys-color-on-surface);--outline-color: var(--md-sys-color-outline);--outline-width: 1px}.chip:is(.chip-selected,[aria-pressed=true]){--container-color: var(--md-sys-color-secondary-container);--label-text-color: var(--md-sys-color-on-secondary-container);--leading-icon-color: var(--md-sys-color-on-secondary-container);--outline-width: 0px;--shape: var(--md-sys-shape-corner-full);--trailing-icon-color: var(--md-sys-color-on-secondary-container)}.chip.chip-input{--padding-leading: var(--md-sys-space-150);--padding-trailing: var(--md-sys-space-150)}.chip.chip-with-leading-icon{--padding-leading: var(--md-sys-space-100)}.chip.chip-with-trailing-icon{--padding-trailing: var(--md-sys-space-100)}.chip.chip-with-avatar{--padding-leading: var(--md-sys-space-50)}.chip:is(:disabled,.disabled,[aria-disabled=true]){--avatar-opacity: 0.38;--label-text-color: hsl(from var(--md-sys-color-on-surface) h s l / 0.38);--leading-icon-color: hsl(from var(--md-sys-color-on-surface) h s l / 0.38);--outline-color: hsl(from var(--md-sys-color-on-surface) h s l / 0.1);--trailing-icon-color: hsl(from var(--md-sys-color-on-surface) h s l / 0.38)}.chip{display:inline-flex;align-items:center;justify-content:center;height:var(--height);gap:var(--gap-horizontal);padding-inline:var(--padding-leading) var(--padding-trailing);padding-block:var(--padding-top) var(--padding-bottom);border:var(--outline-width) solid var(--outline-color);border-radius:var(--shape);box-shadow:var(--container-elevation);background-color:var(--container-color);color:var(--label-text-color);font:var(--label-text);letter-spacing:var(--label-text-tracking);font-variation-settings:var(--label-text-axes);box-sizing:border-box;user-select:none;white-space:nowrap;--md-icon-color: var(--leading-icon-color);--md-icon-size: var(--leading-icon-size)}.chip:not(:disabled,.disabled,[aria-disabled=true]){cursor:pointer}.chip .chip-action,.chip .chip-remove{display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-horizontal);background:rgba(0,0,0,0);border:none;outline:none;color:inherit;font:inherit;padding:0;margin:0;height:100%;cursor:inherit}.chip .chip-remove{border-radius:50%;aspect-ratio:1;margin-inline-start:4px;outline:var(--focus-ring-outline);--md-icon-color: var(--trailing-icon-color);--md-icon-size: var(--trailing-icon-size)}}
|
|
12
|
+
`;
|
|
13
|
+
export default styles.styleSheet;
|
|
14
|
+
//# sourceMappingURL=chip.cssresult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.cssresult.js","sourceRoot":"","sources":["chip.cssresult.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,+DAA+D;AAC/D,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;CAIxB,CAAC;AACF,eAAe,MAAM,CAAC,UAAW,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2026 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./labs/gb/components/chip/chip.css.\nimport {css} from 'lit';\nexport const styles = css`/*!\n * Copyright 2026 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */@layer md.sys, md.comp.ripple, md.comp.focus-ring;@layer md.comp.chip{.chip{--avatar-opacity: unset;--avatar-shape: var(--md-sys-shape-corner-full);--avatar-size: 24px;--container-color: unset;--container-elevation: var(--md-sys-elevation-shadow-0);--gap-horizontal: var(--md-sys-space-50);--height: 32px;--label-text: var(--md-sys-typescale-label-lg);--label-text-axes: var(--md-sys-typescale-label-lg-axes);--label-text-color: var(--md-sys-color-on-surface-variant);--label-text-tracking: var(--md-sys-typescale-label-lg-tracking);--leading-icon-color: var(--md-sys-color-on-surface-variant);--leading-icon-size: 18px;--outline-color: var(--md-sys-color-outline-variant);--outline-width: 1px;--padding-bottom: var(--md-sys-space-75);--padding-leading: var(--md-sys-space-200);--padding-top: var(--md-sys-space-75);--padding-trailing: var(--md-sys-space-200);--shape: var(--md-sys-shape-corner-md);--trailing-icon-color: var(--md-sys-color-on-surface-variant);--trailing-icon-size: 18px}.chip.chip-elevated{--container-color: var(--md-sys-color-surface-container-low);--container-elevation: var(--md-sys-elevation-shadow-1);--label-text-color: var(--md-sys-color-on-surface);--outline-width: 0}.chip.chip-filled{--container-color: var(--md-sys-color-surface-container);--container-elevation: var(--md-sys-elevation-shadow-0);--label-text-color: var(--md-sys-color-on-surface);--outline-width: 0}.chip.chip-tonal{--container-color: var(--md-sys-color-secondary-container);--container-elevation: var(--md-sys-elevation-shadow-0);--label-text-color: var(--md-sys-color-on-secondary-container);--outline-width: 0}.chip.chip-outlined{--container-color: transparent;--container-elevation: var(--md-sys-elevation-shadow-0);--label-text-color: var(--md-sys-color-on-surface);--outline-color: var(--md-sys-color-outline);--outline-width: 1px}.chip:is(.chip-selected,[aria-pressed=true]){--container-color: var(--md-sys-color-secondary-container);--label-text-color: var(--md-sys-color-on-secondary-container);--leading-icon-color: var(--md-sys-color-on-secondary-container);--outline-width: 0px;--shape: var(--md-sys-shape-corner-full);--trailing-icon-color: var(--md-sys-color-on-secondary-container)}.chip.chip-input{--padding-leading: var(--md-sys-space-150);--padding-trailing: var(--md-sys-space-150)}.chip.chip-with-leading-icon{--padding-leading: var(--md-sys-space-100)}.chip.chip-with-trailing-icon{--padding-trailing: var(--md-sys-space-100)}.chip.chip-with-avatar{--padding-leading: var(--md-sys-space-50)}.chip:is(:disabled,.disabled,[aria-disabled=true]){--avatar-opacity: 0.38;--label-text-color: hsl(from var(--md-sys-color-on-surface) h s l / 0.38);--leading-icon-color: hsl(from var(--md-sys-color-on-surface) h s l / 0.38);--outline-color: hsl(from var(--md-sys-color-on-surface) h s l / 0.1);--trailing-icon-color: hsl(from var(--md-sys-color-on-surface) h s l / 0.38)}.chip{display:inline-flex;align-items:center;justify-content:center;height:var(--height);gap:var(--gap-horizontal);padding-inline:var(--padding-leading) var(--padding-trailing);padding-block:var(--padding-top) var(--padding-bottom);border:var(--outline-width) solid var(--outline-color);border-radius:var(--shape);box-shadow:var(--container-elevation);background-color:var(--container-color);color:var(--label-text-color);font:var(--label-text);letter-spacing:var(--label-text-tracking);font-variation-settings:var(--label-text-axes);box-sizing:border-box;user-select:none;white-space:nowrap;--md-icon-color: var(--leading-icon-color);--md-icon-size: var(--leading-icon-size)}.chip:not(:disabled,.disabled,[aria-disabled=true]){cursor:pointer}.chip .chip-action,.chip .chip-remove{display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-horizontal);background:rgba(0,0,0,0);border:none;outline:none;color:inherit;font:inherit;padding:0;margin:0;height:100%;cursor:inherit}.chip .chip-remove{border-radius:50%;aspect-ratio:1;margin-inline-start:4px;outline:var(--focus-ring-outline);--md-icon-color: var(--trailing-icon-color);--md-icon-size: var(--trailing-icon-size)}}\n`;\nexport default styles.styleSheet!;\n"]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { type ClassInfo } from 'lit/directives/class-map.js';
|
|
7
|
+
/** Chip color/emphasis configuration types. */
|
|
8
|
+
export type ChipColor = 'elevated' | 'filled' | 'outlined' | 'tonal';
|
|
9
|
+
/** Chip color configurations. */
|
|
10
|
+
export declare const CHIP_COLORS: {
|
|
11
|
+
readonly elevated: "elevated";
|
|
12
|
+
readonly filled: "filled";
|
|
13
|
+
readonly outlined: "outlined";
|
|
14
|
+
readonly tonal: "tonal";
|
|
15
|
+
};
|
|
16
|
+
/** Chip functional type. */
|
|
17
|
+
export type ChipType = 'action' | 'filter' | 'toggle' | 'link';
|
|
18
|
+
/** Chip classes. */
|
|
19
|
+
export declare const CHIP_CLASSES: {
|
|
20
|
+
readonly chip: "chip";
|
|
21
|
+
readonly chipElevated: "chip-elevated";
|
|
22
|
+
readonly chipFilled: "chip-filled";
|
|
23
|
+
readonly chipOutlined: "chip-outlined";
|
|
24
|
+
readonly chipTonal: "chip-tonal";
|
|
25
|
+
readonly chipSelected: "chip-selected";
|
|
26
|
+
readonly chipFilter: "chip-filter";
|
|
27
|
+
readonly chipInput: "chip-input";
|
|
28
|
+
readonly chipRemovable: "chip-removable";
|
|
29
|
+
readonly chipWithLeadingIcon: "chip-with-leading-icon";
|
|
30
|
+
readonly chipWithTrailingIcon: "chip-with-trailing-icon";
|
|
31
|
+
readonly chipWithAvatar: "chip-with-avatar";
|
|
32
|
+
readonly disabled: string;
|
|
33
|
+
};
|
|
34
|
+
/** The state provided to the `chipClasses()` function. */
|
|
35
|
+
export interface ChipClassesState {
|
|
36
|
+
/** The emphasis color of the chip. */
|
|
37
|
+
color?: ChipColor;
|
|
38
|
+
/** The functional behavior type of the chip (`action`, `filter`, `toggle`, `link`). */
|
|
39
|
+
type?: ChipType;
|
|
40
|
+
/** Whether the filter or toggle chip is selected. */
|
|
41
|
+
selected?: boolean;
|
|
42
|
+
/** Whether the chip is removable (`removable="true"`). */
|
|
43
|
+
removable?: boolean;
|
|
44
|
+
/** Whether the chip has a leading icon. */
|
|
45
|
+
withLeadingIcon?: boolean;
|
|
46
|
+
/** Whether the chip has a trailing icon. */
|
|
47
|
+
withTrailingIcon?: boolean;
|
|
48
|
+
/** Whether the chip has an avatar. */
|
|
49
|
+
withAvatar?: boolean;
|
|
50
|
+
/** Emulates `:disabled`. */
|
|
51
|
+
disabled?: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Returns the chip classes to apply to an element based on the given state.
|
|
55
|
+
*
|
|
56
|
+
* @param state The state of the chip.
|
|
57
|
+
* @return An object of class names and truthy values if they apply.
|
|
58
|
+
*/
|
|
59
|
+
export declare function chipClasses({ color, type, selected, removable, withLeadingIcon, withTrailingIcon, withAvatar, disabled, }?: ChipClassesState): ClassInfo;
|
|
60
|
+
/**
|
|
61
|
+
* Sets up chip functionality for the given element.
|
|
62
|
+
*
|
|
63
|
+
* @param chip The element on which to set up chip functionality.
|
|
64
|
+
* @param opts Setup options, supports a cleanup `signal`.
|
|
65
|
+
*/
|
|
66
|
+
export declare function setupChip(chip: HTMLElement, opts?: {
|
|
67
|
+
signal?: AbortSignal;
|
|
68
|
+
}): void;
|
|
69
|
+
/**
|
|
70
|
+
* A Lit directive that adds chip styling and functionality to its element.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* html`<button class="${chip({color: 'elevated'})}">Elevated Chip</button>`;
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export declare const chip: (state?: ChipClassesState & import("../shared/directives.js").AdditionalClasses) => import("lit-html/directive.js").DirectiveResult;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { afterDispatch, setupDispatchHooks, } from '../../../../internal/events/dispatch-hooks.js';
|
|
7
|
+
import { focusRingClasses } from '../focus/focus-ring.js';
|
|
8
|
+
import { rippleClasses, setupRipple } from '../ripple/ripple.js';
|
|
9
|
+
import { createClassMapDirective } from '../shared/directives.js';
|
|
10
|
+
import { isDisabled, PSEUDO_CLASSES } from '../shared/pseudo-classes.js';
|
|
11
|
+
/** Chip color configurations. */
|
|
12
|
+
export const CHIP_COLORS = {
|
|
13
|
+
elevated: 'elevated',
|
|
14
|
+
filled: 'filled',
|
|
15
|
+
outlined: 'outlined',
|
|
16
|
+
tonal: 'tonal',
|
|
17
|
+
};
|
|
18
|
+
/** Chip classes. */
|
|
19
|
+
export const CHIP_CLASSES = {
|
|
20
|
+
chip: 'chip',
|
|
21
|
+
chipElevated: 'chip-elevated',
|
|
22
|
+
chipFilled: 'chip-filled',
|
|
23
|
+
chipOutlined: 'chip-outlined',
|
|
24
|
+
chipTonal: 'chip-tonal',
|
|
25
|
+
chipSelected: 'chip-selected',
|
|
26
|
+
chipFilter: 'chip-filter',
|
|
27
|
+
chipInput: 'chip-input',
|
|
28
|
+
chipRemovable: 'chip-removable',
|
|
29
|
+
chipWithLeadingIcon: 'chip-with-leading-icon',
|
|
30
|
+
chipWithTrailingIcon: 'chip-with-trailing-icon',
|
|
31
|
+
chipWithAvatar: 'chip-with-avatar',
|
|
32
|
+
disabled: PSEUDO_CLASSES.disabled,
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Returns the chip classes to apply to an element based on the given state.
|
|
36
|
+
*
|
|
37
|
+
* @param state The state of the chip.
|
|
38
|
+
* @return An object of class names and truthy values if they apply.
|
|
39
|
+
*/
|
|
40
|
+
export function chipClasses({ color = 'outlined', type = 'action', selected = false, removable = false, withLeadingIcon = false, withTrailingIcon = false, withAvatar = false, disabled = false, } = {}) {
|
|
41
|
+
return {
|
|
42
|
+
...rippleClasses(),
|
|
43
|
+
...focusRingClasses(),
|
|
44
|
+
[CHIP_CLASSES.chip]: true,
|
|
45
|
+
[CHIP_CLASSES.chipElevated]: color === CHIP_COLORS.elevated,
|
|
46
|
+
[CHIP_CLASSES.chipFilled]: color === CHIP_COLORS.filled,
|
|
47
|
+
[CHIP_CLASSES.chipOutlined]: color === CHIP_COLORS.outlined,
|
|
48
|
+
[CHIP_CLASSES.chipTonal]: color === CHIP_COLORS.tonal,
|
|
49
|
+
[CHIP_CLASSES.chipSelected]: selected,
|
|
50
|
+
[CHIP_CLASSES.chipFilter]: type === 'filter' || type === 'toggle',
|
|
51
|
+
[CHIP_CLASSES.chipInput]: removable || type === 'action',
|
|
52
|
+
[CHIP_CLASSES.chipRemovable]: removable,
|
|
53
|
+
[CHIP_CLASSES.chipWithLeadingIcon]: withLeadingIcon,
|
|
54
|
+
[CHIP_CLASSES.chipWithTrailingIcon]: withTrailingIcon,
|
|
55
|
+
[CHIP_CLASSES.chipWithAvatar]: withAvatar,
|
|
56
|
+
[CHIP_CLASSES.disabled]: disabled,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Sets up chip functionality for the given element.
|
|
61
|
+
*
|
|
62
|
+
* @param chip The element on which to set up chip functionality.
|
|
63
|
+
* @param opts Setup options, supports a cleanup `signal`.
|
|
64
|
+
*/
|
|
65
|
+
export function setupChip(chip, opts) {
|
|
66
|
+
setupDispatchHooks(chip, 'click');
|
|
67
|
+
setupRipple(chip, opts);
|
|
68
|
+
chip.addEventListener('click', (event) => {
|
|
69
|
+
if (isDisabled(chip)) {
|
|
70
|
+
event.stopImmediatePropagation();
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
afterDispatch(event, () => {
|
|
75
|
+
const isToggle = chip.hasAttribute('aria-pressed') ||
|
|
76
|
+
chip.matches(`.${CHIP_CLASSES.chipFilter},.${CHIP_CLASSES.chipSelected}`);
|
|
77
|
+
if (event.defaultPrevented || !isToggle) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const isPressed = chip.ariaPressed === 'true';
|
|
81
|
+
chip.ariaPressed = String(!isPressed);
|
|
82
|
+
chip.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));
|
|
83
|
+
chip.dispatchEvent(new Event('change', { bubbles: true }));
|
|
84
|
+
});
|
|
85
|
+
}, opts);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* A Lit directive that adds chip styling and functionality to its element.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* html`<button class="${chip({color: 'elevated'})}">Elevated Chip</button>`;
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export const chip = createClassMapDirective({
|
|
96
|
+
getClasses: chipClasses,
|
|
97
|
+
setupElement: setupChip,
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=chip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.js","sourceRoot":"","sources":["chip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,aAAa,EACb,kBAAkB,GACnB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAC,uBAAuB,EAAC,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAKvE,iCAAiC;AACjC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;CACN,CAAC;AAKX,oBAAoB;AACpB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IACzB,YAAY,EAAE,eAAe;IAC7B,SAAS,EAAE,YAAY;IACvB,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IACzB,SAAS,EAAE,YAAY;IACvB,aAAa,EAAE,gBAAgB;IAC/B,mBAAmB,EAAE,wBAAwB;IAC7C,oBAAoB,EAAE,yBAAyB;IAC/C,cAAc,EAAE,kBAAkB;IAClC,QAAQ,EAAE,cAAc,CAAC,QAAQ;CACzB,CAAC;AAsBX;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,GAAG,UAAU,EAClB,IAAI,GAAG,QAAQ,EACf,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,KAAK,EACjB,eAAe,GAAG,KAAK,EACvB,gBAAgB,GAAG,KAAK,EACxB,UAAU,GAAG,KAAK,EAClB,QAAQ,GAAG,KAAK,MACI,EAAE;IACtB,OAAO;QACL,GAAG,aAAa,EAAE;QAClB,GAAG,gBAAgB,EAAE;QACrB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI;QACzB,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,KAAK,KAAK,WAAW,CAAC,QAAQ;QAC3D,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,KAAK,KAAK,WAAW,CAAC,MAAM;QACvD,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,KAAK,KAAK,WAAW,CAAC,QAAQ;QAC3D,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,WAAW,CAAC,KAAK;QACrD,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,QAAQ;QACrC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ;QACjE,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,IAAI,KAAK,QAAQ;QACxD,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,SAAS;QACvC,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,eAAe;QACnD,CAAC,YAAY,CAAC,oBAAoB,CAAC,EAAE,gBAAgB;QACrD,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,UAAU;QACzC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ;KAClC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACvB,IAAiB,EACjB,IAA6B;IAE7B,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxB,IAAI,CAAC,gBAAgB,CACnB,OAAO,EACP,CAAC,KAAK,EAAE,EAAE;QACR,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,wBAAwB,EAAE,CAAC;YACjC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE;YACxB,MAAM,QAAQ,GACZ,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;gBACjC,IAAI,CAAC,OAAO,CACV,IAAI,YAAY,CAAC,UAAU,KAAK,YAAY,CAAC,YAAY,EAAE,CAC5D,CAAC;YACJ,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxC,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC;YAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,aAAa,CAChB,IAAI,UAAU,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CACzD,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,uBAAuB,CAAC;IAC1C,UAAU,EAAE,WAAW;IACvB,YAAY,EAAE,SAAS;CACxB,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2026 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {type ClassInfo} from 'lit/directives/class-map.js';\nimport {\n afterDispatch,\n setupDispatchHooks,\n} from '../../../../internal/events/dispatch-hooks.js';\nimport {focusRingClasses} from '../focus/focus-ring.js';\nimport {rippleClasses, setupRipple} from '../ripple/ripple.js';\nimport {createClassMapDirective} from '../shared/directives.js';\nimport {isDisabled, PSEUDO_CLASSES} from '../shared/pseudo-classes.js';\n\n/** Chip color/emphasis configuration types. */\nexport type ChipColor = 'elevated' | 'filled' | 'outlined' | 'tonal';\n\n/** Chip color configurations. */\nexport const CHIP_COLORS = {\n elevated: 'elevated',\n filled: 'filled',\n outlined: 'outlined',\n tonal: 'tonal',\n} as const;\n\n/** Chip functional type. */\nexport type ChipType = 'action' | 'filter' | 'toggle' | 'link';\n\n/** Chip classes. */\nexport const CHIP_CLASSES = {\n chip: 'chip',\n chipElevated: 'chip-elevated',\n chipFilled: 'chip-filled',\n chipOutlined: 'chip-outlined',\n chipTonal: 'chip-tonal',\n chipSelected: 'chip-selected',\n chipFilter: 'chip-filter',\n chipInput: 'chip-input',\n chipRemovable: 'chip-removable',\n chipWithLeadingIcon: 'chip-with-leading-icon',\n chipWithTrailingIcon: 'chip-with-trailing-icon',\n chipWithAvatar: 'chip-with-avatar',\n disabled: PSEUDO_CLASSES.disabled,\n} as const;\n\n/** The state provided to the `chipClasses()` function. */\nexport interface ChipClassesState {\n /** The emphasis color of the chip. */\n color?: ChipColor;\n /** The functional behavior type of the chip (`action`, `filter`, `toggle`, `link`). */\n type?: ChipType;\n /** Whether the filter or toggle chip is selected. */\n selected?: boolean;\n /** Whether the chip is removable (`removable=\"true\"`). */\n removable?: boolean;\n /** Whether the chip has a leading icon. */\n withLeadingIcon?: boolean;\n /** Whether the chip has a trailing icon. */\n withTrailingIcon?: boolean;\n /** Whether the chip has an avatar. */\n withAvatar?: boolean;\n /** Emulates `:disabled`. */\n disabled?: boolean;\n}\n\n/**\n * Returns the chip classes to apply to an element based on the given state.\n *\n * @param state The state of the chip.\n * @return An object of class names and truthy values if they apply.\n */\nexport function chipClasses({\n color = 'outlined',\n type = 'action',\n selected = false,\n removable = false,\n withLeadingIcon = false,\n withTrailingIcon = false,\n withAvatar = false,\n disabled = false,\n}: ChipClassesState = {}): ClassInfo {\n return {\n ...rippleClasses(),\n ...focusRingClasses(),\n [CHIP_CLASSES.chip]: true,\n [CHIP_CLASSES.chipElevated]: color === CHIP_COLORS.elevated,\n [CHIP_CLASSES.chipFilled]: color === CHIP_COLORS.filled,\n [CHIP_CLASSES.chipOutlined]: color === CHIP_COLORS.outlined,\n [CHIP_CLASSES.chipTonal]: color === CHIP_COLORS.tonal,\n [CHIP_CLASSES.chipSelected]: selected,\n [CHIP_CLASSES.chipFilter]: type === 'filter' || type === 'toggle',\n [CHIP_CLASSES.chipInput]: removable || type === 'action',\n [CHIP_CLASSES.chipRemovable]: removable,\n [CHIP_CLASSES.chipWithLeadingIcon]: withLeadingIcon,\n [CHIP_CLASSES.chipWithTrailingIcon]: withTrailingIcon,\n [CHIP_CLASSES.chipWithAvatar]: withAvatar,\n [CHIP_CLASSES.disabled]: disabled,\n };\n}\n\n/**\n * Sets up chip functionality for the given element.\n *\n * @param chip The element on which to set up chip functionality.\n * @param opts Setup options, supports a cleanup `signal`.\n */\nexport function setupChip(\n chip: HTMLElement,\n opts?: {signal?: AbortSignal},\n): void {\n setupDispatchHooks(chip, 'click');\n setupRipple(chip, opts);\n chip.addEventListener(\n 'click',\n (event) => {\n if (isDisabled(chip)) {\n event.stopImmediatePropagation();\n event.preventDefault();\n return;\n }\n\n afterDispatch(event, () => {\n const isToggle =\n chip.hasAttribute('aria-pressed') ||\n chip.matches(\n `.${CHIP_CLASSES.chipFilter},.${CHIP_CLASSES.chipSelected}`,\n );\n if (event.defaultPrevented || !isToggle) {\n return;\n }\n\n const isPressed = chip.ariaPressed === 'true';\n chip.ariaPressed = String(!isPressed);\n chip.dispatchEvent(\n new InputEvent('input', {bubbles: true, composed: true}),\n );\n chip.dispatchEvent(new Event('change', {bubbles: true}));\n });\n },\n opts,\n );\n}\n\n/**\n * A Lit directive that adds chip styling and functionality to its element.\n *\n * @example\n * ```ts\n * html`<button class=\"${chip({color: 'elevated'})}\">Elevated Chip</button>`;\n * ```\n */\nexport const chip = createClassMapDirective({\n getClasses: chipClasses,\n setupElement: setupChip,\n});\n"]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2026 Google LLC
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// go/keep-sorted start by_regex='(.+) prefix_order=sass:
|
|
7
|
+
@use 'chip-tokens';
|
|
8
|
+
// go/keep-sorted end
|
|
9
|
+
|
|
10
|
+
@layer md.sys, md.comp.ripple, md.comp.focus-ring;
|
|
11
|
+
@layer md.comp.chip {
|
|
12
|
+
.chip {
|
|
13
|
+
@include chip-tokens.root;
|
|
14
|
+
&.chip-elevated {
|
|
15
|
+
@include chip-tokens.elevated;
|
|
16
|
+
}
|
|
17
|
+
&.chip-filled {
|
|
18
|
+
@include chip-tokens.filled;
|
|
19
|
+
}
|
|
20
|
+
&.chip-tonal {
|
|
21
|
+
@include chip-tokens.tonal;
|
|
22
|
+
}
|
|
23
|
+
&.chip-outlined {
|
|
24
|
+
@include chip-tokens.outlined;
|
|
25
|
+
}
|
|
26
|
+
&:is(.chip-selected, [aria-pressed='true']) {
|
|
27
|
+
@include chip-tokens.selected;
|
|
28
|
+
}
|
|
29
|
+
&.chip-filter {
|
|
30
|
+
@include chip-tokens.filter;
|
|
31
|
+
}
|
|
32
|
+
&.chip-input {
|
|
33
|
+
@include chip-tokens.input;
|
|
34
|
+
}
|
|
35
|
+
&.chip-with-leading-icon {
|
|
36
|
+
@include chip-tokens.with-leading-icon;
|
|
37
|
+
}
|
|
38
|
+
&.chip-with-trailing-icon {
|
|
39
|
+
@include chip-tokens.with-trailing-icon;
|
|
40
|
+
}
|
|
41
|
+
&.chip-with-avatar {
|
|
42
|
+
@include chip-tokens.with-avatar;
|
|
43
|
+
}
|
|
44
|
+
&:is(:disabled, .disabled, [aria-disabled='true']) {
|
|
45
|
+
@include chip-tokens.disabled;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
& {
|
|
49
|
+
display: inline-flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
justify-content: center;
|
|
52
|
+
height: var(--height);
|
|
53
|
+
gap: var(--gap-horizontal);
|
|
54
|
+
padding-inline: var(--padding-leading) var(--padding-trailing);
|
|
55
|
+
padding-block: var(--padding-top) var(--padding-bottom);
|
|
56
|
+
border: var(--outline-width) solid var(--outline-color);
|
|
57
|
+
border-radius: var(--shape);
|
|
58
|
+
box-shadow: var(--container-elevation);
|
|
59
|
+
background-color: var(--container-color);
|
|
60
|
+
color: var(--label-text-color);
|
|
61
|
+
font: var(--label-text);
|
|
62
|
+
letter-spacing: var(--label-text-tracking);
|
|
63
|
+
font-variation-settings: var(--label-text-axes);
|
|
64
|
+
box-sizing: border-box;
|
|
65
|
+
user-select: none;
|
|
66
|
+
white-space: nowrap;
|
|
67
|
+
--md-icon-color: var(--leading-icon-color);
|
|
68
|
+
--md-icon-size: var(--leading-icon-size);
|
|
69
|
+
}
|
|
70
|
+
&:not(:disabled, .disabled, [aria-disabled='true']) {
|
|
71
|
+
cursor: pointer;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.chip-action,
|
|
75
|
+
.chip-remove {
|
|
76
|
+
display: inline-flex;
|
|
77
|
+
align-items: center;
|
|
78
|
+
justify-content: center;
|
|
79
|
+
gap: var(--gap-horizontal);
|
|
80
|
+
background: transparent;
|
|
81
|
+
border: none;
|
|
82
|
+
outline: none;
|
|
83
|
+
color: inherit;
|
|
84
|
+
font: inherit;
|
|
85
|
+
padding: 0;
|
|
86
|
+
margin: 0;
|
|
87
|
+
height: 100%;
|
|
88
|
+
cursor: inherit;
|
|
89
|
+
}
|
|
90
|
+
.chip-remove {
|
|
91
|
+
border-radius: 50%;
|
|
92
|
+
aspect-ratio: 1;
|
|
93
|
+
margin-inline-start: 4px;
|
|
94
|
+
outline: var(--focus-ring-outline);
|
|
95
|
+
--md-icon-color: var(--trailing-icon-color);
|
|
96
|
+
--md-icon-size: var(--trailing-icon-size);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ChipElement } from './chip-element.js';
|
|
7
|
+
export * from './chip-element.js';
|
|
8
|
+
declare global {
|
|
9
|
+
interface HTMLElementTagNameMap {
|
|
10
|
+
/** A Material Design Expressive Chip component. */
|
|
11
|
+
'md-gb-chip': ChipElement;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ChipElement } from './chip-element.js';
|
|
7
|
+
export * from './chip-element.js';
|
|
8
|
+
customElements.define('md-gb-chip', ChipElement);
|
|
9
|
+
//# sourceMappingURL=md-gb-chip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"md-gb-chip.js","sourceRoot":"","sources":["md-gb-chip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAE9C,cAAc,mBAAmB,CAAC;AASlC,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2026 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {ChipElement} from './chip-element.js';\n\nexport * from './chip-element.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n /** A Material Design Expressive Chip component. */\n 'md-gb-chip': ChipElement;\n }\n}\n\ncustomElements.define('md-gb-chip', ChipElement);\n"]}
|
|
@@ -4,16 +4,14 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { CSSResultOrNative, LitElement } from 'lit';
|
|
7
|
-
declare global {
|
|
8
|
-
interface HTMLElementTagNameMap {
|
|
9
|
-
/** A Material Design divider component. */
|
|
10
|
-
'md-divider': Divider;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
7
|
/**
|
|
14
8
|
* A Material Design divider component.
|
|
9
|
+
*
|
|
10
|
+
* @csspart divider - The divider element.
|
|
11
|
+
* @cssprop --color
|
|
12
|
+
* @cssprop --thickness
|
|
15
13
|
*/
|
|
16
|
-
export declare class
|
|
14
|
+
export declare class DividerElement extends LitElement {
|
|
17
15
|
static styles: CSSResultOrNative[];
|
|
18
16
|
/**
|
|
19
17
|
* Whether or not the divider is vertical.
|
|
@@ -5,14 +5,18 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { css, html, LitElement } from 'lit';
|
|
8
|
-
import {
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
9
|
import dividerStyles from './divider.css' with { type: 'css' }; // github-only
|
|
10
10
|
// import {styles as dividerStyles} from './divider.cssresult.js'; // google3-only
|
|
11
11
|
import { divider } from './divider.js';
|
|
12
12
|
/**
|
|
13
13
|
* A Material Design divider component.
|
|
14
|
+
*
|
|
15
|
+
* @csspart divider - The divider element.
|
|
16
|
+
* @cssprop --color
|
|
17
|
+
* @cssprop --thickness
|
|
14
18
|
*/
|
|
15
|
-
|
|
19
|
+
export class DividerElement extends LitElement {
|
|
16
20
|
constructor() {
|
|
17
21
|
super(...arguments);
|
|
18
22
|
/**
|
|
@@ -23,8 +27,8 @@ let Divider = class Divider extends LitElement {
|
|
|
23
27
|
render() {
|
|
24
28
|
return html `<div part="divider" class="${divider(this)}"></div>`;
|
|
25
29
|
}
|
|
26
|
-
}
|
|
27
|
-
|
|
30
|
+
}
|
|
31
|
+
DividerElement.styles = [
|
|
28
32
|
dividerStyles,
|
|
29
33
|
css `
|
|
30
34
|
:host {
|
|
@@ -43,9 +47,5 @@ Divider.styles = [
|
|
|
43
47
|
];
|
|
44
48
|
__decorate([
|
|
45
49
|
property({ type: Boolean, reflect: true })
|
|
46
|
-
],
|
|
47
|
-
|
|
48
|
-
customElement('md-divider')
|
|
49
|
-
], Divider);
|
|
50
|
-
export { Divider };
|
|
51
|
-
//# sourceMappingURL=md-divider.js.map
|
|
50
|
+
], DividerElement.prototype, "vertical", void 0);
|
|
51
|
+
//# sourceMappingURL=divider-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divider-element.js","sourceRoot":"","sources":["divider-element.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,GAAG,EAAqB,IAAI,EAAE,UAAU,EAAC,MAAM,KAAK,CAAC;AAC7D,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,aAAa,MAAM,eAAe,CAAC,OAAM,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC,cAAc;AAC5E,kFAAkF;AAElF,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,OAAO,cAAe,SAAQ,UAAU;IAA9C;;QAmBE;;WAEG;QACuC,aAAQ,GAAG,KAAK,CAAC;IAK7D,CAAC;IAHoB,MAAM;QACvB,OAAO,IAAI,CAAA,8BAA8B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;IACnE,CAAC;;AAzBe,qBAAM,GAAwB;IAC5C,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;KAaF;CACF,AAhBqB,CAgBpB;AAKwC;IAAzC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;gDAAkB","sourcesContent":["/**\n * @license\n * Copyright 2026 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {css, CSSResultOrNative, html, LitElement} from 'lit';\nimport {property} from 'lit/decorators.js';\n\nimport dividerStyles from './divider.css' with {type: 'css'}; // github-only\n// import {styles as dividerStyles} from './divider.cssresult.js'; // google3-only\n\nimport {divider} from './divider.js';\n\n/**\n * A Material Design divider component.\n *\n * @csspart divider - The divider element.\n * @cssprop --color\n * @cssprop --thickness\n */\nexport class DividerElement extends LitElement {\n static override styles: CSSResultOrNative[] = [\n dividerStyles,\n css`\n :host {\n display: flex;\n }\n .divider {\n flex: 1;\n }\n :host(:not([vertical])) {\n width: 100%;\n }\n :host([vertical]) {\n min-height: 100%;\n }\n `,\n ];\n\n /**\n * Whether or not the divider is vertical.\n */\n @property({type: Boolean, reflect: true}) vertical = false;\n\n protected override render() {\n return html`<div part=\"divider\" class=\"${divider(this)}\"></div>`;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["divider.scss","_divider-tokens.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GASA,cACA,uBAEI,
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["divider.scss","_divider-tokens.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GASA,cACA,uBAEI,SCLF,6CACA,iBDOI,sBACA,YACA,aAGF,gCACE,kDACA,WAGF,0BACE,sDACA","file":"divider.css"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { DividerElement } from './divider-element.js';
|
|
7
|
+
declare global {
|
|
8
|
+
interface HTMLElementTagNameMap {
|
|
9
|
+
/** A Material Design component. */
|
|
10
|
+
'md-gb-divider': DividerElement;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"md-gb-divider.js","sourceRoot":"","sources":["md-gb-divider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AASpD,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2026 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {DividerElement} from './divider-element.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n /** A Material Design component. */\n 'md-gb-divider': DividerElement;\n }\n}\n\ncustomElements.define('md-gb-divider', DividerElement);\n"]}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
//
|
|
5
5
|
|
|
6
6
|
@mixin root {
|
|
7
|
+
// LINT.IfChange
|
|
7
8
|
--container-color: transparent;
|
|
8
9
|
--container-elevation: var(--md-sys-elevation-shadow-3);
|
|
9
10
|
--container-height: 56px;
|
|
@@ -12,10 +13,12 @@
|
|
|
12
13
|
--icon-label-space: 12px;
|
|
13
14
|
--icon-size: 24px;
|
|
14
15
|
--label-text: var(--md-sys-typescale-label-lg);
|
|
16
|
+
--label-text-axes: var(--md-sys-typescale-label-lg-axes);
|
|
15
17
|
--label-text-color: currentColor;
|
|
16
18
|
--label-text-tracking: var(--md-sys-typescale-label-lg-tracking);
|
|
17
19
|
--leading-space: 16px;
|
|
18
20
|
--trailing-space: 16px;
|
|
21
|
+
// LINT.ThenChange(fab-element.ts) keep in sync with `@cssprop` jsdoc tags
|
|
19
22
|
}
|
|
20
23
|
|
|
21
24
|
@mixin hovered {
|
|
@@ -67,6 +70,7 @@
|
|
|
67
70
|
--container-shape: var(--md-sys-shape-corner-lg-increased);
|
|
68
71
|
--icon-size: 28px;
|
|
69
72
|
--label-text: var(--md-sys-typescale-title-lg);
|
|
73
|
+
--label-text-axes: var(--md-sys-typescale-title-lg-axes);
|
|
70
74
|
--label-text-tracking: var(--md-sys-typescale-title-lg-tracking);
|
|
71
75
|
--leading-space: 26px;
|
|
72
76
|
--trailing-space: 26px;
|
|
@@ -78,6 +82,7 @@
|
|
|
78
82
|
--icon-label-space: 16px;
|
|
79
83
|
--icon-size: 36px;
|
|
80
84
|
--label-text: var(--md-sys-typescale-headline-sm);
|
|
85
|
+
--label-text-axes: var(--md-sys-typescale-headline-sm-axes);
|
|
81
86
|
--label-text-tracking: var(--md-sys-typescale-headline-sm-tracking);
|
|
82
87
|
--leading-space: 28px;
|
|
83
88
|
--trailing-space: 28px;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { CSSResultOrNative, LitElement } from 'lit';
|
|
7
|
+
import { type FabColor, type FabSize } from './fab.js';
|
|
8
|
+
/**
|
|
9
|
+
* A Material Design fab component.
|
|
10
|
+
*
|
|
11
|
+
* @slot - Used to display an icon and optional label.
|
|
12
|
+
* @csspart fab - The FAB's root element.
|
|
13
|
+
* @cssprop --container-color
|
|
14
|
+
* @cssprop --container-elevation
|
|
15
|
+
* @cssprop --container-height
|
|
16
|
+
* @cssprop --container-shape
|
|
17
|
+
* @cssprop --icon-color
|
|
18
|
+
* @cssprop --icon-label-space
|
|
19
|
+
* @cssprop --icon-size
|
|
20
|
+
* @cssprop --label-text
|
|
21
|
+
* @cssprop --label-text-axes
|
|
22
|
+
* @cssprop --label-text-color
|
|
23
|
+
* @cssprop --label-text-tracking
|
|
24
|
+
* @cssprop --leading-space
|
|
25
|
+
* @cssprop --trailing-space
|
|
26
|
+
*/
|
|
27
|
+
export declare class FabElement extends LitElement {
|
|
28
|
+
static styles: CSSResultOrNative[];
|
|
29
|
+
color: FabColor;
|
|
30
|
+
size: FabSize;
|
|
31
|
+
protected render(): import("lit-html").TemplateResult<1>;
|
|
32
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { css, html, LitElement } from 'lit';
|
|
8
|
-
import {
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
9
|
import focusRingStyles from '../focus/focus-ring.css' with { type: 'css' }; // github-only
|
|
10
10
|
// import focusRingStyles from '../focus/focus-ring.cssresult.js'; // google3-only
|
|
11
11
|
import rippleStyles from '../ripple/ripple.css' with { type: 'css' }; // github-only
|
|
@@ -15,8 +15,24 @@ import fabStyles from './fab.css' with { type: 'css' }; // github-only
|
|
|
15
15
|
import { fab } from './fab.js';
|
|
16
16
|
/**
|
|
17
17
|
* A Material Design fab component.
|
|
18
|
+
*
|
|
19
|
+
* @slot - Used to display an icon and optional label.
|
|
20
|
+
* @csspart fab - The FAB's root element.
|
|
21
|
+
* @cssprop --container-color
|
|
22
|
+
* @cssprop --container-elevation
|
|
23
|
+
* @cssprop --container-height
|
|
24
|
+
* @cssprop --container-shape
|
|
25
|
+
* @cssprop --icon-color
|
|
26
|
+
* @cssprop --icon-label-space
|
|
27
|
+
* @cssprop --icon-size
|
|
28
|
+
* @cssprop --label-text
|
|
29
|
+
* @cssprop --label-text-axes
|
|
30
|
+
* @cssprop --label-text-color
|
|
31
|
+
* @cssprop --label-text-tracking
|
|
32
|
+
* @cssprop --leading-space
|
|
33
|
+
* @cssprop --trailing-space
|
|
18
34
|
*/
|
|
19
|
-
|
|
35
|
+
export class FabElement extends LitElement {
|
|
20
36
|
constructor() {
|
|
21
37
|
super(...arguments);
|
|
22
38
|
this.color = 'primary-container';
|
|
@@ -29,8 +45,8 @@ let Fab = class Fab extends LitElement {
|
|
|
29
45
|
<slot></slot>
|
|
30
46
|
</button>`;
|
|
31
47
|
}
|
|
32
|
-
}
|
|
33
|
-
|
|
48
|
+
}
|
|
49
|
+
FabElement.styles = [
|
|
34
50
|
focusRingStyles,
|
|
35
51
|
rippleStyles,
|
|
36
52
|
fabStyles,
|
|
@@ -45,12 +61,8 @@ Fab.styles = [
|
|
|
45
61
|
];
|
|
46
62
|
__decorate([
|
|
47
63
|
property()
|
|
48
|
-
],
|
|
64
|
+
], FabElement.prototype, "color", void 0);
|
|
49
65
|
__decorate([
|
|
50
66
|
property()
|
|
51
|
-
],
|
|
52
|
-
|
|
53
|
-
customElement('md-fab')
|
|
54
|
-
], Fab);
|
|
55
|
-
export { Fab };
|
|
56
|
-
//# sourceMappingURL=md-fab.js.map
|
|
67
|
+
], FabElement.prototype, "size", void 0);
|
|
68
|
+
//# sourceMappingURL=fab-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fab-element.js","sourceRoot":"","sources":["fab-element.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,GAAG,EAAqB,IAAI,EAAE,UAAU,EAAC,MAAM,KAAK,CAAC;AAC7D,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,eAAe,MAAM,yBAAyB,CAAC,OAAM,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC,cAAc;AACxF,kFAAkF;AAClF,OAAO,YAAY,MAAM,sBAAsB,CAAC,OAAM,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC,cAAc;AAClF,4EAA4E;AAC5E,OAAO,SAAS,MAAM,WAAW,CAAC,OAAM,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC,cAAc;AACpE,0EAA0E;AAE1E,OAAO,EAAC,GAAG,EAA8B,MAAM,UAAU,CAAC;AAE1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IAA1C;;QAec,UAAK,GAAa,mBAAmB,CAAC;QACtC,SAAI,GAAY,SAAS,CAAC;IASxC,CAAC;IAPoB,MAAM;QACvB,OAAO,IAAI,CAAA;;eAEA,GAAG,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC;;cAE1C,CAAC;IACb,CAAC;;AAvBe,iBAAM,GAAwB;IAC5C,eAAe;IACf,YAAY;IACZ,SAAS;IACT,GAAG,CAAA;;;;;;;KAOF;CACF,AAZqB,CAYpB;AAEU;IAAX,QAAQ,EAAE;yCAAuC;AACtC;IAAX,QAAQ,EAAE;wCAA2B","sourcesContent":["/**\n * @license\n * Copyright 2026 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {css, CSSResultOrNative, html, LitElement} from 'lit';\nimport {property} from 'lit/decorators.js';\n\nimport focusRingStyles from '../focus/focus-ring.css' with {type: 'css'}; // github-only\n// import focusRingStyles from '../focus/focus-ring.cssresult.js'; // google3-only\nimport rippleStyles from '../ripple/ripple.css' with {type: 'css'}; // github-only\n// import rippleStyles from '../ripple/ripple.cssresult.js'; // google3-only\nimport fabStyles from './fab.css' with {type: 'css'}; // github-only\n// import {styles as fabStyles} from './fab.cssresult.js'; // google3-only\n\nimport {fab, type FabColor, type FabSize} from './fab.js';\n\n/**\n * A Material Design fab component.\n *\n * @slot - Used to display an icon and optional label.\n * @csspart fab - The FAB's root element.\n * @cssprop --container-color\n * @cssprop --container-elevation\n * @cssprop --container-height\n * @cssprop --container-shape\n * @cssprop --icon-color\n * @cssprop --icon-label-space\n * @cssprop --icon-size\n * @cssprop --label-text\n * @cssprop --label-text-axes\n * @cssprop --label-text-color\n * @cssprop --label-text-tracking\n * @cssprop --leading-space\n * @cssprop --trailing-space\n */\nexport class FabElement extends LitElement {\n static override styles: CSSResultOrNative[] = [\n focusRingStyles,\n rippleStyles,\n fabStyles,\n css`\n :host {\n display: inline-flex;\n }\n .fab {\n flex: 1;\n }\n `,\n ];\n\n @property() color: FabColor = 'primary-container';\n @property() size: FabSize = 'default';\n\n protected override render() {\n return html`<button\n part=\"fab\"\n class=\"${fab({color: this.color, size: this.size})}\">\n <slot></slot>\n </button>`;\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright 2026 Google LLC
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
*/@layer md.sys, md.comp.dependencies;@layer md.comp.fab{.fab{--container-color: transparent;--container-elevation: var(--md-sys-elevation-shadow-3);--container-height: 56px;--container-shape: var(--md-sys-shape-corner-lg);--icon-color: currentColor;--icon-label-space: 12px;--icon-size: 24px;--label-text: var(--md-sys-typescale-label-lg);--label-text-color: currentColor;--label-text-tracking: var(--md-sys-typescale-label-lg-tracking);--leading-space: 16px;--trailing-space: 16px}.fab:is(:hover,.hover){--container-elevation: var(--md-sys-elevation-shadow-4)}.fab:is(:active,.active){--container-elevation: var(--md-sys-elevation-shadow-3)}.fab.fab-primary-container{--container-color: var(--md-sys-color-primary-container);--icon-color: var(--md-sys-color-on-primary-container);--label-text-color: var(--md-sys-color-on-primary-container)}.fab.fab-primary{--container-color: var(--md-sys-color-primary);--icon-color: var(--md-sys-color-on-primary);--label-text-color: var(--md-sys-color-on-primary)}.fab.fab-secondary-container{--container-color: var(--md-sys-color-secondary-container);--icon-color: var(--md-sys-color-on-secondary-container);--label-text-color: var(--md-sys-color-on-secondary-container)}.fab.fab-secondary{--container-color: var(--md-sys-color-secondary);--icon-color: var(--md-sys-color-on-secondary);--label-text-color: var(--md-sys-color-on-secondary)}.fab.fab-tertiary-container{--container-color: var(--md-sys-color-tertiary-container);--icon-color: var(--md-sys-color-on-tertiary-container);--label-text-color: var(--md-sys-color-on-tertiary-container)}.fab.fab-tertiary{--container-color: var(--md-sys-color-tertiary);--icon-color: var(--md-sys-color-on-tertiary);--label-text-color: var(--md-sys-color-on-tertiary)}.fab.fab-md{--container-height: 80px;--container-shape: var(--md-sys-shape-corner-lg-increased);--icon-size: 28px;--label-text: var(--md-sys-typescale-title-lg);--label-text-tracking: var(--md-sys-typescale-title-lg-tracking);--leading-space: 26px;--trailing-space: 26px}.fab.fab-lg{--container-height: 96px;--container-shape: var(--md-sys-shape-corner-xl);--icon-label-space: 16px;--icon-size: 36px;--label-text: var(--md-sys-typescale-headline-sm);--label-text-tracking: var(--md-sys-typescale-headline-sm-tracking);--leading-space: 28px;--trailing-space: 28px}.fab{appearance:none;border:none;display:inline-flex;align-items:center;gap:var(--icon-label-space);height:var(--container-height);background-color:var(--container-color);border-radius:var(--container-shape);box-shadow:var(--container-elevation);color:var(--label-text-color);font:var(--label-text);letter-spacing:var(--label-text-tracking);padding-inline:var(--leading-space) var(--trailing-space);animation:var(--ripple-animation),var(--focus-ring-animation);--md-icon-color: var(--icon-color);--md-icon-size: var(--icon-size)}}/*# sourceMappingURL=fab.css.map */
|
|
4
|
+
*/@layer md.sys, md.comp.dependencies;@layer md.comp.fab{.fab{--container-color: transparent;--container-elevation: var(--md-sys-elevation-shadow-3);--container-height: 56px;--container-shape: var(--md-sys-shape-corner-lg);--icon-color: currentColor;--icon-label-space: 12px;--icon-size: 24px;--label-text: var(--md-sys-typescale-label-lg);--label-text-axes: var(--md-sys-typescale-label-lg-axes);--label-text-color: currentColor;--label-text-tracking: var(--md-sys-typescale-label-lg-tracking);--leading-space: 16px;--trailing-space: 16px}.fab:is(:hover,.hover){--container-elevation: var(--md-sys-elevation-shadow-4)}.fab:is(:active,.active){--container-elevation: var(--md-sys-elevation-shadow-3)}.fab.fab-primary-container{--container-color: var(--md-sys-color-primary-container);--icon-color: var(--md-sys-color-on-primary-container);--label-text-color: var(--md-sys-color-on-primary-container)}.fab.fab-primary{--container-color: var(--md-sys-color-primary);--icon-color: var(--md-sys-color-on-primary);--label-text-color: var(--md-sys-color-on-primary)}.fab.fab-secondary-container{--container-color: var(--md-sys-color-secondary-container);--icon-color: var(--md-sys-color-on-secondary-container);--label-text-color: var(--md-sys-color-on-secondary-container)}.fab.fab-secondary{--container-color: var(--md-sys-color-secondary);--icon-color: var(--md-sys-color-on-secondary);--label-text-color: var(--md-sys-color-on-secondary)}.fab.fab-tertiary-container{--container-color: var(--md-sys-color-tertiary-container);--icon-color: var(--md-sys-color-on-tertiary-container);--label-text-color: var(--md-sys-color-on-tertiary-container)}.fab.fab-tertiary{--container-color: var(--md-sys-color-tertiary);--icon-color: var(--md-sys-color-on-tertiary);--label-text-color: var(--md-sys-color-on-tertiary)}.fab.fab-md{--container-height: 80px;--container-shape: var(--md-sys-shape-corner-lg-increased);--icon-size: 28px;--label-text: var(--md-sys-typescale-title-lg);--label-text-axes: var(--md-sys-typescale-title-lg-axes);--label-text-tracking: var(--md-sys-typescale-title-lg-tracking);--leading-space: 26px;--trailing-space: 26px}.fab.fab-lg{--container-height: 96px;--container-shape: var(--md-sys-shape-corner-xl);--icon-label-space: 16px;--icon-size: 36px;--label-text: var(--md-sys-typescale-headline-sm);--label-text-axes: var(--md-sys-typescale-headline-sm-axes);--label-text-tracking: var(--md-sys-typescale-headline-sm-tracking);--leading-space: 28px;--trailing-space: 28px}.fab{appearance:none;border:none;display:inline-flex;align-items:center;gap:var(--icon-label-space);height:var(--container-height);background-color:var(--container-color);border-radius:var(--container-shape);box-shadow:var(--container-elevation);color:var(--label-text-color);font:var(--label-text);letter-spacing:var(--label-text-tracking);font-variation-settings:var(--label-text-axes);padding-inline:var(--leading-space) var(--trailing-space);animation:var(--ripple-animation),var(--focus-ring-animation);--md-icon-color: var(--icon-color);--md-icon-size: var(--icon-size)}}/*# sourceMappingURL=fab.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["fab.scss","_fab-tokens.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GAUA,oCACA,mBAEI,
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["fab.scss","_fab-tokens.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GAUA,oCACA,mBAEI,KCNF,+BACA,wDACA,yBACA,iDACA,2BACA,yBACA,kBACA,+CACA,yDACA,iCACA,iEACA,sBACA,uBDFE,uBCOF,wDDHE,yBCOF,wDDHE,2BCOF,yDACA,uDACA,6DDLE,iBCSF,+CACA,6CACA,mDDPE,6BCWF,2DACA,yDACA,+DDTE,mBCaF,iDACA,+CACA,qDDXE,4BCeF,0DACA,wDACA,8DDbE,kBCiBF,gDACA,8CACA,oDDfE,YCmBF,yBACA,2DACA,kBACA,+CACA,yDACA,iEACA,sBACA,uBDtBE,YC0BF,yBACA,iDACA,yBACA,kBACA,kDACA,4DACA,oEACA,sBACA,uBD9BE,KACE,gBACA,YACA,oBACA,mBACA,4BACA,+BACA,wCACA,qCACA,sCACA,8BACA,uBACA,0CACA,+CACA,0DACA,8DACA,mCACA","file":"fab.css"}
|