@m3e/expansion-panel 1.0.0-rc.1
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/LICENSE +22 -0
- package/README.md +175 -0
- package/cem.config.mjs +16 -0
- package/demo/index.html +60 -0
- package/dist/css-custom-data.json +172 -0
- package/dist/custom-elements.json +787 -0
- package/dist/html-custom-data.json +72 -0
- package/dist/index.js +690 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +248 -0
- package/dist/index.min.js.map +1 -0
- package/dist/src/AccordionElement.d.ts +56 -0
- package/dist/src/AccordionElement.d.ts.map +1 -0
- package/dist/src/ExpansionHeaderElement.d.ts +60 -0
- package/dist/src/ExpansionHeaderElement.d.ts.map +1 -0
- package/dist/src/ExpansionPanelElement.d.ts +121 -0
- package/dist/src/ExpansionPanelElement.d.ts.map +1 -0
- package/dist/src/ExpansionToggleDirection.d.ts +3 -0
- package/dist/src/ExpansionToggleDirection.d.ts.map +1 -0
- package/dist/src/ExpansionTogglePosition.d.ts +3 -0
- package/dist/src/ExpansionTogglePosition.d.ts.map +1 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/styles/ExpansionHeaderStyle.d.ts +6 -0
- package/dist/src/styles/ExpansionHeaderStyle.d.ts.map +1 -0
- package/dist/src/styles/ExpansionHeaderToken.d.ts +17 -0
- package/dist/src/styles/ExpansionHeaderToken.d.ts.map +1 -0
- package/dist/src/styles/ExpansionPanelStyle.d.ts +6 -0
- package/dist/src/styles/ExpansionPanelStyle.d.ts.map +1 -0
- package/dist/src/styles/ExpansionPanelToken.d.ts +21 -0
- package/dist/src/styles/ExpansionPanelToken.d.ts.map +1 -0
- package/dist/src/styles/index.d.ts +3 -0
- package/dist/src/styles/index.d.ts.map +1 -0
- package/eslint.config.mjs +13 -0
- package/package.json +49 -0
- package/rollup.config.js +32 -0
- package/src/AccordionElement.ts +115 -0
- package/src/ExpansionHeaderElement.ts +99 -0
- package/src/ExpansionPanelElement.ts +260 -0
- package/src/ExpansionToggleDirection.ts +2 -0
- package/src/ExpansionTogglePosition.ts +2 -0
- package/src/index.ts +5 -0
- package/src/styles/ExpansionHeaderStyle.ts +85 -0
- package/src/styles/ExpansionHeaderToken.ts +24 -0
- package/src/styles/ExpansionPanelStyle.ts +85 -0
- package/src/styles/ExpansionPanelToken.ts +28 -0
- package/src/styles/index.ts +2 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { css, unsafeCSS } from "lit";
|
|
2
|
+
|
|
3
|
+
import { DesignToken } from "@m3e/core";
|
|
4
|
+
|
|
5
|
+
import { ExpansionPanelToken } from "./ExpansionPanelToken";
|
|
6
|
+
import { ExpansionHeaderToken } from "./ExpansionHeaderToken";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Styles for `M3eExpansionPanelElement`.
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export const ExpansionPanelStyle = css`
|
|
13
|
+
:host {
|
|
14
|
+
display: block;
|
|
15
|
+
background-color: ${ExpansionPanelToken.containerColor};
|
|
16
|
+
transition: ${unsafeCSS(`box-shadow var(--m3e-collapsible-animation-duration, ${DesignToken.motion.duration.medium1})
|
|
17
|
+
${DesignToken.motion.easing.standard}`)};
|
|
18
|
+
}
|
|
19
|
+
:host(:not(:disabled)) {
|
|
20
|
+
color: ${ExpansionPanelToken.textColor};
|
|
21
|
+
}
|
|
22
|
+
:host(:disabled) {
|
|
23
|
+
color: color-mix(
|
|
24
|
+
in srgb,
|
|
25
|
+
${ExpansionPanelToken.disabledTextColor} ${ExpansionPanelToken.disabledTextOpacity},
|
|
26
|
+
transparent
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
:host(:not([open])) {
|
|
30
|
+
box-shadow: ${ExpansionPanelToken.collapsedElevation};
|
|
31
|
+
border-radius: ${ExpansionPanelToken.collapsedShape};
|
|
32
|
+
}
|
|
33
|
+
:host([open]) {
|
|
34
|
+
box-shadow: ${ExpansionPanelToken.expandedElevation};
|
|
35
|
+
border-radius: ${ExpansionPanelToken.expandedShape};
|
|
36
|
+
margin-block: ${ExpansionPanelToken.expandedSpace};
|
|
37
|
+
}
|
|
38
|
+
.toggle {
|
|
39
|
+
display: flex;
|
|
40
|
+
align-items: center;
|
|
41
|
+
justify-content: center;
|
|
42
|
+
font-size: ${ExpansionHeaderToken.toggleIconSize};
|
|
43
|
+
}
|
|
44
|
+
::slotted([slot="toggle-icon"]) {
|
|
45
|
+
font-size: inherit !important;
|
|
46
|
+
flex: none;
|
|
47
|
+
}
|
|
48
|
+
.toggle svg,
|
|
49
|
+
::slotted(svg[slot="toggle-icon"]) {
|
|
50
|
+
width: 1em;
|
|
51
|
+
height: 1em;
|
|
52
|
+
}
|
|
53
|
+
.content {
|
|
54
|
+
padding: ${ExpansionPanelToken.contentPadding};
|
|
55
|
+
}
|
|
56
|
+
::slotted([slot="actions"]) {
|
|
57
|
+
flex: none;
|
|
58
|
+
display: flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
column-gap: ${ExpansionPanelToken.actionsSpacing};
|
|
61
|
+
padding: ${ExpansionPanelToken.actionsPadding};
|
|
62
|
+
border-top-style: solid;
|
|
63
|
+
border-top-width: ${ExpansionPanelToken.actionsDividerThickness};
|
|
64
|
+
border-top-color: ${ExpansionPanelToken.actionsDividerColor};
|
|
65
|
+
}
|
|
66
|
+
::slotted([slot="actions"][end]) {
|
|
67
|
+
justify-content: flex-end;
|
|
68
|
+
}
|
|
69
|
+
@media (prefers-reduced-motion) {
|
|
70
|
+
:host {
|
|
71
|
+
transition: none;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
@media (forced-colors: active) {
|
|
75
|
+
:host {
|
|
76
|
+
border: 1px solid CanvasText;
|
|
77
|
+
}
|
|
78
|
+
:host(:disabled) {
|
|
79
|
+
color: GrayText;
|
|
80
|
+
}
|
|
81
|
+
::slotted([slot="actions"]) {
|
|
82
|
+
border-top-color: GrayText;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
`;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { unsafeCSS } from "lit";
|
|
2
|
+
|
|
3
|
+
import { DesignToken } from "@m3e/core";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Component design tokens for `M3eExpansionPanelElement`.
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export const ExpansionPanelToken = {
|
|
10
|
+
textColor: unsafeCSS(`var(--m3e-expansion-panel-text-color, ${DesignToken.color.onSurface})`),
|
|
11
|
+
disabledTextColor: unsafeCSS(`var(--m3e-expansion-panel-disabled-text-color, ${DesignToken.color.onSurface})`),
|
|
12
|
+
disabledTextOpacity: unsafeCSS(`var(--m3e-expansion-panel-disabled-text-opacity, 38%)`),
|
|
13
|
+
containerColor: unsafeCSS("var(--m3e-expansion-panel-container-color)"),
|
|
14
|
+
collapsedElevation: unsafeCSS("var(--m3e-expansion-panel-elevation)"),
|
|
15
|
+
collapsedShape: unsafeCSS("var(--m3e-expansion-panel-shape)"),
|
|
16
|
+
expandedElevation: unsafeCSS("var(--m3e-expansion-panel-open-elevation, var(--m3e-expansion-panel-elevation))"),
|
|
17
|
+
expandedShape: unsafeCSS("var(--m3e-expansion-panel-open-shape, var(--m3e-expansion-panel-shape))"),
|
|
18
|
+
expandedSpace: unsafeCSS("var(--_expansion-panel-open-spacing)"),
|
|
19
|
+
contentPadding: unsafeCSS("var(--m3e-expansion-panel-content-padding, 0 1.5rem 1rem 1.5rem)"),
|
|
20
|
+
actionsSpacing: unsafeCSS("var(--m3e-expansion-panel-actions-spacing, 0.5rem)"),
|
|
21
|
+
actionsPadding: unsafeCSS("var(--m3e-expansion-panel-actions-padding, 1rem 1.5rem 1rem 1.5rem)"),
|
|
22
|
+
actionsDividerThickness: unsafeCSS(
|
|
23
|
+
"var(--m3e-expansion-panel-actions-divider-thickness, var(--m3e-divider-thickness, 1px))"
|
|
24
|
+
),
|
|
25
|
+
actionsDividerColor: unsafeCSS(
|
|
26
|
+
`var(--m3e-expansion-panel-actions-divider-color, var(--m3e-divider-color, ${DesignToken.color.outlineVariant}))`
|
|
27
|
+
),
|
|
28
|
+
} as const;
|