@redvars/peacock 3.9.0 → 3.9.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/dist/code-highlighter.js +1 -4
- package/dist/code-highlighter.js.map +1 -1
- package/dist/custom-elements-jsdocs.json +39 -223
- package/dist/custom-elements.json +391 -2205
- package/dist/elevation.js +55 -2
- package/dist/elevation.js.map +1 -1
- package/dist/flow.js +762 -0
- package/dist/flow.js.map +1 -0
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/loader.js +2 -9
- package/dist/loader.js.map +1 -1
- package/dist/menu-item.js +144 -63
- package/dist/menu-item.js.map +1 -1
- package/dist/menu.js +161 -73
- package/dist/menu.js.map +1 -1
- package/dist/src/flow/flow.d.ts +102 -0
- package/dist/src/flow/index.d.ts +2 -0
- package/dist/src/index.d.ts +2 -4
- package/dist/src/menu/menu/menu.d.ts +10 -9
- package/dist/src/menu/menu-item/menu-item.d.ts +1 -3
- package/dist/src/timeline/timeline.d.ts +0 -1
- package/dist/sub-menu.js +28 -1
- package/dist/sub-menu.js.map +1 -1
- package/dist/timeline-item.js +22 -34
- package/dist/timeline-item.js.map +1 -1
- package/dist/timeline.js +1 -18
- package/dist/timeline.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/readme.md +2 -2
- package/src/code-highlighter/code-highlighter.scss +1 -7
- package/src/elevation/demo/index.html +52 -0
- package/src/elevation/elevation.scss +52 -5
- package/src/elevation/elevation.ts +8 -1
- package/src/flow/flow.scss +195 -0
- package/src/flow/flow.ts +683 -0
- package/src/flow/index.ts +2 -0
- package/src/index.ts +2 -16
- package/src/loader.ts +2 -9
- package/src/menu/menu/copy-component-files.mjs +47 -0
- package/src/menu/menu/menu.scss +55 -17
- package/src/menu/menu/menu.ts +155 -84
- package/src/menu/menu-item/menu-item-colors.scss +3 -3
- package/src/menu/menu-item/menu-item.scss +118 -24
- package/src/menu/menu-item/menu-item.ts +61 -55
- package/src/menu/sub-menu/sub-menu.scss +30 -1
- package/src/timeline/timeline-item.scss +21 -31
- package/src/timeline/timeline-item.ts +2 -1
- package/src/timeline/timeline.scss +0 -10
- package/src/timeline/timeline.ts +0 -2
- package/dist/canvas.js +0 -385
- package/dist/canvas.js.map +0 -1
- package/dist/flow-designer-node-CGSm6cUH.js +0 -553
- package/dist/flow-designer-node-CGSm6cUH.js.map +0 -1
- package/dist/flow-designer-node.js +0 -4
- package/dist/flow-designer-node.js.map +0 -1
- package/dist/flow-designer.js +0 -1417
- package/dist/flow-designer.js.map +0 -1
- package/dist/src/canvas/canvas.d.ts +0 -92
- package/dist/src/canvas/index.d.ts +0 -2
- package/dist/src/flow-designer/commands.d.ts +0 -66
- package/dist/src/flow-designer/flow-designer-node.d.ts +0 -46
- package/dist/src/flow-designer/flow-designer.d.ts +0 -133
- package/dist/src/flow-designer/index.d.ts +0 -7
- package/dist/src/flow-designer/layout.d.ts +0 -30
- package/dist/src/flow-designer/types.d.ts +0 -142
- package/dist/src/flow-designer/validation.d.ts +0 -43
- package/dist/src/flow-designer/workflow-utils.d.ts +0 -40
- package/src/canvas/canvas.scss +0 -72
- package/src/canvas/canvas.ts +0 -413
- package/src/canvas/index.ts +0 -2
- package/src/flow-designer/DEMO.md +0 -239
- package/src/flow-designer/commands.ts +0 -278
- package/src/flow-designer/flow-designer-node.ts +0 -172
- package/src/flow-designer/flow-designer.scss +0 -457
- package/src/flow-designer/flow-designer.ts +0 -611
- package/src/flow-designer/index.ts +0 -41
- package/src/flow-designer/layout.ts +0 -357
- package/src/flow-designer/types.ts +0 -166
- package/src/flow-designer/validation.ts +0 -284
- package/src/flow-designer/workflow-utils.ts +0 -282
- /package/dist/test/{flow-designer.test.d.ts → elevation.test.d.ts} +0 -0
|
@@ -6,10 +6,13 @@
|
|
|
6
6
|
outline: none;
|
|
7
7
|
position: relative;
|
|
8
8
|
|
|
9
|
-
--menu-item-container-shape-start-start:
|
|
10
|
-
--menu-item-container-shape-start-end:
|
|
11
|
-
--menu-item-container-shape-end-start:
|
|
12
|
-
--menu-item-container-shape-end-end:
|
|
9
|
+
--menu-item-backdrop-container-shape-start-start: none;
|
|
10
|
+
--menu-item-backdrop-container-shape-start-end: none;
|
|
11
|
+
--menu-item-backdrop-container-shape-end-start: none;
|
|
12
|
+
--menu-item-backdrop-container-shape-end-end: none;
|
|
13
|
+
|
|
14
|
+
--menu-item-backdrop-elevation-level-block-start: none;
|
|
15
|
+
--menu-item-backdrop-elevation-level-block-end: none;
|
|
13
16
|
}
|
|
14
17
|
|
|
15
18
|
/*
|
|
@@ -29,10 +32,50 @@
|
|
|
29
32
|
padding-top: 2px;
|
|
30
33
|
padding-inline: var(--spacing-050);
|
|
31
34
|
|
|
32
|
-
.menu-item-background {
|
|
35
|
+
.menu-item-backdrop-background {
|
|
33
36
|
background-color: var(--menu-item-container-color);
|
|
34
37
|
position: absolute;
|
|
35
38
|
inset: 0px;
|
|
39
|
+
border-start-start-radius: var(
|
|
40
|
+
--menu-item-backdrop-container-shape-start-start
|
|
41
|
+
);
|
|
42
|
+
border-start-end-radius: var(
|
|
43
|
+
--menu-item-backdrop-container-shape-start-end
|
|
44
|
+
);
|
|
45
|
+
border-end-start-radius: var(
|
|
46
|
+
--menu-item-backdrop-container-shape-end-start
|
|
47
|
+
);
|
|
48
|
+
border-end-end-radius: var(--menu-item-backdrop-container-shape-end-end);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.menu-item-backdrop-elevation {
|
|
52
|
+
--elevation-container-shape-start-start: var(
|
|
53
|
+
--menu-item-backdrop-container-shape-start-start
|
|
54
|
+
);
|
|
55
|
+
--elevation-container-shape-start-end: var(
|
|
56
|
+
--menu-item-backdrop-container-shape-start-end
|
|
57
|
+
);
|
|
58
|
+
--elevation-container-shape-end-start: var(
|
|
59
|
+
--menu-item-backdrop-container-shape-end-start
|
|
60
|
+
);
|
|
61
|
+
--elevation-container-shape-end-end: var(
|
|
62
|
+
--menu-item-backdrop-container-shape-end-end
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
--elevation-level-block-start: var(
|
|
66
|
+
--menu-item-backdrop-elevation-level-block-start
|
|
67
|
+
);
|
|
68
|
+
--elevation-level-block-end: var(
|
|
69
|
+
--menu-item-backdrop-elevation-level-block-end
|
|
70
|
+
);
|
|
71
|
+
--elevation-level-inline-start: var(
|
|
72
|
+
--menu-item-backdrop-elevation-level-inline-start,
|
|
73
|
+
1
|
|
74
|
+
);
|
|
75
|
+
--elevation-level-inline-end: var(
|
|
76
|
+
--menu-item-backdrop-elevation-level-inline-end,
|
|
77
|
+
1
|
|
78
|
+
);
|
|
36
79
|
}
|
|
37
80
|
|
|
38
81
|
.menu-item-content {
|
|
@@ -57,24 +100,37 @@
|
|
|
57
100
|
--item-label-line-height: var(--typography-label-large-line-height);
|
|
58
101
|
--item-label-letter-spacing: var(--typography-label-large-letter-spacing);
|
|
59
102
|
|
|
60
|
-
--item-label-text-color: var(--
|
|
61
|
-
--item-leading-trailing-color: var(--
|
|
62
|
-
--item-supporting-text-color: var(--
|
|
63
|
-
--item-
|
|
64
|
-
--item-label-text-selected-color: var(--menu-item-label-selected-color);
|
|
65
|
-
--item-icon-size: var(--button-icon-size, var(--_button-icon-size));
|
|
103
|
+
--item-label-text-color: var(--private-item-label-text-color);
|
|
104
|
+
--item-leading-trailing-color: var(--private-item-label-text-color);
|
|
105
|
+
--item-supporting-text-color: var(--private-item-label-text-color);
|
|
106
|
+
--item-icon-size: var(--menu-item-icon-size, var(--private-item-icon-size));
|
|
66
107
|
|
|
67
108
|
.background {
|
|
68
|
-
background-color: var(--
|
|
109
|
+
background-color: var(--private-item-container-color);
|
|
69
110
|
opacity: var(--_container-opacity, 1);
|
|
70
111
|
border-radius: var(--shape-corner-medium);
|
|
112
|
+
|
|
113
|
+
border-start-start-radius: var(
|
|
114
|
+
--private-item-container-shape-start-start
|
|
115
|
+
);
|
|
116
|
+
border-start-end-radius: var(--private-item-container-shape-start-end);
|
|
117
|
+
border-end-start-radius: var(--private-item-container-shape-end-start);
|
|
118
|
+
border-end-end-radius: var(--private-item-container-shape-end-end);
|
|
71
119
|
}
|
|
72
120
|
|
|
73
121
|
.focus-ring {
|
|
74
|
-
--focus-ring-container-shape-start-start: var(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
--focus-ring-container-shape-
|
|
122
|
+
--focus-ring-container-shape-start-start: var(
|
|
123
|
+
--private-item-container-shape-start-start
|
|
124
|
+
);
|
|
125
|
+
--focus-ring-container-shape-start-end: var(
|
|
126
|
+
--private-item-container-shape-start-start
|
|
127
|
+
);
|
|
128
|
+
--focus-ring-container-shape-end-start: var(
|
|
129
|
+
--private-item-container-shape-start-start
|
|
130
|
+
);
|
|
131
|
+
--focus-ring-container-shape-end-end: var(
|
|
132
|
+
--private-item-container-shape-start-start
|
|
133
|
+
);
|
|
78
134
|
z-index: 2;
|
|
79
135
|
--focus-ring-inset: 0px;
|
|
80
136
|
}
|
|
@@ -88,17 +144,55 @@
|
|
|
88
144
|
.skeleton {
|
|
89
145
|
z-index: 2;
|
|
90
146
|
|
|
91
|
-
--skeleton-container-shape-start-start: var(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
--skeleton-container-shape-
|
|
147
|
+
--skeleton-container-shape-start-start: var(
|
|
148
|
+
--private-item-container-shape-start-start
|
|
149
|
+
);
|
|
150
|
+
--skeleton-container-shape-start-end: var(
|
|
151
|
+
--private-item-container-shape-start-end
|
|
152
|
+
);
|
|
153
|
+
--skeleton-container-shape-end-start: var(
|
|
154
|
+
--private-item-container-shape-end-start
|
|
155
|
+
);
|
|
156
|
+
--skeleton-container-shape-end-end: var(
|
|
157
|
+
--private-item-container-shape-end-end
|
|
158
|
+
);
|
|
95
159
|
}
|
|
96
160
|
}
|
|
97
161
|
}
|
|
98
162
|
|
|
163
|
+
:host {
|
|
164
|
+
--private-item-container-color: var(--menu-item-container-color);
|
|
165
|
+
--private-item-label-text-color: var(--menu-item-label-color);
|
|
166
|
+
--private-item-container-shape-start-start: var(--shape-corner-medium);
|
|
167
|
+
--private-item-container-shape-start-end: var(--shape-corner-medium);
|
|
168
|
+
--private-item-container-shape-end-start: var(--shape-corner-medium);
|
|
169
|
+
--private-item-container-shape-end-end: var(--shape-corner-medium);
|
|
170
|
+
}
|
|
171
|
+
|
|
99
172
|
:host([selected]) {
|
|
100
|
-
--
|
|
101
|
-
--
|
|
102
|
-
--
|
|
103
|
-
--
|
|
173
|
+
--private-item-container-color: var(--menu-item-container-selected-color);
|
|
174
|
+
--private-item-label-text-color: var(--menu-item-label-selected-color);
|
|
175
|
+
--private-item-container-shape-start-start: var(--shape-corner-large);
|
|
176
|
+
--private-item-container-shape-start-end: var(--shape-corner-large);
|
|
177
|
+
--private-item-container-shape-end-start: var(--shape-corner-large);
|
|
178
|
+
--private-item-container-shape-end-end: var(--shape-corner-large);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
:host([disabled]),
|
|
182
|
+
:host([soft-disabled]) {
|
|
183
|
+
cursor: not-allowed;
|
|
184
|
+
--private-item-label-text-color: var(--color-on-surface);
|
|
185
|
+
--_container-opacity: 0.12;
|
|
186
|
+
|
|
187
|
+
.ripple {
|
|
188
|
+
display: none;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
:host-context([variant='standard']) {
|
|
193
|
+
--menu-item-container-color: var(--color-surface-container);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
:host-context([variant='vibrant']) {
|
|
197
|
+
--menu-item-container-color: var(--color-tertiary-container);
|
|
104
198
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { html, LitElement, nothing } from
|
|
2
|
-
import { property, query } from
|
|
3
|
-
import { ifDefined } from
|
|
4
|
-
import styles from
|
|
5
|
-
import colorStyles from
|
|
6
|
-
import NativeButtonMixin from
|
|
7
|
-
import NativeHyperlinkMixin from
|
|
8
|
-
import { isLink } from
|
|
9
|
-
import IndividualComponent from
|
|
10
|
-
import { classMap } from
|
|
1
|
+
import { html, LitElement, nothing } from "lit";
|
|
2
|
+
import { property, query } from "lit/decorators.js";
|
|
3
|
+
import { ifDefined } from "lit/directives/if-defined.js";
|
|
4
|
+
import styles from "./menu-item.scss";
|
|
5
|
+
import colorStyles from "./menu-item-colors.scss";
|
|
6
|
+
import NativeButtonMixin from "@/__internal/mixins/NativeButtonMixin.js";
|
|
7
|
+
import NativeHyperlinkMixin from "@/__internal/mixins/NativeHyperlinkMixin.js";
|
|
8
|
+
import { isLink } from "@/__internal/utils/is-link.js";
|
|
9
|
+
import IndividualComponent from "@/IndividualComponent.js";
|
|
10
|
+
import { classMap } from "lit/directives/class-map.js";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* @label Menu Item
|
|
@@ -32,27 +32,29 @@ export class MenuItem extends NativeButtonMixin(
|
|
|
32
32
|
// ── Properties ───────────────────────────────────────────────────────────
|
|
33
33
|
|
|
34
34
|
/** The value associated with this menu item, used to identify it on selection. */
|
|
35
|
-
@property({ type: String })
|
|
35
|
+
@property({ type: String })
|
|
36
|
+
value = "";
|
|
36
37
|
|
|
37
38
|
/** Whether this menu item is currently selected/highlighted. */
|
|
38
|
-
@property({ type: Boolean, reflect: true })
|
|
39
|
+
@property({ type: Boolean, reflect: true })
|
|
40
|
+
selected = false;
|
|
39
41
|
|
|
40
42
|
/** When true, the menu stays open after this item is activated. */
|
|
41
|
-
@property({ type: Boolean, attribute:
|
|
43
|
+
@property({ type: Boolean, attribute: "keep-open" })
|
|
44
|
+
keepOpen = false;
|
|
42
45
|
|
|
43
46
|
/** When true, indicates this item has an associated submenu. */
|
|
44
|
-
@property({ type: Boolean, attribute:
|
|
47
|
+
@property({ type: Boolean, attribute: "has-submenu" })
|
|
48
|
+
hasSubmenu = false;
|
|
45
49
|
|
|
46
50
|
/** Whether the associated submenu is currently open. */
|
|
47
|
-
@property({ type: Boolean, attribute:
|
|
48
|
-
|
|
49
|
-
/** Visual variant of the menu item. */
|
|
50
|
-
@property({ type: String, reflect: true }) variant: 'standard' | 'vibrant' =
|
|
51
|
-
'standard';
|
|
51
|
+
@property({ type: Boolean, attribute: "submenu-open" })
|
|
52
|
+
submenuOpen = false;
|
|
52
53
|
|
|
53
54
|
// ── Queries ───────────────────────────────────────────────────────────────
|
|
54
55
|
|
|
55
|
-
@query(
|
|
56
|
+
@query("#menu-item")
|
|
57
|
+
readonly itemElement!: HTMLElement | null;
|
|
56
58
|
|
|
57
59
|
// ── Private fields ────────────────────────────────────────────────────────
|
|
58
60
|
|
|
@@ -72,7 +74,7 @@ export class MenuItem extends NativeButtonMixin(
|
|
|
72
74
|
childList: true,
|
|
73
75
|
characterData: true,
|
|
74
76
|
attributes: true,
|
|
75
|
-
attributeFilter: [
|
|
77
|
+
attributeFilter: ["slot"],
|
|
76
78
|
});
|
|
77
79
|
}
|
|
78
80
|
|
|
@@ -99,56 +101,58 @@ export class MenuItem extends NativeButtonMixin(
|
|
|
99
101
|
}
|
|
100
102
|
|
|
101
103
|
private _hasNamedSlot(...names: string[]) {
|
|
102
|
-
return names.some(name =>
|
|
104
|
+
return names.some((name) =>
|
|
103
105
|
Array.from(this.children).some(
|
|
104
|
-
child => child.getAttribute(
|
|
105
|
-
)
|
|
106
|
+
(child) => child.getAttribute("slot") === name,
|
|
107
|
+
)
|
|
106
108
|
);
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
private _hasDefaultSlot() {
|
|
110
|
-
return Array.from(this.childNodes).some(node => {
|
|
112
|
+
return Array.from(this.childNodes).some((node) => {
|
|
111
113
|
if (node.nodeType === Node.TEXT_NODE) {
|
|
112
114
|
return Boolean(node.textContent?.trim());
|
|
113
115
|
}
|
|
114
116
|
|
|
115
117
|
return (
|
|
116
118
|
node.nodeType === Node.ELEMENT_NODE &&
|
|
117
|
-
!(node as Element).hasAttribute(
|
|
119
|
+
!(node as Element).hasAttribute("slot")
|
|
118
120
|
);
|
|
119
121
|
});
|
|
120
122
|
}
|
|
121
123
|
|
|
122
124
|
render() {
|
|
123
125
|
const isElementLink = isLink(this);
|
|
124
|
-
const controls = this.getAttribute(
|
|
126
|
+
const controls = this.getAttribute("aria-controls");
|
|
125
127
|
|
|
126
128
|
const cssClasses = {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
129
|
+
"menu-item": true,
|
|
130
|
+
"native-button": !isElementLink,
|
|
131
|
+
"native-link": isElementLink,
|
|
130
132
|
};
|
|
131
133
|
|
|
132
134
|
if (isElementLink) {
|
|
133
135
|
return html`
|
|
134
136
|
<a
|
|
135
137
|
id="menu-item"
|
|
136
|
-
class
|
|
138
|
+
class="${classMap(cssClasses)}"
|
|
137
139
|
role="menuitem"
|
|
138
|
-
href
|
|
139
|
-
target
|
|
140
|
-
?rel
|
|
141
|
-
?download
|
|
142
|
-
tabindex
|
|
143
|
-
?selected
|
|
144
|
-
aria-disabled
|
|
145
|
-
|
|
146
|
-
|
|
140
|
+
href="${ifDefined(this.href)}"
|
|
141
|
+
target="${this.target}"
|
|
142
|
+
?rel="${this.rel}"
|
|
143
|
+
?download="${this.download}"
|
|
144
|
+
tabindex="${this.disabled ? "-1" : String(this.tabIndex)}"
|
|
145
|
+
?selected="${this.selected}"
|
|
146
|
+
aria-disabled="${this.disabled || this.softDisabled
|
|
147
|
+
? "true"
|
|
148
|
+
: nothing}"
|
|
149
|
+
aria-haspopup="${this.hasSubmenu ? "menu" : nothing}"
|
|
150
|
+
aria-controls="${ifDefined(
|
|
147
151
|
this.hasSubmenu && controls ? controls : undefined,
|
|
148
|
-
)}
|
|
149
|
-
aria-expanded
|
|
152
|
+
)}"
|
|
153
|
+
aria-expanded="${ifDefined(
|
|
150
154
|
this.hasSubmenu ? String(this.submenuOpen) : undefined,
|
|
151
|
-
)}
|
|
155
|
+
)}"
|
|
152
156
|
>
|
|
153
157
|
${this.renderContent()}
|
|
154
158
|
</a>
|
|
@@ -158,20 +162,20 @@ export class MenuItem extends NativeButtonMixin(
|
|
|
158
162
|
return html`
|
|
159
163
|
<button
|
|
160
164
|
id="menu-item"
|
|
161
|
-
class
|
|
165
|
+
class="${classMap(cssClasses)}"
|
|
162
166
|
role="menuitem"
|
|
163
|
-
type
|
|
164
|
-
?disabled
|
|
165
|
-
tabindex
|
|
166
|
-
?selected
|
|
167
|
-
aria-disabled
|
|
168
|
-
aria-haspopup
|
|
169
|
-
aria-controls
|
|
167
|
+
type="${this.htmlType}"
|
|
168
|
+
?disabled="${this.disabled}"
|
|
169
|
+
tabindex="${String(this.tabIndex)}"
|
|
170
|
+
?selected="${this.selected}"
|
|
171
|
+
aria-disabled="${this.softDisabled ? "true" : nothing}"
|
|
172
|
+
aria-haspopup="${this.hasSubmenu ? "menu" : nothing}"
|
|
173
|
+
aria-controls="${ifDefined(
|
|
170
174
|
this.hasSubmenu && controls ? controls : undefined,
|
|
171
|
-
)}
|
|
172
|
-
aria-expanded
|
|
175
|
+
)}"
|
|
176
|
+
aria-expanded="${ifDefined(
|
|
173
177
|
this.hasSubmenu ? String(this.submenuOpen) : undefined,
|
|
174
|
-
)}
|
|
178
|
+
)}"
|
|
175
179
|
>
|
|
176
180
|
${this.renderContent()}
|
|
177
181
|
</button>
|
|
@@ -180,7 +184,9 @@ export class MenuItem extends NativeButtonMixin(
|
|
|
180
184
|
|
|
181
185
|
renderContent() {
|
|
182
186
|
return html`
|
|
183
|
-
<div class="menu-item-background"></div>
|
|
187
|
+
<div class="menu-item-backdrop-background"></div>
|
|
188
|
+
<wc-elevation class="menu-item-backdrop-elevation"></wc-elevation>
|
|
189
|
+
|
|
184
190
|
<wc-item class="menu-item-content">
|
|
185
191
|
<wc-focus-ring
|
|
186
192
|
class="focus-ring"
|
|
@@ -4,8 +4,37 @@
|
|
|
4
4
|
|
|
5
5
|
:host {
|
|
6
6
|
display: contents;
|
|
7
|
+
--sub-menu-item-backdrop-container-shape-start-start: none;
|
|
8
|
+
--sub-menu-item-backdrop-container-shape-start-end: none;
|
|
9
|
+
--sub-menu-item-backdrop-container-shape-end-start: none;
|
|
10
|
+
--sub-menu-item-backdrop-container-shape-end-end: none;
|
|
11
|
+
|
|
12
|
+
--sub-menu-item-backdrop-elevation-level-block-start: none;
|
|
13
|
+
--sub-menu-item-backdrop-elevation-level-block-end: none;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
slot[name='item']::slotted(wc-menu-item) {
|
|
17
|
+
--menu-item-backdrop-container-shape-start-start: var(
|
|
18
|
+
--sub-menu-item-backdrop-container-shape-start-start
|
|
19
|
+
);
|
|
20
|
+
--menu-item-backdrop-container-shape-start-end: var(
|
|
21
|
+
--sub-menu-item-backdrop-container-shape-start-end
|
|
22
|
+
);
|
|
23
|
+
--menu-item-backdrop-container-shape-end-start: var(
|
|
24
|
+
--sub-menu-item-backdrop-container-shape-end-start
|
|
25
|
+
);
|
|
26
|
+
--menu-item-backdrop-container-shape-end-end: var(
|
|
27
|
+
--sub-menu-item-backdrop-container-shape-end-end
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
--menu-item-backdrop-elevation-level-block-start: var(
|
|
31
|
+
--sub-menu-item-backdrop-elevation-level-block-start
|
|
32
|
+
);
|
|
33
|
+
--menu-item-backdrop-elevation-level-block-end: var(
|
|
34
|
+
--sub-menu-item-backdrop-elevation-level-block-end
|
|
35
|
+
);
|
|
7
36
|
}
|
|
8
37
|
|
|
9
|
-
slot::slotted(wc-menu) {
|
|
38
|
+
slot[name='menu']::slotted(wc-menu) {
|
|
10
39
|
display: contents;
|
|
11
40
|
}
|
|
@@ -9,14 +9,6 @@
|
|
|
9
9
|
align-items: stretch;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
:host-context([orientation='horizontal']) .timeline-item {
|
|
13
|
-
display: grid;
|
|
14
|
-
grid-template-rows: auto 1fr;
|
|
15
|
-
grid-template-columns: 1fr;
|
|
16
|
-
gap: 0.75rem;
|
|
17
|
-
align-items: stretch;
|
|
18
|
-
min-height: auto;
|
|
19
|
-
}
|
|
20
12
|
|
|
21
13
|
.marker-column {
|
|
22
14
|
display: flex;
|
|
@@ -25,13 +17,6 @@
|
|
|
25
17
|
width: var(--timeline-dot-size, 2rem);
|
|
26
18
|
}
|
|
27
19
|
|
|
28
|
-
:host-context([orientation='horizontal']) .marker-column {
|
|
29
|
-
display: flex;
|
|
30
|
-
flex-direction: row;
|
|
31
|
-
align-items: center;
|
|
32
|
-
width: auto;
|
|
33
|
-
height: var(--timeline-dot-size, 2rem);
|
|
34
|
-
}
|
|
35
20
|
|
|
36
21
|
.marker {
|
|
37
22
|
position: relative;
|
|
@@ -65,42 +50,47 @@
|
|
|
65
50
|
--progress-height: calc(var(--timeline-dot-size, 2rem) * 0.6);
|
|
66
51
|
}
|
|
67
52
|
|
|
68
|
-
/* Flexible connector line that stretches to fill remaining height */
|
|
53
|
+
/* Flexible connector line that stretches to fill remaining height/width */
|
|
69
54
|
.connector {
|
|
70
|
-
flex: 1;
|
|
71
|
-
min-height: 2rem;
|
|
72
55
|
width: 2px;
|
|
73
56
|
background: var(--timeline-line-color, var(--color-outline));
|
|
74
|
-
margin: auto;
|
|
75
|
-
margin-block: .25rem;
|
|
57
|
+
margin-inline: auto;
|
|
76
58
|
}
|
|
77
59
|
|
|
78
|
-
|
|
79
|
-
|
|
60
|
+
.connector--top {
|
|
61
|
+
height: var(--timeline-connector-top-height, 0.75rem);
|
|
62
|
+
flex-shrink: 0;
|
|
80
63
|
}
|
|
81
64
|
|
|
82
|
-
|
|
83
|
-
:host-context([orientation='horizontal']) .connector {
|
|
65
|
+
.connector--bottom {
|
|
84
66
|
flex: 1;
|
|
85
|
-
min-
|
|
86
|
-
width: auto;
|
|
87
|
-
height: 2px;
|
|
88
|
-
background: var(--timeline-line-color, var(--color-outline));
|
|
89
|
-
margin: auto;
|
|
90
|
-
margin-inline: .25rem;
|
|
67
|
+
min-height: 1.5rem;
|
|
91
68
|
}
|
|
92
69
|
|
|
93
|
-
:host
|
|
70
|
+
:host(:first-child) .connector--top {
|
|
71
|
+
visibility: hidden;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
:host(:last-child) .connector--bottom {
|
|
94
75
|
display: none;
|
|
95
76
|
}
|
|
96
77
|
|
|
97
78
|
|
|
79
|
+
|
|
98
80
|
.content {
|
|
99
81
|
display: flex;
|
|
100
82
|
flex-direction: column;
|
|
101
83
|
gap: 0.25rem;
|
|
102
84
|
}
|
|
103
85
|
|
|
86
|
+
.headline {
|
|
87
|
+
padding-top: var(--timeline-connector-top-height, 0.75rem);
|
|
88
|
+
min-height: calc(var(--timeline-dot-size, 2rem) + var(--timeline-connector-top-height, 0.75rem));
|
|
89
|
+
display: flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
box-sizing: border-box;
|
|
92
|
+
}
|
|
93
|
+
|
|
104
94
|
|
|
105
95
|
.description {
|
|
106
96
|
color: var(--timeline-description-color, var(--color-on-surface-variant));
|
|
@@ -36,6 +36,7 @@ export class TimelineItem extends LitElement {
|
|
|
36
36
|
return html`
|
|
37
37
|
<div class="timeline-item">
|
|
38
38
|
<div class="marker-column">
|
|
39
|
+
<div class="connector connector--top"></div>
|
|
39
40
|
<div class="marker">
|
|
40
41
|
<div class="marker-dot">
|
|
41
42
|
${this.loading
|
|
@@ -47,7 +48,7 @@ export class TimelineItem extends LitElement {
|
|
|
47
48
|
: html`<slot name="dot"></slot>`}
|
|
48
49
|
</div>
|
|
49
50
|
</div>
|
|
50
|
-
<div class="connector"></div>
|
|
51
|
+
<div class="connector connector--bottom"></div>
|
|
51
52
|
</div>
|
|
52
53
|
|
|
53
54
|
<div class="content">
|
|
@@ -9,13 +9,3 @@
|
|
|
9
9
|
padding-left: calc(var(--timeline-dot-size, 2rem) / 2);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
:host([orientation='horizontal']) .timeline {
|
|
13
|
-
display: grid;
|
|
14
|
-
gap: 0;
|
|
15
|
-
position: relative;
|
|
16
|
-
padding-left: 0;
|
|
17
|
-
padding-top: calc(var(--timeline-dot-size, 2rem) / 2);
|
|
18
|
-
grid-auto-flow: column;
|
|
19
|
-
grid-template-rows: 1fr;
|
|
20
|
-
}
|
|
21
|
-
|
package/src/timeline/timeline.ts
CHANGED
|
@@ -28,8 +28,6 @@ export class Timeline extends LitElement {
|
|
|
28
28
|
|
|
29
29
|
static Item = TimelineItem;
|
|
30
30
|
|
|
31
|
-
@property({ type: String, reflect: true }) orientation: 'vertical' | 'horizontal' = 'vertical';
|
|
32
|
-
|
|
33
31
|
connectedCallback() {
|
|
34
32
|
super.connectedCallback();
|
|
35
33
|
if (!this.hasAttribute('role')) {
|