@schukai/monster 3.64.1 → 3.65.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/CHANGELOG.md +19 -0
- package/example/components/form/button.mjs +1 -1
- package/example/components/form/field-set.mjs +4 -0
- package/example/components/form/select.mjs +1 -1
- package/package.json +2 -1
- package/source/components/datatable/datatable/header.mjs +228 -221
- package/source/components/datatable/style/dataset.pcss +1 -0
- package/source/components/datatable/style/datatable.pcss +1 -0
- package/source/components/datatable/stylesheet/dataset.mjs +1 -1
- package/source/components/datatable/stylesheet/datatable.mjs +1 -1
- package/source/components/form/button.mjs +263 -281
- package/source/components/form/field-set.mjs +300 -0
- package/source/components/form/popper.mjs +13 -480
- package/source/components/form/style/field-set.pcss +13 -0
- package/source/components/form/stylesheet/button-bar.mjs +1 -1
- package/source/components/form/stylesheet/confirm-button.mjs +1 -1
- package/source/components/form/stylesheet/field-set.mjs +31 -0
- package/source/components/form/stylesheet/form.mjs +1 -1
- package/source/components/host/collapse.mjs +14 -516
- package/source/components/host/config-manager.mjs +9 -2
- package/source/components/host/constants.mjs +9 -4
- package/source/components/host/details.mjs +14 -253
- package/source/components/host/stylesheet/host.mjs +1 -1
- package/source/components/host/stylesheet/overlay.mjs +1 -1
- package/source/components/layout/collapse.mjs +542 -0
- package/source/components/layout/details.mjs +271 -0
- package/source/components/layout/popper.mjs +476 -0
- package/source/components/layout/tabs.mjs +3 -3
- package/source/components/layout/width-toggle.mjs +3 -3
- package/source/components/navigation/style/table-of-content.pcss +84 -0
- package/source/components/navigation/stylesheet/table-of-content.mjs +31 -0
- package/source/components/navigation/table-of-content.mjs +418 -0
- package/source/components/state/stylesheet/state.mjs +1 -1
- package/source/components/style/link.pcss +0 -1
- package/source/components/style/mixin/typography.pcss +7 -7
- package/source/components/style/typography.pcss +1 -1
- package/source/components/stylesheet/typography.mjs +1 -1
- package/source/dom/ready.mjs +10 -4
- package/source/monster.mjs +5 -84
- package/source/types/proxyobserver.mjs +4 -2
- package/source/types/version.mjs +1 -1
- package/test/cases/monster.mjs +1 -1
- package/test/web/tests.js +4 -4
- package/source/components/form/form-field.mjs +0 -341
- package/source/components/form/style/form-field.pcss +0 -4
- package/source/components/form/stylesheet/form-field.mjs +0 -31
- /package/source/components/{host → layout}/style/collapse.pcss +0 -0
- /package/source/components/{host → layout}/style/details.pcss +0 -0
- /package/source/components/{form → layout}/style/popper.pcss +0 -0
- /package/source/components/{host → layout}/stylesheet/collapse.mjs +0 -0
- /package/source/components/{host → layout}/stylesheet/details.mjs +0 -0
- /package/source/components/{form → layout}/stylesheet/popper.mjs +0 -0
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
|
|
3
|
+
* Node module: @schukai/monster
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
|
|
6
|
+
* The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
7
|
+
*
|
|
8
|
+
* For those who do not wish to adhere to the AGPLv3, a commercial license is available.
|
|
9
|
+
* Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
|
|
10
|
+
* For more information about purchasing a commercial license, please contact schukai GmbH.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import {instanceSymbol} from "../../constants.mjs";
|
|
14
|
+
import {addAttributeToken} from "../../dom/attributes.mjs";
|
|
15
|
+
import {
|
|
16
|
+
ATTRIBUTE_ERRORMESSAGE,
|
|
17
|
+
ATTRIBUTE_ROLE,
|
|
18
|
+
} from "../../dom/constants.mjs";
|
|
19
|
+
import {CustomElement} from "../../dom/customelement.mjs";
|
|
20
|
+
import {
|
|
21
|
+
assembleMethodSymbol,
|
|
22
|
+
registerCustomElement,
|
|
23
|
+
} from "../../dom/customelement.mjs";
|
|
24
|
+
import {findTargetElementFromEvent} from "../../dom/events.mjs";
|
|
25
|
+
import {isFunction} from "../../types/is.mjs";
|
|
26
|
+
import {TableOfContentStyleSheet} from "./stylesheet/table-of-content.mjs";
|
|
27
|
+
import {fireCustomEvent} from "../../dom/events.mjs";
|
|
28
|
+
import {getWindow} from "../../dom/util.mjs";
|
|
29
|
+
import "../layout/popper.mjs";
|
|
30
|
+
|
|
31
|
+
export {TableOfContent};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @private
|
|
35
|
+
* @type {symbol}
|
|
36
|
+
*/
|
|
37
|
+
const tableOfContentElementSymbol = Symbol("tableOfContentElement");
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @private
|
|
41
|
+
* @type {symbol}
|
|
42
|
+
*/
|
|
43
|
+
const navigationElementSymbol = Symbol("navigation");
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @private
|
|
48
|
+
* @type {symbol}
|
|
49
|
+
*/
|
|
50
|
+
const navigationControlElementSymbol = Symbol("navigationControlElement");
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @private
|
|
54
|
+
* @type {symbol}
|
|
55
|
+
*/
|
|
56
|
+
const navigationListElementSymbol = Symbol("navigationListElement");
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @private
|
|
60
|
+
* @type {symbol}
|
|
61
|
+
*/
|
|
62
|
+
const windowEventHandlerSymbol = Symbol("windowsEventHandler");
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @private
|
|
66
|
+
* @type {symbol}
|
|
67
|
+
*/
|
|
68
|
+
const scrollableParentSymbol = Symbol("scrollableParent");
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @private
|
|
72
|
+
* @type {symbol}
|
|
73
|
+
*/
|
|
74
|
+
const scrollableEventHandlerSymbol = Symbol("scrollableEventHandler");
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* A TableOfContent
|
|
78
|
+
*
|
|
79
|
+
* @fragments /fragments/components/form/table-of-content/
|
|
80
|
+
*
|
|
81
|
+
* @example /examples/components/form/table-of-content-simple
|
|
82
|
+
*
|
|
83
|
+
* @since 3.66.0
|
|
84
|
+
* @copyright schukai GmbH
|
|
85
|
+
* @summary A beautiful TableOfContent that can make your life easier and also looks good.
|
|
86
|
+
*/
|
|
87
|
+
class TableOfContent extends CustomElement {
|
|
88
|
+
/**
|
|
89
|
+
* This method is called by the `instanceof` operator.
|
|
90
|
+
* @returns {symbol}
|
|
91
|
+
*/
|
|
92
|
+
static get [instanceSymbol]() {
|
|
93
|
+
return Symbol.for("@schukai/monster/components/navigation/table-of-content@@instance");
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
*
|
|
98
|
+
* @return {Components.Navigation.TableOfContent
|
|
99
|
+
*/
|
|
100
|
+
[assembleMethodSymbol]() {
|
|
101
|
+
super[assembleMethodSymbol]();
|
|
102
|
+
initControlReferences.call(this);
|
|
103
|
+
initEventHandler.call(this);
|
|
104
|
+
return this;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* To set the options via the html tag the attribute `data-monster-options` must be used.
|
|
109
|
+
* @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
|
|
110
|
+
*
|
|
111
|
+
* The individual configuration values can be found in the table.
|
|
112
|
+
*
|
|
113
|
+
* @property {Object} templates Template definitions
|
|
114
|
+
* @property {string} templates.main Main template
|
|
115
|
+
* @property {Object} labels Label definitions
|
|
116
|
+
* @property {Object} actions Callbacks
|
|
117
|
+
* @property {string} actions.click="throw Error" Callback when clicked
|
|
118
|
+
* @property {Object} features Features
|
|
119
|
+
* @property {number} offset=100 Navigation offset from top
|
|
120
|
+
* @property {Object} classes CSS classes
|
|
121
|
+
* @property {boolean} disabled=false Disabled state
|
|
122
|
+
*/
|
|
123
|
+
get defaults() {
|
|
124
|
+
return Object.assign({}, super.defaults, {
|
|
125
|
+
templates: {
|
|
126
|
+
main: getTemplate(),
|
|
127
|
+
},
|
|
128
|
+
labels: {},
|
|
129
|
+
classes: {},
|
|
130
|
+
disabled: false,
|
|
131
|
+
features: {},
|
|
132
|
+
offset: 100,
|
|
133
|
+
actions: {
|
|
134
|
+
click: () => {
|
|
135
|
+
throw new Error("the click action is not defined");
|
|
136
|
+
},
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* @return {void}
|
|
143
|
+
*/
|
|
144
|
+
connectedCallback() {
|
|
145
|
+
super.connectedCallback();
|
|
146
|
+
|
|
147
|
+
initNavigation.call(this);
|
|
148
|
+
|
|
149
|
+
setTimeout(() => {
|
|
150
|
+
|
|
151
|
+
this[scrollableParentSymbol] = findScrollableParent(this);
|
|
152
|
+
|
|
153
|
+
if (this[scrollableParentSymbol] === getWindow()) {
|
|
154
|
+
this[scrollableParentSymbol].addEventListener('scroll', this[windowEventHandlerSymbol]);
|
|
155
|
+
calcAndSetNavigationTopWindowContext.call(this);
|
|
156
|
+
} else {
|
|
157
|
+
this[scrollableParentSymbol].addEventListener('scroll', this[scrollableEventHandlerSymbol]);
|
|
158
|
+
calcAndSetNavigationTopScrollableParentContext.call(this);
|
|
159
|
+
}
|
|
160
|
+
}, 100);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* @return {void}
|
|
165
|
+
*/
|
|
166
|
+
disconnectedCallback() {
|
|
167
|
+
super.disconnectedCallback();
|
|
168
|
+
|
|
169
|
+
if (this[scrollableParentSymbol] === getWindow()) {
|
|
170
|
+
this[scrollableParentSymbol].removeEventListener('scroll', this[windowEventHandlerSymbol]);
|
|
171
|
+
} else {
|
|
172
|
+
this[scrollableParentSymbol].removeEventListener('scroll', this[scrollableEventHandlerSymbol]);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* @return {string}
|
|
178
|
+
*/
|
|
179
|
+
static getTag() {
|
|
180
|
+
return "monster-table-of-content";
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* @return {CSSStyleSheet[]}
|
|
185
|
+
*/
|
|
186
|
+
static getCSSStyleSheet() {
|
|
187
|
+
return [TableOfContentStyleSheet];
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* @private
|
|
195
|
+
*/
|
|
196
|
+
function calcAndSetNavigationTopWindowContext() {
|
|
197
|
+
|
|
198
|
+
const thisTop = this.getBoundingClientRect().top;
|
|
199
|
+
const topViewport = window.scrollY;
|
|
200
|
+
let top = Math.max(topViewport, thisTop);
|
|
201
|
+
|
|
202
|
+
const offset = this.getOption('offset');
|
|
203
|
+
if (offset > 0) {
|
|
204
|
+
top += offset;
|
|
205
|
+
}
|
|
206
|
+
this[navigationElementSymbol].style.top = top + "px";
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* @private
|
|
211
|
+
*/
|
|
212
|
+
function calcAndSetNavigationTopScrollableParentContext() {
|
|
213
|
+
|
|
214
|
+
const windowTop = getWindow().scrollY;
|
|
215
|
+
const thisRect = this.getBoundingClientRect();
|
|
216
|
+
const thisTop = thisRect.top;
|
|
217
|
+
const thisBottom = thisRect.bottom;
|
|
218
|
+
const scrollTop = this[scrollableParentSymbol].scrollTop;
|
|
219
|
+
let top = windowTop + thisTop + scrollTop;
|
|
220
|
+
|
|
221
|
+
if (thisBottom < top) {
|
|
222
|
+
top = thisBottom;
|
|
223
|
+
this[navigationElementSymbol].style.visibility = "hidden";
|
|
224
|
+
} else {
|
|
225
|
+
this[navigationElementSymbol].style.visibility = "visible";
|
|
226
|
+
}
|
|
227
|
+
const offset = this.getOption('offset');
|
|
228
|
+
if (offset > 0) {
|
|
229
|
+
top += offset;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
this[navigationElementSymbol].style.top = top + "px";
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* @private
|
|
237
|
+
*/
|
|
238
|
+
function initNavigation() {
|
|
239
|
+
|
|
240
|
+
const headings = getHeadings.call(this);
|
|
241
|
+
|
|
242
|
+
for (const heading of headings) {
|
|
243
|
+
const div = document.createElement('div');
|
|
244
|
+
div.classList.add('heading-strip');
|
|
245
|
+
div.classList.add('level-' + heading.tagName.toLowerCase());
|
|
246
|
+
this[navigationControlElementSymbol].appendChild(div);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
this[navigationListElementSymbol].appendChild(createListFromHeadings.call(this, headings).sublist);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Recursively creates a nested list (UL) from a list of heading elements.
|
|
254
|
+
* @param {HTMLElement[]} nodeList - The list of heading elements.
|
|
255
|
+
* @param {number} currentLevel - The current heading level we are processing.
|
|
256
|
+
* @returns {{sublist: HTMLUListElement, lastIndex: number}} An object containing the sublist and the index of the last processed element.
|
|
257
|
+
*/
|
|
258
|
+
function createListFromHeadings(nodeList, currentLevel = 1) {
|
|
259
|
+
const self = this;
|
|
260
|
+
let ul = document.createElement('ul');
|
|
261
|
+
let i = 0;
|
|
262
|
+
|
|
263
|
+
while (i < nodeList.length) {
|
|
264
|
+
const node = nodeList[i];
|
|
265
|
+
const level = parseInt(node.tagName.substring(1));
|
|
266
|
+
|
|
267
|
+
if (level === currentLevel) {
|
|
268
|
+
const li = document.createElement('li');
|
|
269
|
+
li.textContent = node.textContent;
|
|
270
|
+
|
|
271
|
+
li.addEventListener('click', (e) => {
|
|
272
|
+
e.stopPropagation();
|
|
273
|
+
getWindow().requestAnimationFrame(() => {
|
|
274
|
+
window.scrollTo(0, 0);
|
|
275
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
|
|
276
|
+
// mostly supported
|
|
277
|
+
node?.scrollIntoView({behavior: "smooth"});
|
|
278
|
+
});
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
ul.appendChild(li);
|
|
282
|
+
i++;
|
|
283
|
+
} else if (level > currentLevel) {
|
|
284
|
+
if (ul.lastChild) {
|
|
285
|
+
const {sublist, lastIndex} = createListFromHeadings.call(self, nodeList.slice(i), level);
|
|
286
|
+
ul.lastChild.appendChild(sublist);
|
|
287
|
+
i += lastIndex;
|
|
288
|
+
} else {
|
|
289
|
+
throw new Error("Heading structure error: higher level heading without a preceding lower level heading.");
|
|
290
|
+
}
|
|
291
|
+
} else {
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
return {sublist: ul, lastIndex: i};
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* @private
|
|
301
|
+
* @returns {*[]}
|
|
302
|
+
*/
|
|
303
|
+
function getHeadings() {
|
|
304
|
+
const allHeadings = [];
|
|
305
|
+
|
|
306
|
+
const slots = this.shadowRoot.querySelectorAll('slot');
|
|
307
|
+
|
|
308
|
+
slots.forEach(slot => {
|
|
309
|
+
const slottedElements = slot.assignedElements();
|
|
310
|
+
slottedElements.forEach(element => {
|
|
311
|
+
if (element instanceof HTMLHeadingElement) {
|
|
312
|
+
allHeadings.push(element);
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
const headings = element.querySelectorAll("h1, h2, h3, h4, h5, h6");
|
|
317
|
+
let nodeList = Array.from(headings);
|
|
318
|
+
allHeadings.push(...nodeList);
|
|
319
|
+
});
|
|
320
|
+
});
|
|
321
|
+
return allHeadings;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* @private
|
|
327
|
+
* @return {initEventHandler}
|
|
328
|
+
*/
|
|
329
|
+
function initEventHandler() {
|
|
330
|
+
|
|
331
|
+
const self = this;
|
|
332
|
+
let ticking = false;
|
|
333
|
+
|
|
334
|
+
this[windowEventHandlerSymbol] = function () {
|
|
335
|
+
if (!ticking) {
|
|
336
|
+
getWindow().requestAnimationFrame(() => {
|
|
337
|
+
calcAndSetNavigationTopWindowContext.call(self);
|
|
338
|
+
ticking = false;
|
|
339
|
+
});
|
|
340
|
+
ticking = true;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
this[scrollableEventHandlerSymbol] = function () {
|
|
345
|
+
if (!ticking) {
|
|
346
|
+
getWindow().requestAnimationFrame(() => {
|
|
347
|
+
calcAndSetNavigationTopScrollableParentContext.call(self);
|
|
348
|
+
ticking = false;
|
|
349
|
+
});
|
|
350
|
+
ticking = true;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
return this;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
*
|
|
359
|
+
* @param {HTMLElement} element
|
|
360
|
+
* @return {HTMLElement|Window}
|
|
361
|
+
*/
|
|
362
|
+
function findScrollableParent(element) {
|
|
363
|
+
|
|
364
|
+
let parent = element.parentElement;
|
|
365
|
+
while (parent) {
|
|
366
|
+
const overflowY = getWindow().getComputedStyle(parent).overflowY;
|
|
367
|
+
if (overflowY === 'scroll' || overflowY === 'auto') {
|
|
368
|
+
return parent;
|
|
369
|
+
}
|
|
370
|
+
parent = parent.parentElement;
|
|
371
|
+
}
|
|
372
|
+
return getWindow();
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* @private
|
|
377
|
+
* @return {void}
|
|
378
|
+
*/
|
|
379
|
+
function initControlReferences() {
|
|
380
|
+
this[tableOfContentElementSymbol] = this.shadowRoot.querySelector(
|
|
381
|
+
`[${ATTRIBUTE_ROLE}="control"]`,
|
|
382
|
+
);
|
|
383
|
+
|
|
384
|
+
this[navigationElementSymbol] = this.shadowRoot.querySelector(
|
|
385
|
+
`[${ATTRIBUTE_ROLE}="navigation"]`,
|
|
386
|
+
);
|
|
387
|
+
|
|
388
|
+
this[navigationControlElementSymbol] = this.shadowRoot.querySelector(
|
|
389
|
+
`[${ATTRIBUTE_ROLE}="navigation-control"]`,
|
|
390
|
+
);
|
|
391
|
+
|
|
392
|
+
this[navigationListElementSymbol] = this.shadowRoot.querySelector(
|
|
393
|
+
`[${ATTRIBUTE_ROLE}="navigation-list"]`,
|
|
394
|
+
);
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* @private
|
|
399
|
+
* @return {string}
|
|
400
|
+
*/
|
|
401
|
+
function getTemplate() {
|
|
402
|
+
// language=HTML
|
|
403
|
+
return `
|
|
404
|
+
<div data-monster-role="control" part="control">
|
|
405
|
+
<div class="navigation" data-monster-role="navigation">
|
|
406
|
+
<monster-popper data-monster-option-mode="enter">
|
|
407
|
+
<div slot="button" data-monster-role="navigation-control">
|
|
408
|
+
</div>
|
|
409
|
+
<div data-monster-role="navigation-list">
|
|
410
|
+
</div>
|
|
411
|
+
</monster-popper>
|
|
412
|
+
</div>
|
|
413
|
+
<slot></slot>
|
|
414
|
+
</div>`;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
registerCustomElement(TableOfContent);
|
|
@@ -24,7 +24,7 @@ const StateStyleSheet = new CSSStyleSheet();
|
|
|
24
24
|
try {
|
|
25
25
|
StateStyleSheet.insertRule(`
|
|
26
26
|
@layer state {
|
|
27
|
-
.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.grid{display:grid}.inline-grid{display:inline-grid}.flex{display:flex}.inline-flex{display:inline-flex}.hidden,.hide,.none{display:none}.visible{visibility:visible}.invisible{visibility:hidden}.monster-border-primary-1,.monster-border-primary-2,.monster-border-primary-3,.monster-border-primary-4{border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width)}.monster-border-0{border-radius:0;border-style:none;border-width:0}.monster-border-primary-1{border-color:var(--monster-bg-color-primary-1)}.monster-border-primary-2{border-color:var(--monster-bg-color-primary-2)}.monster-border-primary-3{border-color:var(--monster-bg-color-primary-3)}.monster-border-primary-4{border-color:var(--monster-bg-color-primary-4)}.monster-border-secondary-1,.monster-border-secondary-2,.monster-border-secondary-3,.monster-border-secondary-4{border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width)}.monster-border-secondary-1{border-color:var(--monster-bg-color-secondary-1)}.monster-border-secondary-2{border-color:var(--monster-bg-color-secondary-2)}.monster-border-secondary-3{border-color:var(--monster-bg-color-secondary-3)}.monster-border-secondary-4{border-color:var(--monster-bg-color-secondary-4)}.monster-border-tertiary-1,.monster-border-tertiary-2,.monster-border-tertiary-3,.monster-border-tertiary-4{border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width)}.monster-border-tertiary-1{border-color:var(--monster-bg-color-tertiary-1)}.monster-border-tertiary-2{border-color:var(--monster-bg-color-tertiary-2)}.monster-border-tertiary-3{border-color:var(--monster-bg-color-tertiary-3)}.monster-border-tertiary-4{border-color:var(--monster-bg-color-tertiary-4)}[data-monster-role=control]{outline:none;width:100%}[data-monster-role=control].flex{align-items:center;display:flex;flex-direction:row}div{text-align:center}::slotted(:empty:not(img)){display:none}slot{align-items:center;display:flex;flex-direction:column;justify-content:center}::slotted(svg[slot=visual]){height:40vmin;min-height:200px;width:auto}::slotted(h1){font-size:3rem;font-weight:400;line-height:1.15;margin
|
|
27
|
+
.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.grid{display:grid}.inline-grid{display:inline-grid}.flex{display:flex}.inline-flex{display:inline-flex}.hidden,.hide,.none{display:none}.visible{visibility:visible}.invisible{visibility:hidden}.monster-border-primary-1,.monster-border-primary-2,.monster-border-primary-3,.monster-border-primary-4{border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width)}.monster-border-0{border-radius:0;border-style:none;border-width:0}.monster-border-primary-1{border-color:var(--monster-bg-color-primary-1)}.monster-border-primary-2{border-color:var(--monster-bg-color-primary-2)}.monster-border-primary-3{border-color:var(--monster-bg-color-primary-3)}.monster-border-primary-4{border-color:var(--monster-bg-color-primary-4)}.monster-border-secondary-1,.monster-border-secondary-2,.monster-border-secondary-3,.monster-border-secondary-4{border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width)}.monster-border-secondary-1{border-color:var(--monster-bg-color-secondary-1)}.monster-border-secondary-2{border-color:var(--monster-bg-color-secondary-2)}.monster-border-secondary-3{border-color:var(--monster-bg-color-secondary-3)}.monster-border-secondary-4{border-color:var(--monster-bg-color-secondary-4)}.monster-border-tertiary-1,.monster-border-tertiary-2,.monster-border-tertiary-3,.monster-border-tertiary-4{border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width)}.monster-border-tertiary-1{border-color:var(--monster-bg-color-tertiary-1)}.monster-border-tertiary-2{border-color:var(--monster-bg-color-tertiary-2)}.monster-border-tertiary-3{border-color:var(--monster-bg-color-tertiary-3)}.monster-border-tertiary-4{border-color:var(--monster-bg-color-tertiary-4)}[data-monster-role=control]{outline:none;width:100%}[data-monster-role=control].flex{align-items:center;display:flex;flex-direction:row}div{text-align:center}::slotted(:empty:not(img)){display:none}slot{align-items:center;display:flex;flex-direction:column;justify-content:center}::slotted(svg[slot=visual]){height:40vmin;min-height:200px;width:auto}::slotted(h1){font-size:3rem;font-weight:400;line-height:1.15;margin:4rem 0 1.5rem;text-align:center}::slotted(h2){font-size:2.5rem;font-weight:400;line-height:1.2;margin:4rem 0 1.5rem;text-align:center}::slotted(h3){font-size:2rem;font-weight:400;line-height:1.25;margin:4rem 0 1.25rem;text-align:center}::slotted(h4){font-size:1.5rem;font-weight:400;line-height:1.3;margin:4rem 0 1.25rem;text-align:center}::slotted(h5){font-size:1.4rem;font-weight:bolder;line-height:1.3;margin:4rem 0 1.25rem;text-align:center}::slotted(h6){font-size:1.3rem;font-weight:700;line-height:1.3;margin:4rem 0 1.25rem;text-align:center}::slotted(p){font-size:1rem;font-weight:400;line-height:1.6;text-align:center;text-align:justify}::slotted(button[slot=action]){align-items:center;background-color:var(--monster-bg-color-primary-1);background-position:50%;border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);box-shadow:var(--monster-box-shadow-1);color:var(--monster-color-primary-1);cursor:pointer;display:flex;font-family:var(--monster-font-family);font-size:1rem;font-weight:400;gap:.4rem;justify-content:center;line-height:1.5;outline:none;overflow:hidden;padding:.375rem .75rem;position:relative;text-align:center;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:-webkit-fill-available;width:-moz-available;width:stretch}::slotted(button[slot=action]:hover){box-shadow:var(--monster-box-shadow-2);transition:background .8s,color .25s .0833333333s}::slotted(*){flex-grow:1}slot[name=action]{align-content:center;align-items:stretch;-moz-column-gap:1rem;column-gap:1rem;display:flex;flex-direction:row;padding:2rem 1rem;place-content:center space-evenly;justify-content:space-between}@media (max-width:480px){slot[name=action]{-moz-column-gap:0;column-gap:0;flex-direction:column;padding:1rem 0;row-gap:1rem}}
|
|
28
28
|
}`, 0);
|
|
29
29
|
} catch (e) {
|
|
30
30
|
addAttributeToken(document.getRootNode().querySelector('html'), ATTRIBUTE_ERRORMESSAGE, e + "");
|
|
@@ -3,46 +3,46 @@
|
|
|
3
3
|
@define-mixin h1 {
|
|
4
4
|
font-size: 3rem;
|
|
5
5
|
line-height: 1.15;
|
|
6
|
-
margin
|
|
6
|
+
margin: 4rem 0 1.5rem;
|
|
7
7
|
font-weight: normal;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
@define-mixin h2 {
|
|
11
11
|
font-size: 2.5rem;
|
|
12
12
|
line-height: 1.2;
|
|
13
|
-
margin
|
|
13
|
+
margin: 4rem 0 1.5rem;
|
|
14
14
|
font-weight: normal;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
@define-mixin h3 {
|
|
18
18
|
font-size: 2rem;
|
|
19
19
|
line-height: 1.25;
|
|
20
|
-
margin
|
|
20
|
+
margin: 4rem 0 1.25rem;
|
|
21
21
|
font-weight: normal;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
@define-mixin h4 {
|
|
25
25
|
font-size: 1.5rem;
|
|
26
26
|
line-height: 1.3;
|
|
27
|
-
margin
|
|
27
|
+
margin: 4rem 0 1.25rem;
|
|
28
28
|
font-weight: normal;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
@define-mixin h5 {
|
|
32
32
|
font-size: 1.4rem;
|
|
33
33
|
line-height: 1.3;
|
|
34
|
-
margin
|
|
34
|
+
margin: 4rem 0 1.25rem;
|
|
35
35
|
font-weight: bolder;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
@define-mixin h6 {
|
|
39
39
|
font-size: 1.3rem;
|
|
40
40
|
line-height: 1.3;
|
|
41
|
-
margin
|
|
41
|
+
margin: 4rem 0 1.25rem;
|
|
42
42
|
font-weight: bold;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
@define-mixin paragraph {
|
|
45
|
+
@define-mixin paragraph {
|
|
46
46
|
font-size: 1rem;
|
|
47
47
|
line-height: 1.6;
|
|
48
48
|
font-weight: normal;
|