@limetech/lime-elements 36.0.0-next.8 → 36.0.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/dist/cjs/{dateFormatter-05d80b12.js → dateFormatter-d7a8d40d.js} +1 -1
- package/dist/cjs/lime-elements.cjs.js +1 -1
- package/dist/cjs/limel-button.cjs.entry.js +1 -1
- package/dist/cjs/limel-chip-set.cjs.entry.js +19 -11
- package/dist/cjs/limel-code-editor.cjs.entry.js +1596 -2
- package/dist/cjs/limel-collapsible-section.cjs.entry.js +1 -1
- package/dist/cjs/limel-date-picker.cjs.entry.js +3 -3
- package/dist/cjs/limel-dock-button.cjs.entry.js +32 -6
- package/dist/cjs/limel-dock.cjs.entry.js +6 -7
- package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +2 -2
- package/dist/cjs/limel-form.cjs.entry.js +1 -1
- package/dist/cjs/limel-input-field.cjs.entry.js +13 -6
- package/dist/cjs/limel-menu-list.cjs.entry.js +2 -3
- package/dist/cjs/limel-menu.cjs.entry.js +3 -14
- package/dist/cjs/limel-popover_4.cjs.entry.js +1 -1
- package/dist/cjs/limel-progress-flow-item.cjs.entry.js +1 -1
- package/dist/cjs/limel-select.cjs.entry.js +4 -5
- package/dist/cjs/limel-table.cjs.entry.js +17 -5
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{moment-5cfac5cd.js → moment-d1e35cdc.js} +2 -2
- package/dist/collection/components/button/button.css +11 -7
- package/dist/collection/components/chip-set/chip-set.css +6 -2
- package/dist/collection/components/chip-set/chip-set.js +21 -13
- package/dist/collection/components/code-editor/code-editor.css +153 -1
- package/dist/collection/components/code-editor/code-editor.js +90 -2
- package/dist/collection/components/collapsible-section/collapsible-section.css +8 -7
- package/dist/collection/components/date-picker/date-picker.js +18 -1
- package/dist/collection/components/dock/dock-button/dock-button.css +15 -9
- package/dist/collection/components/dock/dock-button/dock-button.js +61 -24
- package/dist/collection/components/dock/dock.css +7 -3
- package/dist/collection/components/dock/dock.js +53 -7
- package/dist/collection/components/input-field/input-field.js +32 -7
- package/dist/collection/components/menu/menu.js +3 -14
- package/dist/collection/components/menu-list/menu-list.js +5 -25
- package/dist/collection/components/popover-surface/popover-surface.css +5 -4
- package/dist/collection/components/progress-flow/progress-flow-item/progress-flow-item.css +21 -8
- package/dist/collection/components/select/select.css +10 -11
- package/dist/collection/components/select/select.template.js +3 -4
- package/dist/collection/components/table/columns.js +1 -0
- package/dist/collection/components/table/layout.js +8 -0
- package/dist/collection/components/table/table.css +89 -61
- package/dist/collection/components/table/table.js +46 -15
- package/dist/collection/style/internal/codemirror-tooltip.scss +19 -0
- package/dist/collection/style/mixins.scss +11 -0
- package/dist/esm/{dateFormatter-2cad0292.js → dateFormatter-784c3334.js} +1 -1
- package/dist/esm/lime-elements.js +1 -1
- package/dist/esm/limel-button.entry.js +1 -1
- package/dist/esm/limel-chip-set.entry.js +19 -11
- package/dist/esm/limel-code-editor.entry.js +1596 -2
- package/dist/esm/limel-collapsible-section.entry.js +1 -1
- package/dist/esm/limel-date-picker.entry.js +3 -3
- package/dist/esm/limel-dock-button.entry.js +32 -6
- package/dist/esm/limel-dock.entry.js +6 -7
- package/dist/esm/limel-flatpickr-adapter.entry.js +2 -2
- package/dist/esm/limel-form.entry.js +1 -1
- package/dist/esm/limel-input-field.entry.js +13 -6
- package/dist/esm/limel-menu-list.entry.js +2 -3
- package/dist/esm/limel-menu.entry.js +3 -14
- package/dist/esm/limel-popover_4.entry.js +1 -1
- package/dist/esm/limel-progress-flow-item.entry.js +1 -1
- package/dist/esm/limel-select.entry.js +4 -5
- package/dist/esm/limel-table.entry.js +18 -6
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{moment-367e51c5.js → moment-faa8a4a8.js} +2 -2
- package/dist/lime-elements/lime-elements.css +1 -1
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/{p-7e571ec6.entry.js → p-0ba0c38a.entry.js} +1 -1
- package/dist/lime-elements/p-104c89e8.entry.js +1 -0
- package/dist/lime-elements/p-1390fdcb.entry.js +126 -0
- package/dist/lime-elements/{p-1dfccbc5.entry.js → p-2fc4f4ff.entry.js} +1 -1
- package/dist/lime-elements/p-3cf4aae0.entry.js +1 -0
- package/dist/lime-elements/p-4dc07252.entry.js +82 -0
- package/dist/lime-elements/p-5ef52589.entry.js +1 -0
- package/dist/lime-elements/p-653faf47.entry.js +1 -0
- package/dist/lime-elements/{p-d76f896d.js → p-73df4d83.js} +1 -1
- package/dist/lime-elements/p-93f42a32.entry.js +1 -0
- package/dist/lime-elements/p-945afca2.js +3 -0
- package/dist/lime-elements/p-b0e54dc2.entry.js +1 -0
- package/dist/lime-elements/p-c15da26d.entry.js +1 -0
- package/dist/lime-elements/{p-af0ec482.entry.js → p-c544c05b.entry.js} +1 -1
- package/dist/lime-elements/p-c59cbd68.entry.js +1 -0
- package/dist/lime-elements/p-cb8db8c2.entry.js +37 -0
- package/dist/lime-elements/p-f41567a1.entry.js +1 -0
- package/dist/lime-elements/p-f5df4d4f.entry.js +1 -0
- package/dist/lime-elements/style/internal/codemirror-tooltip.scss +19 -0
- package/dist/lime-elements/style/mixins.scss +11 -0
- package/dist/types/components/chip-set/chip-set.d.ts +3 -2
- package/dist/types/components/code-editor/code-editor.d.ts +14 -0
- package/dist/types/components/date-picker/date-picker.d.ts +4 -0
- package/dist/types/components/dock/dock-button/dock-button.d.ts +21 -5
- package/dist/types/components/dock/dock.d.ts +15 -3
- package/dist/types/components/input-field/input-field.d.ts +6 -0
- package/dist/types/components/menu/menu.d.ts +1 -2
- package/dist/types/components/menu-list/menu-list.d.ts +2 -7
- package/dist/types/components/table/layout.d.ts +2 -0
- package/dist/types/components/table/table.d.ts +16 -1
- package/dist/types/components/table/table.types.d.ts +4 -0
- package/dist/types/components.d.ts +71 -15
- package/package.json +5 -4
- package/dist/lime-elements/p-1a2ffe75.entry.js +0 -82
- package/dist/lime-elements/p-1e59114e.entry.js +0 -1
- package/dist/lime-elements/p-3af5f9ad.js +0 -3
- package/dist/lime-elements/p-5ad60e14.entry.js +0 -126
- package/dist/lime-elements/p-64f068a8.entry.js +0 -1
- package/dist/lime-elements/p-6966b5df.entry.js +0 -1
- package/dist/lime-elements/p-722d32e0.entry.js +0 -1
- package/dist/lime-elements/p-75152d89.entry.js +0 -1
- package/dist/lime-elements/p-7ee4b825.entry.js +0 -1
- package/dist/lime-elements/p-97d6c4a6.entry.js +0 -1
- package/dist/lime-elements/p-b18cf477.entry.js +0 -1
- package/dist/lime-elements/p-b95e80c9.entry.js +0 -1
- package/dist/lime-elements/p-bd098a11.entry.js +0 -1
- package/dist/lime-elements/p-d1ee4501.entry.js +0 -37
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Event, h, Prop, State } from '@stencil/core';
|
|
1
|
+
import { Component, Event, h, Prop, State, Watch, } from '@stencil/core';
|
|
2
2
|
import { createRandomString } from '../../../util/random-string';
|
|
3
3
|
/**
|
|
4
4
|
* @private
|
|
@@ -6,17 +6,26 @@ import { createRandomString } from '../../../util/random-string';
|
|
|
6
6
|
export class DockButton {
|
|
7
7
|
constructor() {
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* When the dock is expanded or collapsed, dock items
|
|
10
|
+
* show labels and tooltips as suitable for the layout.
|
|
10
11
|
*/
|
|
11
12
|
this.expanded = false;
|
|
12
13
|
/**
|
|
13
|
-
*
|
|
14
|
+
* When dock is using mobile layout, dock items
|
|
15
|
+
* show labels and tooltips as suitable for the layout.
|
|
14
16
|
*/
|
|
15
17
|
this.useMobileLayout = false;
|
|
18
|
+
/**
|
|
19
|
+
* Indicated whether the popover that renders a component is open.
|
|
20
|
+
*/
|
|
16
21
|
this.isOpen = false;
|
|
17
22
|
this.openPopover = (event) => {
|
|
18
23
|
event.stopPropagation();
|
|
19
24
|
this.isOpen = true;
|
|
25
|
+
this.menuOpen.emit(this.item);
|
|
26
|
+
};
|
|
27
|
+
this.setCustomComponentElement = (element) => {
|
|
28
|
+
this.customComponentElement = element;
|
|
20
29
|
};
|
|
21
30
|
this.onPopoverClose = () => {
|
|
22
31
|
this.isOpen = false;
|
|
@@ -24,7 +33,13 @@ export class DockButton {
|
|
|
24
33
|
};
|
|
25
34
|
this.handleClick = (event) => {
|
|
26
35
|
event.stopPropagation();
|
|
27
|
-
this.
|
|
36
|
+
this.itemSelected.emit(this.item);
|
|
37
|
+
};
|
|
38
|
+
this.focusCustomComponentElement = () => {
|
|
39
|
+
var _a, _b, _c;
|
|
40
|
+
if ((_b = (_a = this.customComponentElement) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.delegatesFocus) {
|
|
41
|
+
(_c = this.customComponentElement) === null || _c === void 0 ? void 0 : _c.focus();
|
|
42
|
+
}
|
|
28
43
|
};
|
|
29
44
|
this.tooltipId = createRandomString();
|
|
30
45
|
}
|
|
@@ -35,12 +50,19 @@ export class DockButton {
|
|
|
35
50
|
}
|
|
36
51
|
return this.renderButton(this.handleClick);
|
|
37
52
|
}
|
|
53
|
+
openWatcher() {
|
|
54
|
+
if (!this.isOpen) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const observer = new IntersectionObserver(this.focusCustomComponentElement);
|
|
58
|
+
observer.observe(this.customComponentElement);
|
|
59
|
+
}
|
|
38
60
|
renderPopover() {
|
|
39
61
|
var _a;
|
|
40
62
|
const CustomComponent = (_a = this.item) === null || _a === void 0 ? void 0 : _a.dockMenu.componentName;
|
|
41
63
|
return (h("limel-popover", { openDirection: this.useMobileLayout ? 'top' : 'right', open: this.isOpen || this.item.dockMenu.menuOpen, onClose: this.onPopoverClose },
|
|
42
64
|
this.renderButton(this.openPopover, 'trigger'),
|
|
43
|
-
h(CustomComponent, Object.assign({}, (this.item.dockMenu.props || {}), { onClose: this.onPopoverClose }))));
|
|
65
|
+
h(CustomComponent, Object.assign({ ref: this.setCustomComponentElement }, (this.item.dockMenu.props || {}), { onClose: this.onPopoverClose }))));
|
|
44
66
|
}
|
|
45
67
|
renderButton(handleClick, slot) {
|
|
46
68
|
var _a;
|
|
@@ -95,11 +117,8 @@ export class DockButton {
|
|
|
95
117
|
"required": true,
|
|
96
118
|
"optional": false,
|
|
97
119
|
"docs": {
|
|
98
|
-
"tags": [
|
|
99
|
-
|
|
100
|
-
"text": undefined
|
|
101
|
-
}],
|
|
102
|
-
"text": ""
|
|
120
|
+
"tags": [],
|
|
121
|
+
"text": "Item that is placed in the dock."
|
|
103
122
|
}
|
|
104
123
|
},
|
|
105
124
|
"expanded": {
|
|
@@ -113,11 +132,8 @@ export class DockButton {
|
|
|
113
132
|
"required": false,
|
|
114
133
|
"optional": true,
|
|
115
134
|
"docs": {
|
|
116
|
-
"tags": [
|
|
117
|
-
|
|
118
|
-
"text": undefined
|
|
119
|
-
}],
|
|
120
|
-
"text": ""
|
|
135
|
+
"tags": [],
|
|
136
|
+
"text": "When the dock is expanded or collapsed, dock items\nshow labels and tooltips as suitable for the layout."
|
|
121
137
|
},
|
|
122
138
|
"attribute": "expanded",
|
|
123
139
|
"reflect": true,
|
|
@@ -134,11 +150,8 @@ export class DockButton {
|
|
|
134
150
|
"required": false,
|
|
135
151
|
"optional": true,
|
|
136
152
|
"docs": {
|
|
137
|
-
"tags": [
|
|
138
|
-
|
|
139
|
-
"text": undefined
|
|
140
|
-
}],
|
|
141
|
-
"text": ""
|
|
153
|
+
"tags": [],
|
|
154
|
+
"text": "When dock is using mobile layout, dock items\nshow labels and tooltips as suitable for the layout."
|
|
142
155
|
},
|
|
143
156
|
"attribute": "use-mobile-layout",
|
|
144
157
|
"reflect": true,
|
|
@@ -149,14 +162,34 @@ export class DockButton {
|
|
|
149
162
|
"isOpen": {}
|
|
150
163
|
}; }
|
|
151
164
|
static get events() { return [{
|
|
152
|
-
"method": "
|
|
153
|
-
"name": "
|
|
165
|
+
"method": "itemSelected",
|
|
166
|
+
"name": "itemSelected",
|
|
154
167
|
"bubbles": true,
|
|
155
168
|
"cancelable": true,
|
|
156
169
|
"composed": true,
|
|
157
170
|
"docs": {
|
|
158
171
|
"tags": [],
|
|
159
|
-
"text": "Fired when
|
|
172
|
+
"text": "Fired when a dock item has been selected from the dock."
|
|
173
|
+
},
|
|
174
|
+
"complexType": {
|
|
175
|
+
"original": "DockItem",
|
|
176
|
+
"resolved": "DockItem",
|
|
177
|
+
"references": {
|
|
178
|
+
"DockItem": {
|
|
179
|
+
"location": "import",
|
|
180
|
+
"path": "../dock.types"
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}, {
|
|
185
|
+
"method": "menuOpen",
|
|
186
|
+
"name": "menuOpen",
|
|
187
|
+
"bubbles": true,
|
|
188
|
+
"cancelable": true,
|
|
189
|
+
"composed": true,
|
|
190
|
+
"docs": {
|
|
191
|
+
"tags": [],
|
|
192
|
+
"text": "Fired when a dock menu is opened."
|
|
160
193
|
},
|
|
161
194
|
"complexType": {
|
|
162
195
|
"original": "DockItem",
|
|
@@ -176,7 +209,7 @@ export class DockButton {
|
|
|
176
209
|
"composed": true,
|
|
177
210
|
"docs": {
|
|
178
211
|
"tags": [],
|
|
179
|
-
"text": ""
|
|
212
|
+
"text": "Fired when the popover is closed."
|
|
180
213
|
},
|
|
181
214
|
"complexType": {
|
|
182
215
|
"original": "void",
|
|
@@ -184,4 +217,8 @@ export class DockButton {
|
|
|
184
217
|
"references": {}
|
|
185
218
|
}
|
|
186
219
|
}]; }
|
|
220
|
+
static get watchers() { return [{
|
|
221
|
+
"propName": "isOpen",
|
|
222
|
+
"methodName": "openWatcher"
|
|
223
|
+
}]; }
|
|
187
224
|
}
|
|
@@ -92,15 +92,19 @@ nav::-webkit-scrollbar {
|
|
|
92
92
|
box-shadow: var(--button-shadow-pressed);
|
|
93
93
|
transform: translate3d(0, 0.08rem, 0);
|
|
94
94
|
}
|
|
95
|
+
.expand-shrink:focus {
|
|
96
|
+
outline: none;
|
|
97
|
+
}
|
|
98
|
+
.expand-shrink:focus-visible {
|
|
99
|
+
outline: none;
|
|
100
|
+
box-shadow: var(--shadow-depth-8-focused);
|
|
101
|
+
}
|
|
95
102
|
.expand-shrink.expanded {
|
|
96
103
|
justify-content: flex-end;
|
|
97
104
|
}
|
|
98
105
|
.expand-shrink.expanded limel-icon {
|
|
99
106
|
transform: rotateY(180deg);
|
|
100
107
|
}
|
|
101
|
-
.expand-shrink:focus-visible {
|
|
102
|
-
box-shadow: var(--shadow-depth-8-focused);
|
|
103
|
-
}
|
|
104
108
|
.expand-shrink limel-icon {
|
|
105
109
|
width: calc(var(--dock-expand-shrink-button-height) - 0.25rem);
|
|
106
110
|
color: var(--dock-item-icon-color, var(--limel-dock-item-text-color));
|
|
@@ -56,12 +56,7 @@ export class Dock {
|
|
|
56
56
|
return (h("limel-dock-button", { class: {
|
|
57
57
|
'dock-item': true,
|
|
58
58
|
selected: item.selected,
|
|
59
|
-
}, item: item, expanded: this.expanded && !this.useMobileLayout, useMobileLayout: this.useMobileLayout
|
|
60
|
-
};
|
|
61
|
-
this.handleDockItemClick = (event) => {
|
|
62
|
-
if (!event.detail.selected) {
|
|
63
|
-
this.itemSelected.emit(event.detail);
|
|
64
|
-
}
|
|
59
|
+
}, item: item, expanded: this.expanded && !this.useMobileLayout, useMobileLayout: this.useMobileLayout }));
|
|
65
60
|
};
|
|
66
61
|
this.handleResize = () => {
|
|
67
62
|
if (window.innerWidth <= this.mobileBreakPoint) {
|
|
@@ -73,6 +68,7 @@ export class Dock {
|
|
|
73
68
|
};
|
|
74
69
|
this.toggleDockWidth = () => {
|
|
75
70
|
this.expanded = !this.expanded;
|
|
71
|
+
this.dockExpanded.emit(this.expanded);
|
|
76
72
|
};
|
|
77
73
|
}
|
|
78
74
|
componentDidLoad() {
|
|
@@ -238,7 +234,7 @@ export class Dock {
|
|
|
238
234
|
"composed": true,
|
|
239
235
|
"docs": {
|
|
240
236
|
"tags": [],
|
|
241
|
-
"text": "Fired when a
|
|
237
|
+
"text": "Fired when a dock item has been selected from the dock."
|
|
242
238
|
},
|
|
243
239
|
"complexType": {
|
|
244
240
|
"original": "DockItem",
|
|
@@ -250,5 +246,55 @@ export class Dock {
|
|
|
250
246
|
}
|
|
251
247
|
}
|
|
252
248
|
}
|
|
249
|
+
}, {
|
|
250
|
+
"method": "menuOpen",
|
|
251
|
+
"name": "menuOpen",
|
|
252
|
+
"bubbles": true,
|
|
253
|
+
"cancelable": true,
|
|
254
|
+
"composed": true,
|
|
255
|
+
"docs": {
|
|
256
|
+
"tags": [],
|
|
257
|
+
"text": "Fired when a dock menu is opened."
|
|
258
|
+
},
|
|
259
|
+
"complexType": {
|
|
260
|
+
"original": "DockItem",
|
|
261
|
+
"resolved": "DockItem",
|
|
262
|
+
"references": {
|
|
263
|
+
"DockItem": {
|
|
264
|
+
"location": "import",
|
|
265
|
+
"path": "./dock.types"
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}, {
|
|
270
|
+
"method": "close",
|
|
271
|
+
"name": "close",
|
|
272
|
+
"bubbles": true,
|
|
273
|
+
"cancelable": true,
|
|
274
|
+
"composed": true,
|
|
275
|
+
"docs": {
|
|
276
|
+
"tags": [],
|
|
277
|
+
"text": "Fired when the popover is closed."
|
|
278
|
+
},
|
|
279
|
+
"complexType": {
|
|
280
|
+
"original": "void",
|
|
281
|
+
"resolved": "void",
|
|
282
|
+
"references": {}
|
|
283
|
+
}
|
|
284
|
+
}, {
|
|
285
|
+
"method": "dockExpanded",
|
|
286
|
+
"name": "dockExpanded",
|
|
287
|
+
"bubbles": true,
|
|
288
|
+
"cancelable": true,
|
|
289
|
+
"composed": true,
|
|
290
|
+
"docs": {
|
|
291
|
+
"tags": [],
|
|
292
|
+
"text": "Fired when a Dock is expanded or collapsed."
|
|
293
|
+
},
|
|
294
|
+
"complexType": {
|
|
295
|
+
"original": "boolean",
|
|
296
|
+
"resolved": "boolean",
|
|
297
|
+
"references": {}
|
|
298
|
+
}
|
|
253
299
|
}]; }
|
|
254
300
|
}
|
|
@@ -7,6 +7,7 @@ import { createRandomString } from '../../util/random-string';
|
|
|
7
7
|
const helperTextId = 'tf-helper-text';
|
|
8
8
|
/**
|
|
9
9
|
* @exampleComponent limel-example-input-field-text
|
|
10
|
+
* @exampleComponent limel-example-input-field-placeholder
|
|
10
11
|
* @exampleComponent limel-example-input-field-text-multiple
|
|
11
12
|
* @exampleComponent limel-example-input-field-number
|
|
12
13
|
* @exampleComponent limel-example-input-field-autocomplete
|
|
@@ -101,6 +102,7 @@ export class InputField {
|
|
|
101
102
|
this.getContainerClassList = () => {
|
|
102
103
|
const classList = {
|
|
103
104
|
'mdc-text-field': true,
|
|
105
|
+
'mdc-text-field--no-label': !this.label,
|
|
104
106
|
'mdc-text-field--outlined': true,
|
|
105
107
|
'mdc-text-field--invalid': this.isInvalid(),
|
|
106
108
|
'mdc-text-field--disabled': this.disabled || this.readonly,
|
|
@@ -127,7 +129,7 @@ export class InputField {
|
|
|
127
129
|
return;
|
|
128
130
|
}
|
|
129
131
|
const type = this.type === 'urlAsText' ? 'text' : this.type;
|
|
130
|
-
return (h("input", Object.assign({}, properties, { type: type, pattern: this.pattern, onWheel: this.handleWheel, onKeyDown: this.onKeyDown, value: this.value })));
|
|
132
|
+
return (h("input", Object.assign({}, properties, { type: type, pattern: this.pattern, onWheel: this.handleWheel, onKeyDown: this.onKeyDown, value: this.value, placeholder: this.placeholder })));
|
|
131
133
|
};
|
|
132
134
|
this.renderTextarea = (properties) => {
|
|
133
135
|
if (this.type !== 'textarea') {
|
|
@@ -252,6 +254,17 @@ export class InputField {
|
|
|
252
254
|
}
|
|
253
255
|
return this.limelInputField.shadowRoot.querySelector(elementName);
|
|
254
256
|
};
|
|
257
|
+
this.renderLabel = (labelId) => {
|
|
258
|
+
const labelClassList = {
|
|
259
|
+
'mdc-floating-label': true,
|
|
260
|
+
'mdc-floating-label--float-above': !!this.value || this.isFocused || this.readonly,
|
|
261
|
+
};
|
|
262
|
+
if (!this.label) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
return (h("span", { class: "mdc-notched-outline__notch" },
|
|
266
|
+
h("span", { class: labelClassList, id: labelId }, this.label)));
|
|
267
|
+
};
|
|
255
268
|
this.renderLeadingIcon = () => {
|
|
256
269
|
if (this.type === 'textarea') {
|
|
257
270
|
return;
|
|
@@ -516,16 +529,11 @@ export class InputField {
|
|
|
516
529
|
properties['aria-controls'] = helperTextId;
|
|
517
530
|
properties['aria-describedby'] = helperTextId;
|
|
518
531
|
}
|
|
519
|
-
const labelClassList = {
|
|
520
|
-
'mdc-floating-label': true,
|
|
521
|
-
'mdc-floating-label--float-above': !!this.value || this.isFocused || this.readonly,
|
|
522
|
-
};
|
|
523
532
|
return [
|
|
524
533
|
h("label", { class: this.getContainerClassList() },
|
|
525
534
|
h("span", { class: "mdc-notched-outline", tabindex: "-1" },
|
|
526
535
|
h("span", { class: "mdc-notched-outline__leading" }),
|
|
527
|
-
|
|
528
|
-
h("span", { class: labelClassList, id: labelId }, this.label)),
|
|
536
|
+
this.renderLabel(labelId),
|
|
529
537
|
h("span", { class: "mdc-notched-outline__trailing" })),
|
|
530
538
|
this.renderLeadingIcon(),
|
|
531
539
|
this.renderEmptyValueForReadonly(),
|
|
@@ -627,6 +635,23 @@ export class InputField {
|
|
|
627
635
|
"attribute": "label",
|
|
628
636
|
"reflect": true
|
|
629
637
|
},
|
|
638
|
+
"placeholder": {
|
|
639
|
+
"type": "string",
|
|
640
|
+
"mutable": false,
|
|
641
|
+
"complexType": {
|
|
642
|
+
"original": "string",
|
|
643
|
+
"resolved": "string",
|
|
644
|
+
"references": {}
|
|
645
|
+
},
|
|
646
|
+
"required": false,
|
|
647
|
+
"optional": false,
|
|
648
|
+
"docs": {
|
|
649
|
+
"tags": [],
|
|
650
|
+
"text": "The placeholder text shown inside the input field, when the field is focused and empty."
|
|
651
|
+
},
|
|
652
|
+
"attribute": "placeholder",
|
|
653
|
+
"reflect": true
|
|
654
|
+
},
|
|
630
655
|
"helperText": {
|
|
631
656
|
"type": "string",
|
|
632
657
|
"mutable": false,
|
|
@@ -66,13 +66,8 @@ export class Menu {
|
|
|
66
66
|
}
|
|
67
67
|
this.open = !this.open;
|
|
68
68
|
};
|
|
69
|
-
this.
|
|
70
|
-
|
|
71
|
-
if (item === event.detail) {
|
|
72
|
-
return event.detail;
|
|
73
|
-
}
|
|
74
|
-
return item;
|
|
75
|
-
});
|
|
69
|
+
this.handleSelect = (event) => {
|
|
70
|
+
event.stopPropagation();
|
|
76
71
|
this.select.emit(event.detail);
|
|
77
72
|
this.open = false;
|
|
78
73
|
};
|
|
@@ -90,12 +85,6 @@ export class Menu {
|
|
|
90
85
|
};
|
|
91
86
|
this.portalId = createRandomString();
|
|
92
87
|
}
|
|
93
|
-
componentDidLoad() {
|
|
94
|
-
if (!this.host.querySelector('[slot="trigger"]')) {
|
|
95
|
-
// eslint-disable-next-line no-console
|
|
96
|
-
console.warn('Using limel-menu with the default trigger is deprecated. Please provide your own trigger element.');
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
88
|
openWatcher() {
|
|
100
89
|
if (!this.open) {
|
|
101
90
|
return;
|
|
@@ -117,7 +106,7 @@ export class Menu {
|
|
|
117
106
|
} },
|
|
118
107
|
h("limel-menu-list", { class: {
|
|
119
108
|
'has-grid-layout has-interactive-items': this.gridLayout,
|
|
120
|
-
}, items: this.items, type: "menu", badgeIcons: this.badgeIcons,
|
|
109
|
+
}, items: this.items, type: "menu", badgeIcons: this.badgeIcons, onSelect: this.handleSelect, ref: this.setListElement })))));
|
|
121
110
|
}
|
|
122
111
|
componentDidRender() {
|
|
123
112
|
const slotElement = this.host.shadowRoot.querySelector('slot');
|
|
@@ -67,10 +67,10 @@ export class MenuList {
|
|
|
67
67
|
return !!item.selected;
|
|
68
68
|
});
|
|
69
69
|
if (selectedItem) {
|
|
70
|
-
this.
|
|
70
|
+
this.select.emit(Object.assign(Object.assign({}, selectedItem), { selected: false }));
|
|
71
71
|
}
|
|
72
72
|
if (MenuItems[index] !== selectedItem) {
|
|
73
|
-
this.
|
|
73
|
+
this.select.emit(Object.assign(Object.assign({}, MenuItems[index]), { selected: false }));
|
|
74
74
|
}
|
|
75
75
|
};
|
|
76
76
|
this.isMenuItem = (item) => {
|
|
@@ -223,26 +223,6 @@ export class MenuList {
|
|
|
223
223
|
}
|
|
224
224
|
}; }
|
|
225
225
|
static get events() { return [{
|
|
226
|
-
"method": "change",
|
|
227
|
-
"name": "change",
|
|
228
|
-
"bubbles": true,
|
|
229
|
-
"cancelable": true,
|
|
230
|
-
"composed": true,
|
|
231
|
-
"docs": {
|
|
232
|
-
"tags": [],
|
|
233
|
-
"text": "Fired when a new value has been selected from the list. Only fired if selectable is set to true"
|
|
234
|
-
},
|
|
235
|
-
"complexType": {
|
|
236
|
-
"original": "MenuItem | MenuItem[]",
|
|
237
|
-
"resolved": "MenuItem<any> | MenuItem<any>[]",
|
|
238
|
-
"references": {
|
|
239
|
-
"MenuItem": {
|
|
240
|
-
"location": "import",
|
|
241
|
-
"path": "@limetech/lime-elements"
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}, {
|
|
246
226
|
"method": "select",
|
|
247
227
|
"name": "select",
|
|
248
228
|
"bubbles": true,
|
|
@@ -250,11 +230,11 @@ export class MenuList {
|
|
|
250
230
|
"composed": true,
|
|
251
231
|
"docs": {
|
|
252
232
|
"tags": [],
|
|
253
|
-
"text": "Fired when
|
|
233
|
+
"text": "Fired when a new value has been selected from the list."
|
|
254
234
|
},
|
|
255
235
|
"complexType": {
|
|
256
|
-
"original": "MenuItem
|
|
257
|
-
"resolved": "MenuItem<any>
|
|
236
|
+
"original": "MenuItem",
|
|
237
|
+
"resolved": "MenuItem<any>",
|
|
258
238
|
"references": {
|
|
259
239
|
"MenuItem": {
|
|
260
240
|
"location": "import",
|
|
@@ -31,12 +31,13 @@
|
|
|
31
31
|
border-radius: var(--popover-border-radius, 0.75rem);
|
|
32
32
|
background-color: var(--popover-body-background-color, rgb(var(--contrast-100)));
|
|
33
33
|
}
|
|
34
|
-
.limel-popover-surface:focus
|
|
34
|
+
.limel-popover-surface:focus {
|
|
35
35
|
outline: none;
|
|
36
36
|
}
|
|
37
|
+
.limel-popover-surface:focus-visible {
|
|
38
|
+
outline: none;
|
|
39
|
+
box-shadow: var(--shadow-depth-8-focused);
|
|
40
|
+
}
|
|
37
41
|
.limel-popover-surface:focus:after, .limel-popover-surface:focus-within:after {
|
|
38
42
|
opacity: 1;
|
|
39
|
-
}
|
|
40
|
-
.limel-popover-surface:focus-visible {
|
|
41
|
-
box-shadow: var(--shadow-depth-16-focused);
|
|
42
43
|
}
|
|
@@ -67,7 +67,6 @@
|
|
|
67
67
|
font-size: 0.875rem;
|
|
68
68
|
}
|
|
69
69
|
.step.disabled {
|
|
70
|
-
opacity: 0.75;
|
|
71
70
|
cursor: not-allowed;
|
|
72
71
|
}
|
|
73
72
|
.step.disabled.readonly {
|
|
@@ -159,24 +158,38 @@
|
|
|
159
158
|
z-index: 2;
|
|
160
159
|
}
|
|
161
160
|
|
|
162
|
-
.step:after {
|
|
161
|
+
.step:before, .step:after {
|
|
163
162
|
pointer-events: none;
|
|
164
163
|
box-sizing: border-box;
|
|
165
164
|
z-index: 2;
|
|
166
165
|
position: absolute;
|
|
167
166
|
right: var(--selected-indicator-right);
|
|
168
|
-
background-color: var(--step-divider-color);
|
|
169
|
-
width: 0.375rem;
|
|
170
|
-
height: 0.375rem;
|
|
171
167
|
border-radius: 50%;
|
|
172
|
-
opacity: 0.7;
|
|
173
168
|
}
|
|
174
|
-
.last .step:after {
|
|
169
|
+
.last .step:before, .last .step:after {
|
|
175
170
|
right: 0.5rem;
|
|
176
171
|
}
|
|
177
172
|
|
|
178
|
-
.flow-item:not(.off-progress-item) .step.selected:after {
|
|
173
|
+
.flow-item:not(.off-progress-item) .step.selected:before, .flow-item:not(.off-progress-item) .step.selected:after {
|
|
174
|
+
content: "";
|
|
175
|
+
width: 0.375rem;
|
|
176
|
+
height: 0.375rem;
|
|
177
|
+
}
|
|
178
|
+
.flow-item:not(.off-progress-item) .step.selected:before {
|
|
179
|
+
background-color: var(--step-divider-color);
|
|
180
|
+
opacity: 0.7;
|
|
181
|
+
}
|
|
182
|
+
.flow-item:not(.off-progress-item) .step.disabled:before, .flow-item:not(.off-progress-item) .step.disabled:after {
|
|
183
|
+
width: 0.75rem;
|
|
184
|
+
height: 0.75rem;
|
|
185
|
+
}
|
|
186
|
+
.flow-item:not(.off-progress-item) .step.disabled:after {
|
|
179
187
|
content: "";
|
|
188
|
+
background-image: url("data:image/svg+xml;charset=utf-8, <svg viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' fill-rule='evenodd' clip-rule='evenodd' stroke-linejoin='round' stroke-miterlimit='2'><path fill='rgb(127,127,127)' d='M32.18 13.711c0-2.207-1.793-4-4.002-4H11.821c-2.208 0-4 1.793-4 4V28.29a4 4 0 0 0 4 4h16.357a4.002 4.002 0 0 0 4.001-4V13.711Z'/><path fill='rgb(127,127,127)' d='M11.211 9.758V7.673A7.489 7.489 0 0 1 18.696.188h2.608a7.489 7.489 0 0 1 7.485 7.485v2.085h-3V7.673a4.488 4.488 0 0 0-4.485-4.485h-2.608a4.488 4.488 0 0 0-4.485 4.485v2.085h-3Z'/></svg>");
|
|
189
|
+
background-size: 90%;
|
|
190
|
+
background-repeat: no-repeat;
|
|
191
|
+
background-position: center;
|
|
192
|
+
mix-blend-mode: multiply;
|
|
180
193
|
}
|
|
181
194
|
|
|
182
195
|
.step {
|
|
@@ -1726,6 +1726,10 @@
|
|
|
1726
1726
|
left: 1rem;
|
|
1727
1727
|
}
|
|
1728
1728
|
|
|
1729
|
+
.mdc-select__dropdown-icon-graphic {
|
|
1730
|
+
transition: transform 0.2s ease;
|
|
1731
|
+
}
|
|
1732
|
+
|
|
1729
1733
|
.limel-select__selected-option {
|
|
1730
1734
|
display: flex;
|
|
1731
1735
|
align-items: center;
|
|
@@ -1774,7 +1778,8 @@
|
|
|
1774
1778
|
outline: none;
|
|
1775
1779
|
}
|
|
1776
1780
|
.limel-select .limel-select-trigger:focus-visible {
|
|
1777
|
-
|
|
1781
|
+
outline: none;
|
|
1782
|
+
box-shadow: var(--shadow-depth-8-focused);
|
|
1778
1783
|
}
|
|
1779
1784
|
.limel-select .limel-select-trigger .mdc-floating-label {
|
|
1780
1785
|
color: rgba(var(--contrast-1200), 1);
|
|
@@ -1786,15 +1791,6 @@
|
|
|
1786
1791
|
font-size: 0.875rem;
|
|
1787
1792
|
transform: translateY(-2.171875rem) scale(0.75);
|
|
1788
1793
|
}
|
|
1789
|
-
.limel-select .mdc-select__dropdown-icon {
|
|
1790
|
-
transition: box-shadow 0.2s ease;
|
|
1791
|
-
border-radius: 50%;
|
|
1792
|
-
background: url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='5' viewBox='7 10 10 5' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' opacity='.54' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat 50%;
|
|
1793
|
-
position: relative;
|
|
1794
|
-
bottom: unset;
|
|
1795
|
-
margin-left: 0;
|
|
1796
|
-
margin-right: 0.25rem;
|
|
1797
|
-
}
|
|
1798
1794
|
.limel-select .limel-select-trigger,
|
|
1799
1795
|
.limel-select .limel-select__selected-option {
|
|
1800
1796
|
width: 100%;
|
|
@@ -1822,7 +1818,10 @@
|
|
|
1822
1818
|
color: var(--mdc-theme-primary);
|
|
1823
1819
|
}
|
|
1824
1820
|
.limel-select:not(.mdc-select--disabled) .limel-select-trigger.limel-select--focused .mdc-select__dropdown-icon {
|
|
1825
|
-
|
|
1821
|
+
fill: var(--mdc-theme-primary);
|
|
1822
|
+
}
|
|
1823
|
+
.limel-select:not(.mdc-select--disabled) .limel-select-trigger.limel-select--focused .mdc-select__dropdown-icon-graphic {
|
|
1824
|
+
transform: rotate(-180deg);
|
|
1826
1825
|
}
|
|
1827
1826
|
.limel-select.limel-select--required .mdc-floating-label::after {
|
|
1828
1827
|
content: "*";
|
|
@@ -39,7 +39,7 @@ const SelectValue = (props) => {
|
|
|
39
39
|
'mdc-floating-label--float-above': props.hasValue || props.isOpen || props.readonly,
|
|
40
40
|
'mdc-floating-label--active': props.isOpen,
|
|
41
41
|
};
|
|
42
|
-
return (h("div", { class: anchorClassList, tabindex: "0", onClick: props.open, onKeyPress: props.onTriggerPress, role: "button", "aria-haspopup": "listbox", "aria-expanded": "false", "aria-labelledby": "s-label s-selected-text" },
|
|
42
|
+
return (h("div", { class: anchorClassList, tabindex: "0", onClick: props.open, onKeyPress: props.onTriggerPress, role: "button", "aria-haspopup": "listbox", "aria-expanded": "false", "aria-labelledby": "s-label s-selected-text", "aria-required": props.required, "aria-disabled": props.disabled },
|
|
43
43
|
h("span", { id: "s-label", class: labelClassList }, props.label),
|
|
44
44
|
h("span", { class: "mdc-select__selected-text-container limel-select__selected-option" },
|
|
45
45
|
getSelectedIcon(props.value),
|
|
@@ -47,8 +47,7 @@ const SelectValue = (props) => {
|
|
|
47
47
|
h(ShowIcon, Object.assign({}, props, { isValid: props.isValid })),
|
|
48
48
|
h("span", { class: "mdc-select__dropdown-icon" },
|
|
49
49
|
h("svg", { class: "mdc-select__dropdown-icon-graphic", viewBox: "7 10 10 5", focusable: "false" },
|
|
50
|
-
h("polygon", {
|
|
51
|
-
h("polygon", { class: "mdc-select__dropdown-icon-active", stroke: "none", "fill-rule": "evenodd", points: "7 15 12 10 17 15" })))));
|
|
50
|
+
h("polygon", { stroke: "none", "fill-rule": "evenodd", points: "7 10 12 15 17 10" })))));
|
|
52
51
|
};
|
|
53
52
|
const ShowIcon = (props) => {
|
|
54
53
|
if (props.isValid) {
|
|
@@ -80,7 +79,7 @@ const MenuDropdown = (props) => {
|
|
|
80
79
|
h("limel-list", { items: items, type: props.multiple ? 'checkbox' : 'selectable', onChange: props.onMenuChange }))));
|
|
81
80
|
};
|
|
82
81
|
const NativeDropdown = (props) => {
|
|
83
|
-
return (h("select", { required: props.required, "aria-required": props.required, onChange: props.onNativeChange, onFocus: props.open, onBlur: props.close, class: "limel-select__native-control", disabled: props.disabled, multiple: props.multiple }, props.options.map((option) => {
|
|
82
|
+
return (h("select", { required: props.required, "aria-disabled": props.disabled, "aria-required": props.required, onChange: props.onNativeChange, onFocus: props.open, onBlur: props.close, class: "limel-select__native-control", disabled: props.disabled, multiple: props.multiple }, props.options.map((option) => {
|
|
84
83
|
return (h("option", { key: option.value, value: option.value, selected: isSelected(option, props.value), disabled: option.disabled }, option.text));
|
|
85
84
|
})));
|
|
86
85
|
};
|