@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.
Files changed (48) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +175 -0
  3. package/cem.config.mjs +16 -0
  4. package/demo/index.html +60 -0
  5. package/dist/css-custom-data.json +172 -0
  6. package/dist/custom-elements.json +787 -0
  7. package/dist/html-custom-data.json +72 -0
  8. package/dist/index.js +690 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/index.min.js +248 -0
  11. package/dist/index.min.js.map +1 -0
  12. package/dist/src/AccordionElement.d.ts +56 -0
  13. package/dist/src/AccordionElement.d.ts.map +1 -0
  14. package/dist/src/ExpansionHeaderElement.d.ts +60 -0
  15. package/dist/src/ExpansionHeaderElement.d.ts.map +1 -0
  16. package/dist/src/ExpansionPanelElement.d.ts +121 -0
  17. package/dist/src/ExpansionPanelElement.d.ts.map +1 -0
  18. package/dist/src/ExpansionToggleDirection.d.ts +3 -0
  19. package/dist/src/ExpansionToggleDirection.d.ts.map +1 -0
  20. package/dist/src/ExpansionTogglePosition.d.ts +3 -0
  21. package/dist/src/ExpansionTogglePosition.d.ts.map +1 -0
  22. package/dist/src/index.d.ts +6 -0
  23. package/dist/src/index.d.ts.map +1 -0
  24. package/dist/src/styles/ExpansionHeaderStyle.d.ts +6 -0
  25. package/dist/src/styles/ExpansionHeaderStyle.d.ts.map +1 -0
  26. package/dist/src/styles/ExpansionHeaderToken.d.ts +17 -0
  27. package/dist/src/styles/ExpansionHeaderToken.d.ts.map +1 -0
  28. package/dist/src/styles/ExpansionPanelStyle.d.ts +6 -0
  29. package/dist/src/styles/ExpansionPanelStyle.d.ts.map +1 -0
  30. package/dist/src/styles/ExpansionPanelToken.d.ts +21 -0
  31. package/dist/src/styles/ExpansionPanelToken.d.ts.map +1 -0
  32. package/dist/src/styles/index.d.ts +3 -0
  33. package/dist/src/styles/index.d.ts.map +1 -0
  34. package/eslint.config.mjs +13 -0
  35. package/package.json +49 -0
  36. package/rollup.config.js +32 -0
  37. package/src/AccordionElement.ts +115 -0
  38. package/src/ExpansionHeaderElement.ts +99 -0
  39. package/src/ExpansionPanelElement.ts +260 -0
  40. package/src/ExpansionToggleDirection.ts +2 -0
  41. package/src/ExpansionTogglePosition.ts +2 -0
  42. package/src/index.ts +5 -0
  43. package/src/styles/ExpansionHeaderStyle.ts +85 -0
  44. package/src/styles/ExpansionHeaderToken.ts +24 -0
  45. package/src/styles/ExpansionPanelStyle.ts +85 -0
  46. package/src/styles/ExpansionPanelToken.ts +28 -0
  47. package/src/styles/index.ts +2 -0
  48. 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;
@@ -0,0 +1,2 @@
1
+ export * from "./ExpansionHeaderStyle";
2
+ export * from "./ExpansionPanelStyle";
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "rootDir": "./src",
5
+ "outDir": "./dist/src"
6
+ },
7
+ "include": ["src/**/*.ts", "**/*.mjs", "**/*.js"],
8
+ "exclude": []
9
+ }