@limetech/lime-elements 37.64.1 → 37.64.3
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/CHANGELOG.md +19 -0
- package/dist/cjs/limel-action-bar_4.cjs.entry.js +1 -1
- package/dist/cjs/limel-action-bar_4.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-breadcrumbs_5.cjs.entry.js +3 -3
- package/dist/cjs/limel-breadcrumbs_5.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-button-group.cjs.entry.js +1 -1
- package/dist/cjs/limel-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-button.cjs.entry.js +1 -1
- package/dist/cjs/limel-button.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-chip_2.cjs.entry.js +2 -2
- package/dist/cjs/limel-chip_2.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-code-editor.cjs.entry.js +1 -1
- package/dist/cjs/limel-code-editor.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-color-picker-palette.cjs.entry.js +1 -1
- package/dist/cjs/limel-color-picker-palette.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
- package/dist/cjs/limel-color-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-dialog.cjs.entry.js +2 -6
- package/dist/cjs/limel-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-dock-button.cjs.entry.js +1 -1
- package/dist/cjs/limel-dock-button.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-dock.cjs.entry.js +1 -1
- package/dist/cjs/limel-dock.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-dynamic-label_4.cjs.entry.js +1 -1
- package/dist/cjs/limel-dynamic-label_4.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-file-viewer.cjs.entry.js +1 -1
- package/dist/cjs/limel-file-viewer.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
- package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-help.cjs.entry.js +1 -1
- package/dist/cjs/limel-help.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
- package/dist/cjs/limel-icon-button.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-info-tile.cjs.entry.js +1 -1
- package/dist/cjs/limel-info-tile.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-select.cjs.entry.js +1 -1
- package/dist/cjs/limel-select.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
- package/dist/cjs/limel-shortcut.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-split-button.cjs.entry.js +1 -1
- package/dist/cjs/limel-split-button.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-table.cjs.entry.js +1 -1
- package/dist/cjs/limel-table.cjs.entry.js.map +1 -1
- package/dist/collection/components/action-bar/action-bar-item/action-bar-item.css +16 -2
- package/dist/collection/components/breadcrumbs/breadcrumbs.css +16 -2
- package/dist/collection/components/button/button.css +16 -2
- package/dist/collection/components/button-group/button-group.css +16 -2
- package/dist/collection/components/chip/chip.css +32 -4
- package/dist/collection/components/chip-set/chip-set.css +16 -2
- package/dist/collection/components/code-editor/code-editor.css +16 -2
- package/dist/collection/components/color-picker/color-picker-palette.css +16 -2
- package/dist/collection/components/color-picker/color-picker.css +16 -2
- package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.css +78 -6
- package/dist/collection/components/dialog/dialog.css +5 -0
- package/dist/collection/components/dialog/dialog.js +1 -5
- package/dist/collection/components/dialog/dialog.js.map +1 -1
- package/dist/collection/components/dock/dock-button/dock-button.css +16 -2
- package/dist/collection/components/dock/dock.css +16 -2
- package/dist/collection/components/file-viewer/file-viewer.css +16 -2
- package/dist/collection/components/help/help.css +16 -2
- package/dist/collection/components/icon-button/icon-button.css +16 -2
- package/dist/collection/components/info-tile/info-tile.css +16 -2
- package/dist/collection/components/input-field/input-field.css +16 -2
- package/dist/collection/components/list/list.css +16 -2
- package/dist/collection/components/menu-list/menu-list.css +16 -2
- package/dist/collection/components/select/select.css +16 -2
- package/dist/collection/components/shortcut/shortcut.css +16 -2
- package/dist/collection/components/split-button/split-button.css +16 -2
- package/dist/collection/components/table/table.css +16 -2
- package/dist/collection/style/color-palette-extended.css +25 -25
- package/dist/collection/style/mixins.scss +90 -24
- package/dist/collection/style/shadows.scss +59 -175
- package/dist/esm/limel-action-bar_4.entry.js +1 -1
- package/dist/esm/limel-action-bar_4.entry.js.map +1 -1
- package/dist/esm/limel-breadcrumbs_5.entry.js +3 -3
- package/dist/esm/limel-breadcrumbs_5.entry.js.map +1 -1
- package/dist/esm/limel-button-group.entry.js +1 -1
- package/dist/esm/limel-button-group.entry.js.map +1 -1
- package/dist/esm/limel-button.entry.js +1 -1
- package/dist/esm/limel-button.entry.js.map +1 -1
- package/dist/esm/limel-chip_2.entry.js +2 -2
- package/dist/esm/limel-chip_2.entry.js.map +1 -1
- package/dist/esm/limel-code-editor.entry.js +1 -1
- package/dist/esm/limel-code-editor.entry.js.map +1 -1
- package/dist/esm/limel-color-picker-palette.entry.js +1 -1
- package/dist/esm/limel-color-picker-palette.entry.js.map +1 -1
- package/dist/esm/limel-color-picker.entry.js +1 -1
- package/dist/esm/limel-color-picker.entry.js.map +1 -1
- package/dist/esm/limel-dialog.entry.js +2 -6
- package/dist/esm/limel-dialog.entry.js.map +1 -1
- package/dist/esm/limel-dock-button.entry.js +1 -1
- package/dist/esm/limel-dock-button.entry.js.map +1 -1
- package/dist/esm/limel-dock.entry.js +1 -1
- package/dist/esm/limel-dock.entry.js.map +1 -1
- package/dist/esm/limel-dynamic-label_4.entry.js +1 -1
- package/dist/esm/limel-dynamic-label_4.entry.js.map +1 -1
- package/dist/esm/limel-file-viewer.entry.js +1 -1
- package/dist/esm/limel-file-viewer.entry.js.map +1 -1
- package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
- package/dist/esm/limel-flatpickr-adapter.entry.js.map +1 -1
- package/dist/esm/limel-help.entry.js +1 -1
- package/dist/esm/limel-help.entry.js.map +1 -1
- package/dist/esm/limel-icon-button.entry.js +1 -1
- package/dist/esm/limel-icon-button.entry.js.map +1 -1
- package/dist/esm/limel-info-tile.entry.js +1 -1
- package/dist/esm/limel-info-tile.entry.js.map +1 -1
- package/dist/esm/limel-select.entry.js +1 -1
- package/dist/esm/limel-select.entry.js.map +1 -1
- package/dist/esm/limel-shortcut.entry.js +1 -1
- package/dist/esm/limel-shortcut.entry.js.map +1 -1
- package/dist/esm/limel-split-button.entry.js +1 -1
- package/dist/esm/limel-split-button.entry.js.map +1 -1
- package/dist/esm/limel-table.entry.js +1 -1
- package/dist/esm/limel-table.entry.js.map +1 -1
- package/dist/lime-elements/lime-elements.css +42 -49
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/p-09434f79.entry.js +2 -0
- package/dist/lime-elements/{p-1367c295.entry.js.map → p-09434f79.entry.js.map} +1 -1
- package/dist/lime-elements/p-0af1417f.entry.js +2 -0
- package/dist/lime-elements/{p-d9b7a208.entry.js.map → p-0af1417f.entry.js.map} +1 -1
- package/dist/lime-elements/p-1a0aaf41.entry.js +2 -0
- package/dist/lime-elements/{p-31a0bdac.entry.js.map → p-1a0aaf41.entry.js.map} +1 -1
- package/dist/lime-elements/p-211456f2.entry.js +2 -0
- package/dist/lime-elements/{p-f60702fd.entry.js.map → p-211456f2.entry.js.map} +1 -1
- package/dist/lime-elements/{p-dab818a1.entry.js → p-259c1bef.entry.js} +2 -2
- package/dist/lime-elements/{p-dab818a1.entry.js.map → p-259c1bef.entry.js.map} +1 -1
- package/dist/lime-elements/{p-11d775ca.entry.js → p-28c76ae8.entry.js} +2 -2
- package/dist/lime-elements/{p-11d775ca.entry.js.map → p-28c76ae8.entry.js.map} +1 -1
- package/dist/lime-elements/p-32844d2b.entry.js +2 -0
- package/dist/lime-elements/{p-7d215789.entry.js.map → p-32844d2b.entry.js.map} +1 -1
- package/dist/lime-elements/p-493e2b10.entry.js +2 -0
- package/dist/lime-elements/{p-c1cbba2c.entry.js.map → p-493e2b10.entry.js.map} +1 -1
- package/dist/lime-elements/{p-02e9b8ce.entry.js → p-4b7ea1b9.entry.js} +2 -2
- package/dist/lime-elements/p-4b7ea1b9.entry.js.map +1 -0
- package/dist/lime-elements/p-609b34fd.entry.js +2 -0
- package/dist/lime-elements/{p-968c49d9.entry.js.map → p-609b34fd.entry.js.map} +1 -1
- package/dist/lime-elements/p-6500050d.entry.js +2 -0
- package/dist/lime-elements/{p-eb5ff7ca.entry.js.map → p-6500050d.entry.js.map} +1 -1
- package/dist/lime-elements/{p-e973fd15.entry.js → p-782aa617.entry.js} +2 -2
- package/dist/lime-elements/{p-e973fd15.entry.js.map → p-782aa617.entry.js.map} +1 -1
- package/dist/lime-elements/{p-3cd95c9f.entry.js → p-84e87a39.entry.js} +2 -2
- package/dist/lime-elements/{p-3cd95c9f.entry.js.map → p-84e87a39.entry.js.map} +1 -1
- package/dist/lime-elements/p-8f1b76df.entry.js +2 -0
- package/dist/lime-elements/{p-48652dbe.entry.js.map → p-8f1b76df.entry.js.map} +1 -1
- package/dist/lime-elements/{p-7a202104.entry.js → p-9c5f2c45.entry.js} +2 -2
- package/dist/lime-elements/{p-7a202104.entry.js.map → p-9c5f2c45.entry.js.map} +1 -1
- package/dist/lime-elements/{p-497b65ba.entry.js → p-9c92c1db.entry.js} +3 -3
- package/dist/lime-elements/{p-497b65ba.entry.js.map → p-9c92c1db.entry.js.map} +1 -1
- package/dist/lime-elements/{p-d86f8aea.entry.js → p-9d5436bb.entry.js} +3 -3
- package/dist/lime-elements/{p-d86f8aea.entry.js.map → p-9d5436bb.entry.js.map} +1 -1
- package/dist/lime-elements/{p-126ed7d5.entry.js → p-b5dba995.entry.js} +2 -2
- package/dist/lime-elements/{p-126ed7d5.entry.js.map → p-b5dba995.entry.js.map} +1 -1
- package/dist/lime-elements/p-dbac0053.entry.js +2 -0
- package/dist/lime-elements/{p-484ecb49.entry.js.map → p-dbac0053.entry.js.map} +1 -1
- package/dist/lime-elements/p-f3a613a3.entry.js +2 -0
- package/dist/lime-elements/{p-6b2bc81b.entry.js.map → p-f3a613a3.entry.js.map} +1 -1
- package/dist/lime-elements/p-fda881a3.entry.js +2 -0
- package/dist/lime-elements/{p-5d01dc2a.entry.js.map → p-fda881a3.entry.js.map} +1 -1
- package/dist/lime-elements/style/color-palette-extended.css +25 -25
- package/dist/lime-elements/style/mixins.scss +90 -24
- package/dist/lime-elements/style/shadows.scss +59 -175
- package/dist/scss/mixins.scss +90 -24
- package/dist/types/components/dialog/dialog.d.ts +0 -1
- package/package.json +10 -10
- package/dist/lime-elements/p-02e9b8ce.entry.js.map +0 -1
- package/dist/lime-elements/p-1367c295.entry.js +0 -2
- package/dist/lime-elements/p-31a0bdac.entry.js +0 -2
- package/dist/lime-elements/p-484ecb49.entry.js +0 -2
- package/dist/lime-elements/p-48652dbe.entry.js +0 -2
- package/dist/lime-elements/p-5d01dc2a.entry.js +0 -2
- package/dist/lime-elements/p-6b2bc81b.entry.js +0 -2
- package/dist/lime-elements/p-7d215789.entry.js +0 -2
- package/dist/lime-elements/p-968c49d9.entry.js +0 -2
- package/dist/lime-elements/p-c1cbba2c.entry.js +0 -2
- package/dist/lime-elements/p-d9b7a208.entry.js +0 -2
- package/dist/lime-elements/p-eb5ff7ca.entry.js +0 -2
- package/dist/lime-elements/p-f60702fd.entry.js +0 -2
|
@@ -91,20 +91,34 @@ button {
|
|
|
91
91
|
padding: 0 0.25rem;
|
|
92
92
|
}
|
|
93
93
|
button:not([disabled]) {
|
|
94
|
-
transition: color 0.
|
|
94
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
95
95
|
cursor: pointer;
|
|
96
96
|
color: var(--limel-action-bar-item-text-color);
|
|
97
97
|
background-color: var(--action-bar-background-color);
|
|
98
98
|
}
|
|
99
|
+
button:not([disabled]):hover, button:not([disabled]):focus, button:not([disabled]):focus-visible {
|
|
100
|
+
will-change: color, background-color, box-shadow, transform;
|
|
101
|
+
}
|
|
99
102
|
button:not([disabled]):hover {
|
|
103
|
+
transform: translate3d(0, -0.04rem, 0);
|
|
100
104
|
color: var(--limel-action-bar-item-text-color);
|
|
101
105
|
background-color: var(--action-bar-background-color);
|
|
102
106
|
box-shadow: var(--button-shadow-hovered);
|
|
103
107
|
}
|
|
104
108
|
button:not([disabled]):active {
|
|
109
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
110
|
+
0.83,
|
|
111
|
+
-0.15,
|
|
112
|
+
0.49,
|
|
113
|
+
1.16
|
|
114
|
+
);
|
|
115
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
105
116
|
background-color: var(--action-bar-background-color);
|
|
106
117
|
box-shadow: var(--button-shadow-inset-pressed);
|
|
107
|
-
|
|
118
|
+
}
|
|
119
|
+
button:not([disabled]):hover, button:not([disabled]):active {
|
|
120
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
121
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
108
122
|
}
|
|
109
123
|
button:not([disabled]):focus {
|
|
110
124
|
outline: none;
|
|
@@ -164,19 +164,33 @@ a.step:hover:before {
|
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
button.step:not(.last) {
|
|
167
|
-
transition: color 0.
|
|
167
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
168
168
|
cursor: pointer;
|
|
169
169
|
color: var(--limel-breadcrumbs-item-text-color);
|
|
170
170
|
background-color: transparent;
|
|
171
171
|
}
|
|
172
|
+
button.step:not(.last):hover, button.step:not(.last):focus, button.step:not(.last):focus-visible {
|
|
173
|
+
will-change: color, background-color, box-shadow, transform;
|
|
174
|
+
}
|
|
172
175
|
button.step:not(.last):hover {
|
|
176
|
+
transform: translate3d(0, 0.01rem, 0);
|
|
173
177
|
color: var(--mdc-theme-on-surface);
|
|
174
178
|
background-color: var(--lime-elevated-surface-background-color);
|
|
175
179
|
box-shadow: var(--button-shadow-hovered);
|
|
176
180
|
}
|
|
177
181
|
button.step:not(.last):active {
|
|
182
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
183
|
+
0.83,
|
|
184
|
+
-0.15,
|
|
185
|
+
0.49,
|
|
186
|
+
1.16
|
|
187
|
+
);
|
|
188
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
178
189
|
box-shadow: var(--button-shadow-pressed);
|
|
179
|
-
|
|
190
|
+
}
|
|
191
|
+
button.step:not(.last):hover, button.step:not(.last):active {
|
|
192
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
193
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
180
194
|
}
|
|
181
195
|
|
|
182
196
|
limel-icon {
|
|
@@ -161,7 +161,7 @@ button:disabled.outlined {
|
|
|
161
161
|
border-color: rgba(var(--contrast-1700), 0.2);
|
|
162
162
|
}
|
|
163
163
|
button:not(:disabled) {
|
|
164
|
-
transition: color 0.
|
|
164
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
165
165
|
cursor: pointer;
|
|
166
166
|
color: var(--mdc-theme-on-surface);
|
|
167
167
|
background-color: var(--lime-elevated-surface-background-color);
|
|
@@ -174,14 +174,28 @@ button:not(:disabled):focus-visible {
|
|
|
174
174
|
outline: none;
|
|
175
175
|
box-shadow: var(--shadow-depth-8-focused);
|
|
176
176
|
}
|
|
177
|
+
button:not(:disabled):hover, button:not(:disabled):focus, button:not(:disabled):focus-visible {
|
|
178
|
+
will-change: color, background-color, box-shadow, transform;
|
|
179
|
+
}
|
|
177
180
|
button:not(:disabled):hover {
|
|
181
|
+
transform: translate3d(0, -0.04rem, 0);
|
|
178
182
|
color: var(--mdc-theme-on-surface);
|
|
179
183
|
background-color: var(--lime-elevated-surface-background-color);
|
|
180
184
|
box-shadow: var(--button-shadow-hovered);
|
|
181
185
|
}
|
|
182
186
|
button:not(:disabled):active {
|
|
187
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
188
|
+
0.83,
|
|
189
|
+
-0.15,
|
|
190
|
+
0.49,
|
|
191
|
+
1.16
|
|
192
|
+
);
|
|
193
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
183
194
|
box-shadow: var(--button-shadow-pressed);
|
|
184
|
-
|
|
195
|
+
}
|
|
196
|
+
button:not(:disabled):hover, button:not(:disabled):active {
|
|
197
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
198
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
185
199
|
}
|
|
186
200
|
:host(limel-button[primary]) button:not(:disabled) {
|
|
187
201
|
color: var(--mdc-theme-on-primary, rgb(var(--color-white)));
|
|
@@ -744,7 +744,7 @@
|
|
|
744
744
|
}
|
|
745
745
|
|
|
746
746
|
.mdc-chip {
|
|
747
|
-
transition: color 0.
|
|
747
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
748
748
|
cursor: pointer;
|
|
749
749
|
color: var(--mdc-theme-on-surface);
|
|
750
750
|
background-color: transparent;
|
|
@@ -756,15 +756,29 @@
|
|
|
756
756
|
margin: 0.125rem !important;
|
|
757
757
|
font-size: 0.875rem;
|
|
758
758
|
}
|
|
759
|
+
.mdc-chip:hover, .mdc-chip:focus, .mdc-chip:focus-visible {
|
|
760
|
+
will-change: color, background-color, box-shadow, transform;
|
|
761
|
+
}
|
|
759
762
|
.mdc-chip:hover {
|
|
763
|
+
transform: translate3d(0, -0.04rem, 0);
|
|
760
764
|
color: var(--mdc-theme-on-surface);
|
|
761
765
|
background-color: var(--lime-elevated-surface-background-color);
|
|
762
766
|
box-shadow: var(--button-shadow-hovered);
|
|
763
767
|
}
|
|
764
768
|
.mdc-chip:active {
|
|
769
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
770
|
+
0.83,
|
|
771
|
+
-0.15,
|
|
772
|
+
0.49,
|
|
773
|
+
1.16
|
|
774
|
+
);
|
|
775
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
765
776
|
background-color: var(--mdc-theme-surface);
|
|
766
777
|
box-shadow: var(--button-shadow-inset-pressed);
|
|
767
|
-
|
|
778
|
+
}
|
|
779
|
+
.mdc-chip:hover, .mdc-chip:active {
|
|
780
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
781
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
768
782
|
}
|
|
769
783
|
.mdc-chip:not(:last-child):after {
|
|
770
784
|
content: "";
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
padding-left: 0;
|
|
93
93
|
}
|
|
94
94
|
.chip:not([disabled]) {
|
|
95
|
-
transition: color 0.
|
|
95
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
96
96
|
cursor: pointer;
|
|
97
97
|
color: var(--mdc-theme-on-surface);
|
|
98
98
|
background-color: var(--lime-elevated-surface-background-color);
|
|
@@ -105,15 +105,29 @@
|
|
|
105
105
|
outline: none;
|
|
106
106
|
box-shadow: var(--shadow-depth-8-focused);
|
|
107
107
|
}
|
|
108
|
+
.chip:not([disabled]):hover, .chip:not([disabled]):focus, .chip:not([disabled]):focus-visible {
|
|
109
|
+
will-change: color, background-color, box-shadow, transform;
|
|
110
|
+
}
|
|
108
111
|
.chip:not([disabled]):hover {
|
|
112
|
+
transform: translate3d(0, 0.01rem, 0);
|
|
109
113
|
color: var(--mdc-theme-on-surface);
|
|
110
114
|
background-color: var(--lime-elevated-surface-background-color);
|
|
111
115
|
box-shadow: var(--button-shadow-hovered);
|
|
112
116
|
}
|
|
113
117
|
.chip:not([disabled]):active {
|
|
118
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
119
|
+
0.83,
|
|
120
|
+
-0.15,
|
|
121
|
+
0.49,
|
|
122
|
+
1.16
|
|
123
|
+
);
|
|
124
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
114
125
|
background-color: var(--mdc-theme-surface);
|
|
115
126
|
box-shadow: var(--button-shadow-inset-pressed);
|
|
116
|
-
|
|
127
|
+
}
|
|
128
|
+
.chip:not([disabled]):hover, .chip:not([disabled]):active {
|
|
129
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
130
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
117
131
|
}
|
|
118
132
|
.chip:has(limel-badge) {
|
|
119
133
|
padding-right: 0.375rem;
|
|
@@ -216,7 +230,7 @@ limel-badge {
|
|
|
216
230
|
|
|
217
231
|
.trailing-button {
|
|
218
232
|
all: unset;
|
|
219
|
-
transition: color 0.
|
|
233
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
220
234
|
cursor: pointer;
|
|
221
235
|
color: var(--mdc-theme-on-surface);
|
|
222
236
|
background-color: transparent;
|
|
@@ -231,14 +245,28 @@ limel-badge {
|
|
|
231
245
|
height: calc(var(--limel-chip-height) - 0.25rem);
|
|
232
246
|
border-radius: 50%;
|
|
233
247
|
}
|
|
248
|
+
.trailing-button:hover, .trailing-button:focus, .trailing-button:focus-visible {
|
|
249
|
+
will-change: color, background-color, box-shadow, transform;
|
|
250
|
+
}
|
|
234
251
|
.trailing-button:hover {
|
|
252
|
+
transform: translate3d(0, 0.01rem, 0);
|
|
235
253
|
color: var(--mdc-theme-on-surface);
|
|
236
254
|
background-color: var(--lime-elevated-surface-background-color);
|
|
237
255
|
box-shadow: var(--button-shadow-hovered);
|
|
238
256
|
}
|
|
239
257
|
.trailing-button:active {
|
|
258
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
259
|
+
0.83,
|
|
260
|
+
-0.15,
|
|
261
|
+
0.49,
|
|
262
|
+
1.16
|
|
263
|
+
);
|
|
264
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
240
265
|
box-shadow: var(--button-shadow-pressed);
|
|
241
|
-
|
|
266
|
+
}
|
|
267
|
+
.trailing-button:hover, .trailing-button:active {
|
|
268
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
269
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
242
270
|
}
|
|
243
271
|
.trailing-button svg {
|
|
244
272
|
transition: color 0.2s ease, transform 0.2s ease;
|
|
@@ -2055,7 +2055,7 @@
|
|
|
2055
2055
|
}
|
|
2056
2056
|
|
|
2057
2057
|
.clear-all-button {
|
|
2058
|
-
transition: color 0.
|
|
2058
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
2059
2059
|
cursor: pointer;
|
|
2060
2060
|
color: var(--mdc-theme-on-surface);
|
|
2061
2061
|
background-color: rgb(var(--contrast-900));
|
|
@@ -2072,14 +2072,28 @@
|
|
|
2072
2072
|
top: calc(2.5rem / 4);
|
|
2073
2073
|
opacity: 0;
|
|
2074
2074
|
}
|
|
2075
|
+
.clear-all-button:hover, .clear-all-button:focus, .clear-all-button:focus-visible {
|
|
2076
|
+
will-change: color, background-color, box-shadow, transform;
|
|
2077
|
+
}
|
|
2075
2078
|
.clear-all-button:hover {
|
|
2079
|
+
transform: translate3d(0, 0.01rem, 0);
|
|
2076
2080
|
color: var(--mdc-theme-on-surface);
|
|
2077
2081
|
background-color: rgb(var(--contrast-1100));
|
|
2078
2082
|
box-shadow: var(--button-shadow-hovered);
|
|
2079
2083
|
}
|
|
2080
2084
|
.clear-all-button:active {
|
|
2085
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
2086
|
+
0.83,
|
|
2087
|
+
-0.15,
|
|
2088
|
+
0.49,
|
|
2089
|
+
1.16
|
|
2090
|
+
);
|
|
2091
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
2081
2092
|
box-shadow: var(--button-shadow-pressed);
|
|
2082
|
-
|
|
2093
|
+
}
|
|
2094
|
+
.clear-all-button:hover, .clear-all-button:active {
|
|
2095
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
2096
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
2083
2097
|
}
|
|
2084
2098
|
.clear-all-button:focus {
|
|
2085
2099
|
outline: none;
|
|
@@ -719,7 +719,7 @@ span.CodeMirror-selectedtext { background: none; }
|
|
|
719
719
|
}
|
|
720
720
|
.cm-s-lime .CodeMirror-foldmarker {
|
|
721
721
|
position: relative;
|
|
722
|
-
transition: color 0.
|
|
722
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
723
723
|
cursor: pointer;
|
|
724
724
|
color: transparent;
|
|
725
725
|
background-color: var(--lime-elevated-surface-background-color);
|
|
@@ -732,14 +732,28 @@ span.CodeMirror-selectedtext { background: none; }
|
|
|
732
732
|
background-repeat: no-repeat;
|
|
733
733
|
background-position: center;
|
|
734
734
|
}
|
|
735
|
+
.cm-s-lime .CodeMirror-foldmarker:hover, .cm-s-lime .CodeMirror-foldmarker:focus, .cm-s-lime .CodeMirror-foldmarker:focus-visible {
|
|
736
|
+
will-change: color, background-color, box-shadow, transform;
|
|
737
|
+
}
|
|
735
738
|
.cm-s-lime .CodeMirror-foldmarker:hover {
|
|
739
|
+
transform: translate3d(0, -0.04rem, 0);
|
|
736
740
|
color: var(--mdc-theme-on-surface);
|
|
737
741
|
background-color: var(--lime-elevated-surface-background-color);
|
|
738
742
|
box-shadow: var(--button-shadow-hovered);
|
|
739
743
|
}
|
|
740
744
|
.cm-s-lime .CodeMirror-foldmarker:active {
|
|
745
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
746
|
+
0.83,
|
|
747
|
+
-0.15,
|
|
748
|
+
0.49,
|
|
749
|
+
1.16
|
|
750
|
+
);
|
|
751
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
741
752
|
box-shadow: var(--button-shadow-pressed);
|
|
742
|
-
|
|
753
|
+
}
|
|
754
|
+
.cm-s-lime .CodeMirror-foldmarker:hover, .cm-s-lime .CodeMirror-foldmarker:active {
|
|
755
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
756
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
743
757
|
}
|
|
744
758
|
.cm-s-lime [class^=CodeMirror-foldgutter] {
|
|
745
759
|
color: var(--code-editor-neutral-text-color);
|
|
@@ -785,20 +785,34 @@
|
|
|
785
785
|
.picker-trigger {
|
|
786
786
|
all: unset;
|
|
787
787
|
border-radius: 0.5rem;
|
|
788
|
-
transition: color 0.
|
|
788
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
789
789
|
cursor: pointer;
|
|
790
790
|
color: var(--mdc-theme-on-surface);
|
|
791
791
|
background-color: var(--lime-elevated-surface-background-color);
|
|
792
792
|
box-shadow: var(--button-shadow-normal);
|
|
793
793
|
}
|
|
794
|
+
.picker-trigger:hover, .picker-trigger:focus, .picker-trigger:focus-visible {
|
|
795
|
+
will-change: color, background-color, box-shadow, transform;
|
|
796
|
+
}
|
|
794
797
|
.picker-trigger:hover {
|
|
798
|
+
transform: translate3d(0, -0.04rem, 0);
|
|
795
799
|
color: var(--mdc-theme-on-surface);
|
|
796
800
|
background-color: var(--lime-elevated-surface-background-color);
|
|
797
801
|
box-shadow: var(--button-shadow-hovered);
|
|
798
802
|
}
|
|
799
803
|
.picker-trigger:active {
|
|
804
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
805
|
+
0.83,
|
|
806
|
+
-0.15,
|
|
807
|
+
0.49,
|
|
808
|
+
1.16
|
|
809
|
+
);
|
|
810
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
800
811
|
box-shadow: var(--button-shadow-pressed);
|
|
801
|
-
|
|
812
|
+
}
|
|
813
|
+
.picker-trigger:hover, .picker-trigger:active {
|
|
814
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
815
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
802
816
|
}
|
|
803
817
|
.picker-trigger:focus {
|
|
804
818
|
outline: none;
|
|
@@ -175,20 +175,34 @@
|
|
|
175
175
|
.picker-trigger {
|
|
176
176
|
all: unset;
|
|
177
177
|
border-radius: 0.5rem;
|
|
178
|
-
transition: color 0.
|
|
178
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
179
179
|
cursor: pointer;
|
|
180
180
|
color: var(--mdc-theme-on-surface);
|
|
181
181
|
background-color: var(--lime-elevated-surface-background-color);
|
|
182
182
|
box-shadow: var(--button-shadow-normal);
|
|
183
183
|
}
|
|
184
|
+
.picker-trigger:hover, .picker-trigger:focus, .picker-trigger:focus-visible {
|
|
185
|
+
will-change: color, background-color, box-shadow, transform;
|
|
186
|
+
}
|
|
184
187
|
.picker-trigger:hover {
|
|
188
|
+
transform: translate3d(0, -0.04rem, 0);
|
|
185
189
|
color: var(--mdc-theme-on-surface);
|
|
186
190
|
background-color: var(--lime-elevated-surface-background-color);
|
|
187
191
|
box-shadow: var(--button-shadow-hovered);
|
|
188
192
|
}
|
|
189
193
|
.picker-trigger:active {
|
|
194
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
195
|
+
0.83,
|
|
196
|
+
-0.15,
|
|
197
|
+
0.49,
|
|
198
|
+
1.16
|
|
199
|
+
);
|
|
200
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
190
201
|
box-shadow: var(--button-shadow-pressed);
|
|
191
|
-
|
|
202
|
+
}
|
|
203
|
+
.picker-trigger:hover, .picker-trigger:active {
|
|
204
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
205
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
192
206
|
}
|
|
193
207
|
.picker-trigger:focus {
|
|
194
208
|
outline: none;
|
|
@@ -690,19 +690,33 @@ svg {
|
|
|
690
690
|
line-height: 2.5rem;
|
|
691
691
|
}
|
|
692
692
|
.dayContainer .flatpickr-day {
|
|
693
|
-
transition: color 0.
|
|
693
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
694
694
|
cursor: pointer;
|
|
695
695
|
color: var(--mdc-theme-on-surface);
|
|
696
696
|
background-color: transparent;
|
|
697
697
|
}
|
|
698
|
+
.dayContainer .flatpickr-day:hover, .dayContainer .flatpickr-day:focus, .dayContainer .flatpickr-day:focus-visible {
|
|
699
|
+
will-change: color, background-color, box-shadow, transform;
|
|
700
|
+
}
|
|
698
701
|
.dayContainer .flatpickr-day:hover {
|
|
702
|
+
transform: translate3d(0, 0.01rem, 0);
|
|
699
703
|
color: var(--mdc-theme-on-surface);
|
|
700
704
|
background-color: var(--lime-elevated-surface-background-color);
|
|
701
705
|
box-shadow: var(--button-shadow-hovered);
|
|
702
706
|
}
|
|
703
707
|
.dayContainer .flatpickr-day:active {
|
|
708
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
709
|
+
0.83,
|
|
710
|
+
-0.15,
|
|
711
|
+
0.49,
|
|
712
|
+
1.16
|
|
713
|
+
);
|
|
714
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
704
715
|
box-shadow: var(--button-shadow-pressed);
|
|
705
|
-
|
|
716
|
+
}
|
|
717
|
+
.dayContainer .flatpickr-day:hover, .dayContainer .flatpickr-day:active {
|
|
718
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
719
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
706
720
|
}
|
|
707
721
|
.flatpickr-day:hover {
|
|
708
722
|
z-index: 1;
|
|
@@ -816,17 +830,33 @@ svg {
|
|
|
816
830
|
.flatpickr-next-month,
|
|
817
831
|
.arrowUp,
|
|
818
832
|
.arrowDown {
|
|
819
|
-
transition: color 0.
|
|
833
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
820
834
|
cursor: pointer;
|
|
821
835
|
color: var(--mdc-theme-on-surface);
|
|
822
836
|
background-color: transparent;
|
|
823
837
|
border-radius: 0.25rem;
|
|
824
838
|
}
|
|
839
|
+
.flatpickr-monthDropdown-months:hover, .flatpickr-monthDropdown-months:focus, .flatpickr-monthDropdown-months:focus-visible,
|
|
840
|
+
.flatpickr-prev-month:hover,
|
|
841
|
+
.flatpickr-prev-month:focus,
|
|
842
|
+
.flatpickr-prev-month:focus-visible,
|
|
843
|
+
.flatpickr-next-month:hover,
|
|
844
|
+
.flatpickr-next-month:focus,
|
|
845
|
+
.flatpickr-next-month:focus-visible,
|
|
846
|
+
.arrowUp:hover,
|
|
847
|
+
.arrowUp:focus,
|
|
848
|
+
.arrowUp:focus-visible,
|
|
849
|
+
.arrowDown:hover,
|
|
850
|
+
.arrowDown:focus,
|
|
851
|
+
.arrowDown:focus-visible {
|
|
852
|
+
will-change: color, background-color, box-shadow, transform;
|
|
853
|
+
}
|
|
825
854
|
.flatpickr-monthDropdown-months:hover,
|
|
826
855
|
.flatpickr-prev-month:hover,
|
|
827
856
|
.flatpickr-next-month:hover,
|
|
828
857
|
.arrowUp:hover,
|
|
829
858
|
.arrowDown:hover {
|
|
859
|
+
transform: translate3d(0, 0.01rem, 0);
|
|
830
860
|
color: var(--mdc-theme-on-surface);
|
|
831
861
|
background-color: var(--lime-elevated-surface-background-color);
|
|
832
862
|
box-shadow: var(--button-shadow-hovered);
|
|
@@ -836,8 +866,26 @@ svg {
|
|
|
836
866
|
.flatpickr-next-month:active,
|
|
837
867
|
.arrowUp:active,
|
|
838
868
|
.arrowDown:active {
|
|
869
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
870
|
+
0.83,
|
|
871
|
+
-0.15,
|
|
872
|
+
0.49,
|
|
873
|
+
1.16
|
|
874
|
+
);
|
|
875
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
839
876
|
box-shadow: var(--button-shadow-pressed);
|
|
840
|
-
|
|
877
|
+
}
|
|
878
|
+
.flatpickr-monthDropdown-months:hover, .flatpickr-monthDropdown-months:active,
|
|
879
|
+
.flatpickr-prev-month:hover,
|
|
880
|
+
.flatpickr-prev-month:active,
|
|
881
|
+
.flatpickr-next-month:hover,
|
|
882
|
+
.flatpickr-next-month:active,
|
|
883
|
+
.arrowUp:hover,
|
|
884
|
+
.arrowUp:active,
|
|
885
|
+
.arrowDown:hover,
|
|
886
|
+
.arrowDown:active {
|
|
887
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
888
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
841
889
|
}
|
|
842
890
|
|
|
843
891
|
.arrowUp {
|
|
@@ -887,16 +935,26 @@ svg {
|
|
|
887
935
|
.datepicker-month,
|
|
888
936
|
.datepicker-quarter,
|
|
889
937
|
.datepicker-year {
|
|
890
|
-
transition: color 0.
|
|
938
|
+
transition: color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);
|
|
891
939
|
cursor: pointer;
|
|
892
940
|
color: var(--mdc-theme-on-surface);
|
|
893
941
|
background-color: transparent;
|
|
894
942
|
min-width: 0;
|
|
895
943
|
text-align: center;
|
|
896
944
|
}
|
|
945
|
+
.datepicker-month:hover, .datepicker-month:focus, .datepicker-month:focus-visible,
|
|
946
|
+
.datepicker-quarter:hover,
|
|
947
|
+
.datepicker-quarter:focus,
|
|
948
|
+
.datepicker-quarter:focus-visible,
|
|
949
|
+
.datepicker-year:hover,
|
|
950
|
+
.datepicker-year:focus,
|
|
951
|
+
.datepicker-year:focus-visible {
|
|
952
|
+
will-change: color, background-color, box-shadow, transform;
|
|
953
|
+
}
|
|
897
954
|
.datepicker-month:hover,
|
|
898
955
|
.datepicker-quarter:hover,
|
|
899
956
|
.datepicker-year:hover {
|
|
957
|
+
transform: translate3d(0, 0.01rem, 0);
|
|
900
958
|
color: var(--mdc-theme-on-surface);
|
|
901
959
|
background-color: var(--lime-elevated-surface-background-color);
|
|
902
960
|
box-shadow: var(--button-shadow-hovered);
|
|
@@ -904,8 +962,22 @@ svg {
|
|
|
904
962
|
.datepicker-month:active,
|
|
905
963
|
.datepicker-quarter:active,
|
|
906
964
|
.datepicker-year:active {
|
|
965
|
+
--limel-clickable-transform-timing-function: cubic-bezier(
|
|
966
|
+
0.83,
|
|
967
|
+
-0.15,
|
|
968
|
+
0.49,
|
|
969
|
+
1.16
|
|
970
|
+
);
|
|
971
|
+
transform: translate3d(0, 0.05rem, 0);
|
|
907
972
|
box-shadow: var(--button-shadow-pressed);
|
|
908
|
-
|
|
973
|
+
}
|
|
974
|
+
.datepicker-month:hover, .datepicker-month:active,
|
|
975
|
+
.datepicker-quarter:hover,
|
|
976
|
+
.datepicker-quarter:active,
|
|
977
|
+
.datepicker-year:hover,
|
|
978
|
+
.datepicker-year:active {
|
|
979
|
+
--limel-clickable-transition-speed: 0.2s;
|
|
980
|
+
--limel-clickable-transform-speed: 0.16s;
|
|
909
981
|
}
|
|
910
982
|
.datepicker-month.selected,
|
|
911
983
|
.datepicker-quarter.selected,
|
|
@@ -794,6 +794,11 @@ slot[name=button] {
|
|
|
794
794
|
justify-content: flex-end;
|
|
795
795
|
}
|
|
796
796
|
|
|
797
|
+
footer.mdc-dialog__actions {
|
|
798
|
+
min-height: unset;
|
|
799
|
+
padding: 0.375rem;
|
|
800
|
+
}
|
|
801
|
+
|
|
797
802
|
@media screen and (max-width: 760px) {
|
|
798
803
|
slot[name=button] {
|
|
799
804
|
flex-direction: column-reverse;
|
|
@@ -35,7 +35,6 @@ import { createRandomString } from '../../util/random-string';
|
|
|
35
35
|
*/
|
|
36
36
|
export class Dialog {
|
|
37
37
|
constructor() {
|
|
38
|
-
this.showFooter = true;
|
|
39
38
|
this.heading = undefined;
|
|
40
39
|
this.fullscreen = false;
|
|
41
40
|
this.open = false;
|
|
@@ -52,7 +51,6 @@ export class Dialog {
|
|
|
52
51
|
}
|
|
53
52
|
componentWillLoad() {
|
|
54
53
|
this.id = createRandomString();
|
|
55
|
-
this.showFooter = !!this.host.querySelector('[slot="button"]');
|
|
56
54
|
}
|
|
57
55
|
componentDidLoad() {
|
|
58
56
|
this.initialize();
|
|
@@ -134,9 +132,7 @@ export class Dialog {
|
|
|
134
132
|
return null;
|
|
135
133
|
}
|
|
136
134
|
renderFooter() {
|
|
137
|
-
|
|
138
|
-
return (h("footer", { class: "mdc-dialog__actions" }, h("slot", { name: "button" })));
|
|
139
|
-
}
|
|
135
|
+
return (h("footer", { class: "mdc-dialog__actions" }, h("slot", { name: "button" })));
|
|
140
136
|
}
|
|
141
137
|
setClosingActions() {
|
|
142
138
|
this.mdcDialog.scrimClickAction = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/components/dialog/dialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import { DialogHeading, ClosingActions } from './dialog.types';\nimport { MDCDialog } from '@material/dialog';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n Watch,\n} from '@stencil/core';\nimport { isEqual } from 'lodash-es';\nimport { dispatchResizeEvent } from '../../util/dispatch-resize-event';\nimport { createRandomString } from '../../util/random-string';\n\n/**\n * :::note\n * Regarding the `close` event: When putting other elements that emit `close`\n * events inside a dialog, those events must be caught and stopped inside the\n * dialog. If not, they will bubble to the event handler listening for `close`\n * events on the dialog, which will close the dialog too.\n *\n * See the example _Nested `close` events_.\n * :::\n *\n * :::important\n * Are you developing for\n * [Lime CRM](https://www.lime-technologies.com/en/lime-crm/)? Please note that\n * you should use the [DialogRenderer](https://lundalogik.github.io/lime-web-components/versions/latest/interfaces/DialogRenderer.html)\n * from Lime Web Components to open dialogs in Lime CRM.\n * :::\n *\n * @exampleComponent limel-example-dialog\n * @exampleComponent limel-example-dialog-nested-close-events\n * @exampleComponent limel-example-dialog-heading\n * @exampleComponent limel-example-dialog-heading-actions\n * @exampleComponent limel-example-dialog-form\n * @exampleComponent limel-example-dialog-size\n * @exampleComponent limel-example-dialog-fullscreen\n * @exampleComponent limel-example-dialog-closing-actions\n * @exampleComponent limel-example-dialog-action-buttons\n * @slot - Content to put inside the dialog\n * @slot header-actions - The dialog header buttons\n * @slot button - The dialog buttons\n */\n@Component({\n tag: 'limel-dialog',\n shadow: true,\n styleUrl: 'dialog.scss',\n})\nexport class Dialog {\n /**\n * The heading for the dialog, if any.\n */\n @Prop()\n public heading: string | DialogHeading;\n\n /**\n * Set to `true` to make the dialog \"fullscreen\".\n */\n @Prop({ reflect: true })\n public fullscreen = false;\n\n /**\n * `true` if the dialog is open, `false` otherwise.\n */\n @Prop({ mutable: true, reflect: true })\n public open = false;\n\n /**\n * Defines which action triggers a close-event.\n */\n @Prop({ reflect: true })\n public closingActions: ClosingActions = {\n escapeKey: true,\n scrimClick: true,\n };\n /**\n * Emitted when the dialog is closed from inside the component.\n * (*Not* emitted when the consumer sets the `open`-property to `false`.)\n */\n @Event()\n private close: EventEmitter<void>;\n\n /**\n * Emitted when the dialog is in the process of being closed.\n */\n @Event()\n private closing: EventEmitter<void>;\n\n @Element()\n private host: HTMLLimelDialogElement;\n\n private mdcDialog: MDCDialog;\n\n private id: string;\n\n private showFooter = true;\n\n constructor() {\n this.handleMdcOpened = this.handleMdcOpened.bind(this);\n this.handleMdcClosed = this.handleMdcClosed.bind(this);\n this.handleMdcClosing = this.handleMdcClosing.bind(this);\n }\n\n public connectedCallback() {\n this.initialize();\n }\n\n public componentWillLoad() {\n this.id = createRandomString();\n this.showFooter = !!this.host.querySelector('[slot=\"button\"]');\n }\n\n public componentDidLoad() {\n this.initialize();\n }\n\n private initialize() {\n const element = this.host.shadowRoot.querySelector('.mdc-dialog');\n if (!element) {\n return;\n }\n\n this.mdcDialog = new MDCDialog(element);\n if (this.open) {\n this.mdcDialog.open();\n }\n\n this.mdcDialog.listen('MDCDialog:opened', this.handleMdcOpened);\n this.mdcDialog.listen('MDCDialog:closed', this.handleMdcClosed);\n this.mdcDialog.listen('MDCDialog:closing', this.handleMdcClosing);\n\n this.setClosingActions();\n }\n\n public disconnectedCallback() {\n this.mdcDialog.unlisten('MDCDialog:opened', this.handleMdcOpened);\n this.mdcDialog.unlisten('MDCDialog:closed', this.handleMdcClosed);\n this.mdcDialog.unlisten('MDCDialog:closing', this.handleMdcClosing);\n this.mdcDialog.destroy();\n }\n\n public render() {\n return (\n <div\n class={{\n 'mdc-dialog': true,\n 'full-screen': !!this.fullscreen,\n }}\n role=\"alertdialog\"\n aria-modal=\"true\"\n aria-labelledby={'limel-dialog-title-' + this.id}\n aria-describedby={'limel-dialog-content-' + this.id}\n >\n <input hidden={true} id=\"initialFocusEl\" />\n <div class=\"mdc-dialog__container\">\n <div class=\"mdc-dialog__surface\">\n {/*\n The `initialFocusElement` below is needed to make\n focus trapping work. At the time of writing, the\n focusable elements inside the slots are not\n detected, so we supply our own hidden element for\n the focus trap to use. Read more here:\n https://github.com/material-components/material-components-web/tree/v11.0.0/packages/mdc-dialog#handling-focus-trapping\n */}\n <input type=\"button\" id=\"initialFocusElement\" />\n {this.renderHeading()}\n <div\n class=\"mdc-dialog__content\"\n id={'limel-dialog-content-' + this.id}\n >\n <slot />\n </div>\n {this.renderFooter()}\n </div>\n </div>\n <div class=\"mdc-dialog__scrim\" />\n </div>\n );\n }\n\n @Watch('open')\n protected watchHandler(newValue: boolean, oldValue: boolean) {\n if (oldValue === newValue) {\n return;\n }\n\n if (!this.mdcDialog) {\n return;\n }\n\n if (newValue) {\n this.mdcDialog.open();\n } else {\n this.mdcDialog.close();\n }\n }\n\n @Watch('closingActions')\n protected closingActionsChanged(\n newValue: ClosingActions,\n oldValue: ClosingActions,\n ) {\n if (isEqual(newValue, oldValue)) {\n return;\n }\n\n this.setClosingActions();\n }\n\n private handleMdcOpened() {\n // When the opening-animation has completed, dispatch a\n // resize-event so that any content that depends on\n // javascript for layout has a chance to update to the\n // final layout of the dialog. /Ads\n const waitForUiToRender = 100;\n setTimeout(dispatchResizeEvent, waitForUiToRender);\n }\n\n private handleMdcClosed() {\n if (this.open) {\n this.close.emit();\n }\n\n this.open = false;\n }\n\n private handleMdcClosing() {\n this.closing.emit();\n }\n\n private isBadgeHeading(\n heading: string | DialogHeading,\n ): heading is DialogHeading {\n return typeof heading === 'object' && !!heading.title && !!heading.icon;\n }\n\n private renderHeading() {\n if (this.isBadgeHeading(this.heading)) {\n const { title, subtitle, supportingText, icon } = this.heading;\n\n return (\n <limel-header\n icon={icon}\n heading={title}\n subheading={subtitle}\n supportingText={supportingText}\n >\n <slot name=\"header-actions\" slot=\"actions\" />\n </limel-header>\n );\n } else if (typeof this.heading === 'string') {\n return <limel-header heading={this.heading}></limel-header>;\n }\n\n return null;\n }\n\n private renderFooter() {\n if (this.showFooter) {\n return (\n <footer class=\"mdc-dialog__actions\">\n <slot name=\"button\" />\n </footer>\n );\n }\n }\n\n private setClosingActions() {\n this.mdcDialog.scrimClickAction = '';\n if (this.closingActions.scrimClick) {\n this.mdcDialog.scrimClickAction = 'close';\n }\n\n this.mdcDialog.escapeKeyAction = '';\n if (this.closingActions.escapeKey) {\n this.mdcDialog.escapeKeyAction = 'close';\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/components/dialog/dialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import { DialogHeading, ClosingActions } from './dialog.types';\nimport { MDCDialog } from '@material/dialog';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n Watch,\n} from '@stencil/core';\nimport { isEqual } from 'lodash-es';\nimport { dispatchResizeEvent } from '../../util/dispatch-resize-event';\nimport { createRandomString } from '../../util/random-string';\n\n/**\n * :::note\n * Regarding the `close` event: When putting other elements that emit `close`\n * events inside a dialog, those events must be caught and stopped inside the\n * dialog. If not, they will bubble to the event handler listening for `close`\n * events on the dialog, which will close the dialog too.\n *\n * See the example _Nested `close` events_.\n * :::\n *\n * :::important\n * Are you developing for\n * [Lime CRM](https://www.lime-technologies.com/en/lime-crm/)? Please note that\n * you should use the [DialogRenderer](https://lundalogik.github.io/lime-web-components/versions/latest/interfaces/DialogRenderer.html)\n * from Lime Web Components to open dialogs in Lime CRM.\n * :::\n *\n * @exampleComponent limel-example-dialog\n * @exampleComponent limel-example-dialog-nested-close-events\n * @exampleComponent limel-example-dialog-heading\n * @exampleComponent limel-example-dialog-heading-actions\n * @exampleComponent limel-example-dialog-form\n * @exampleComponent limel-example-dialog-size\n * @exampleComponent limel-example-dialog-fullscreen\n * @exampleComponent limel-example-dialog-closing-actions\n * @exampleComponent limel-example-dialog-action-buttons\n * @slot - Content to put inside the dialog\n * @slot header-actions - The dialog header buttons\n * @slot button - The dialog buttons\n */\n@Component({\n tag: 'limel-dialog',\n shadow: true,\n styleUrl: 'dialog.scss',\n})\nexport class Dialog {\n /**\n * The heading for the dialog, if any.\n */\n @Prop()\n public heading: string | DialogHeading;\n\n /**\n * Set to `true` to make the dialog \"fullscreen\".\n */\n @Prop({ reflect: true })\n public fullscreen = false;\n\n /**\n * `true` if the dialog is open, `false` otherwise.\n */\n @Prop({ mutable: true, reflect: true })\n public open = false;\n\n /**\n * Defines which action triggers a close-event.\n */\n @Prop({ reflect: true })\n public closingActions: ClosingActions = {\n escapeKey: true,\n scrimClick: true,\n };\n /**\n * Emitted when the dialog is closed from inside the component.\n * (*Not* emitted when the consumer sets the `open`-property to `false`.)\n */\n @Event()\n private close: EventEmitter<void>;\n\n /**\n * Emitted when the dialog is in the process of being closed.\n */\n @Event()\n private closing: EventEmitter<void>;\n\n @Element()\n private host: HTMLLimelDialogElement;\n\n private mdcDialog: MDCDialog;\n\n private id: string;\n\n constructor() {\n this.handleMdcOpened = this.handleMdcOpened.bind(this);\n this.handleMdcClosed = this.handleMdcClosed.bind(this);\n this.handleMdcClosing = this.handleMdcClosing.bind(this);\n }\n\n public connectedCallback() {\n this.initialize();\n }\n\n public componentWillLoad() {\n this.id = createRandomString();\n }\n\n public componentDidLoad() {\n this.initialize();\n }\n\n private initialize() {\n const element = this.host.shadowRoot.querySelector('.mdc-dialog');\n if (!element) {\n return;\n }\n\n this.mdcDialog = new MDCDialog(element);\n if (this.open) {\n this.mdcDialog.open();\n }\n\n this.mdcDialog.listen('MDCDialog:opened', this.handleMdcOpened);\n this.mdcDialog.listen('MDCDialog:closed', this.handleMdcClosed);\n this.mdcDialog.listen('MDCDialog:closing', this.handleMdcClosing);\n\n this.setClosingActions();\n }\n\n public disconnectedCallback() {\n this.mdcDialog.unlisten('MDCDialog:opened', this.handleMdcOpened);\n this.mdcDialog.unlisten('MDCDialog:closed', this.handleMdcClosed);\n this.mdcDialog.unlisten('MDCDialog:closing', this.handleMdcClosing);\n this.mdcDialog.destroy();\n }\n\n public render() {\n return (\n <div\n class={{\n 'mdc-dialog': true,\n 'full-screen': !!this.fullscreen,\n }}\n role=\"alertdialog\"\n aria-modal=\"true\"\n aria-labelledby={'limel-dialog-title-' + this.id}\n aria-describedby={'limel-dialog-content-' + this.id}\n >\n <input hidden={true} id=\"initialFocusEl\" />\n <div class=\"mdc-dialog__container\">\n <div class=\"mdc-dialog__surface\">\n {/*\n The `initialFocusElement` below is needed to make\n focus trapping work. At the time of writing, the\n focusable elements inside the slots are not\n detected, so we supply our own hidden element for\n the focus trap to use. Read more here:\n https://github.com/material-components/material-components-web/tree/v11.0.0/packages/mdc-dialog#handling-focus-trapping\n */}\n <input type=\"button\" id=\"initialFocusElement\" />\n {this.renderHeading()}\n <div\n class=\"mdc-dialog__content\"\n id={'limel-dialog-content-' + this.id}\n >\n <slot />\n </div>\n {this.renderFooter()}\n </div>\n </div>\n <div class=\"mdc-dialog__scrim\" />\n </div>\n );\n }\n\n @Watch('open')\n protected watchHandler(newValue: boolean, oldValue: boolean) {\n if (oldValue === newValue) {\n return;\n }\n\n if (!this.mdcDialog) {\n return;\n }\n\n if (newValue) {\n this.mdcDialog.open();\n } else {\n this.mdcDialog.close();\n }\n }\n\n @Watch('closingActions')\n protected closingActionsChanged(\n newValue: ClosingActions,\n oldValue: ClosingActions,\n ) {\n if (isEqual(newValue, oldValue)) {\n return;\n }\n\n this.setClosingActions();\n }\n\n private handleMdcOpened() {\n // When the opening-animation has completed, dispatch a\n // resize-event so that any content that depends on\n // javascript for layout has a chance to update to the\n // final layout of the dialog. /Ads\n const waitForUiToRender = 100;\n setTimeout(dispatchResizeEvent, waitForUiToRender);\n }\n\n private handleMdcClosed() {\n if (this.open) {\n this.close.emit();\n }\n\n this.open = false;\n }\n\n private handleMdcClosing() {\n this.closing.emit();\n }\n\n private isBadgeHeading(\n heading: string | DialogHeading,\n ): heading is DialogHeading {\n return typeof heading === 'object' && !!heading.title && !!heading.icon;\n }\n\n private renderHeading() {\n if (this.isBadgeHeading(this.heading)) {\n const { title, subtitle, supportingText, icon } = this.heading;\n\n return (\n <limel-header\n icon={icon}\n heading={title}\n subheading={subtitle}\n supportingText={supportingText}\n >\n <slot name=\"header-actions\" slot=\"actions\" />\n </limel-header>\n );\n } else if (typeof this.heading === 'string') {\n return <limel-header heading={this.heading}></limel-header>;\n }\n\n return null;\n }\n\n private renderFooter() {\n return (\n <footer class=\"mdc-dialog__actions\">\n <slot name=\"button\" />\n </footer>\n );\n }\n\n private setClosingActions() {\n this.mdcDialog.scrimClickAction = '';\n if (this.closingActions.scrimClick) {\n this.mdcDialog.scrimClickAction = 'close';\n }\n\n this.mdcDialog.escapeKeyAction = '';\n if (this.closingActions.escapeKey) {\n this.mdcDialog.escapeKeyAction = 'close';\n }\n }\n}\n"]}
|