@schukai/monster 3.56.1 → 3.57.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +32 -0
- package/example/components/form/toggle-switch.mjs +7 -0
- package/package.json +1 -1
- package/source/components/form/button.mjs +3 -3
- package/source/components/form/select.mjs +1773 -1745
- package/source/components/form/style/select.pcss +1 -1
- package/source/components/form/style/toggle-switch.pcss +74 -0
- package/source/components/form/stylesheet/select.mjs +1 -1
- package/source/components/form/stylesheet/toggle-switch.mjs +27 -0
- package/source/components/form/toggle-switch.mjs +427 -0
- package/source/data/transformer.mjs +33 -1
- package/source/dom/attributes.mjs +1 -1
- package/source/dom/customcontrol.mjs +6 -2
- package/source/dom/customelement.mjs +909 -864
- package/source/dom/updater.mjs +754 -732
- package/source/dom/util/set-option-from-attribute.mjs +2 -1
- package/source/monster.mjs +5 -0
- package/source/types/version.mjs +1 -1
- package/test/cases/components/form/select.mjs +1 -1
- package/test/cases/components/form/toggle-switch.mjs +310 -0
- package/test/cases/components/form/tree-select.mjs +1 -8
- package/test/cases/data/transformer.mjs +16 -0
- package/test/cases/dom/customcontrol.mjs +53 -8
- package/test/cases/dom/customelement-initfromscripthost.mjs +0 -4
- package/test/cases/dom/customelement.mjs +30 -26
- package/test/cases/dom/updater.mjs +14 -3
- package/test/cases/monster.mjs +1 -1
- package/test/util/jsdom.mjs +9 -10
- package/test/web/test.html +2 -2
- package/test/web/tests.js +3044 -1023
@@ -256,7 +256,7 @@ div[data-monster-role=selection] {
|
|
256
256
|
|
257
257
|
[data-monster-role=option][data-monster-focused=true] {
|
258
258
|
outline: 1px dashed var(--monster-color-selection-2);
|
259
|
-
outline-offset: 2px;
|
259
|
+
outline-offset: -2px;
|
260
260
|
}
|
261
261
|
|
262
262
|
[data-monster-role=option] > label:focus,
|
@@ -0,0 +1,74 @@
|
|
1
|
+
@import "../../style/color.pcss";
|
2
|
+
@import "../../style/theme.pcss";
|
3
|
+
@import "../../style/border.pcss";
|
4
|
+
|
5
|
+
[data-monster-role=control] {
|
6
|
+
|
7
|
+
font-family: inherit;
|
8
|
+
font-size: 100%;
|
9
|
+
padding: 0.4rem 0.6rem;
|
10
|
+
margin: 0;
|
11
|
+
outline: none;
|
12
|
+
box-sizing: border-box;
|
13
|
+
}
|
14
|
+
|
15
|
+
[data-monster-role=control]:focus {
|
16
|
+
outline: 1px dashed var(--monster-color-selection-3);
|
17
|
+
outline-offset: 2px;
|
18
|
+
}
|
19
|
+
|
20
|
+
.switch {
|
21
|
+
position: relative;
|
22
|
+
display: inline-block;
|
23
|
+
width: 60px;
|
24
|
+
height: 34px;
|
25
|
+
|
26
|
+
border-color: var(--monster-bg-color-primary-3);
|
27
|
+
border-width: thin;
|
28
|
+
border-style: var(--monster-border-style);
|
29
|
+
transition: background-color 0.2s;
|
30
|
+
display: grid;
|
31
|
+
grid-template-columns: 1fr 1fr;
|
32
|
+
}
|
33
|
+
|
34
|
+
.switch-radio input[type="radio"] {
|
35
|
+
display: none;
|
36
|
+
}
|
37
|
+
|
38
|
+
.label{
|
39
|
+
height: 34px;
|
40
|
+
display: block;
|
41
|
+
text-align: center;
|
42
|
+
line-height: 34px;
|
43
|
+
user-select: none;
|
44
|
+
}
|
45
|
+
|
46
|
+
.switch-slider {
|
47
|
+
position: absolute;
|
48
|
+
top: 4px;
|
49
|
+
bottom: 4px;
|
50
|
+
left: 4px;
|
51
|
+
right: 28px;
|
52
|
+
background-color: var(--monster-bg-color-primary-4);
|
53
|
+
transition: 0.2s;
|
54
|
+
}
|
55
|
+
|
56
|
+
.switch[data-monster-state="on"] .label.off {
|
57
|
+
visibility: hidden;
|
58
|
+
}
|
59
|
+
.switch[data-monster-state="on"] .label.on {
|
60
|
+
visibility: visible;
|
61
|
+
}
|
62
|
+
.switch[data-monster-state="off"] .label.off {
|
63
|
+
visibility: visible;
|
64
|
+
}
|
65
|
+
.switch[data-monster-state="off"] .label.on {
|
66
|
+
visibility: hidden;
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
.switch[data-monster-state="on"] .switch-slider {
|
71
|
+
transform: translateX(24px);
|
72
|
+
|
73
|
+
}
|
74
|
+
|
@@ -20,7 +20,7 @@ const SelectStyleSheet = new CSSStyleSheet();
|
|
20
20
|
try {
|
21
21
|
SelectStyleSheet.insertRule(`
|
22
22
|
@layer select {
|
23
|
-
.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);border-shadow:var(--monster-box-shadow-1)}.monster-border-0{border-radius:0;border-style:none;border-width:0;border-shadow:none}.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);border-shadow:var(--monster-box-shadow-1)}.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);border-shadow:var(--monster-box-shadow-1)}.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]{width:100%}[data-monster-role=control].flex{align-items:center;display:flex;flex-direction:row}.monster-badge-primary{padding:.25em .4em}.monster-badge-primary,.monster-badge-primary-pill{background-color:var(--monster-bg-color-primary-4);border-radius:.25rem;color:var(--monster-color-primary-4);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-primary-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-secondary{padding:.25em .4em}.monster-badge-secondary,.monster-badge-secondary-pill{background-color:var(--monster-bg-color-secondary-3);border-radius:.25rem;color:var(--monster-color-secondary-3);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-secondary-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-tertiary{padding:.25em .4em}.monster-badge-tertiary,.monster-badge-tertiary-pill{background-color:var(--monster-bg-color-tertiary-3);border-radius:.25rem;color:var(--monster-color-tertiary-3);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-tertiary-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-destructive{padding:.25em .4em}.monster-badge-destructive,.monster-badge-destructive-pill{background-color:var(--monster-bg-color-destructive-1);border-radius:.25rem;color:var(--monster-color-destructive-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-destructive-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-success{padding:.25em .4em}.monster-badge-success,.monster-badge-success-pill{background-color:var(--monster-bg-color-success-1);border-radius:.25rem;color:var(--monster-color-success-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-success-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-warning{padding:.25em .4em}.monster-badge-warning,.monster-badge-warning-pill{background-color:var(--monster-bg-color-warning-1);border-radius:.25rem;color:var(--monster-color-warning-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-warning-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-error{padding:.25em .4em}.monster-badge-error,.monster-badge-error-pill{background-color:var(--monster-bg-color-error-1);border-radius:.25rem;color:var(--monster-color-error-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-error-pill{border-radius:10rem;padding:.25em .6em}div[data-monster-role=popper]{align-content:center;background:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-4);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);box-sizing:border-box;color:var(--monster-color-primary-1);display:none;justify-content:space-between;left:0;padding:1.1em;position:absolute;top:0;width:-moz-max-content;width:max-content;z-index:var(--monster-z-index-modal)}div[data-monster-role=popper] div[data-monster-role=arrow]{background:var(--monster-bg-color-primary-1);height:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);pointer-events:none;position:absolute;width:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);z-index:-1}[data-monster-role=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:4 0 90%;min-height:1.4em}.d-none{display:none!important}div[data-monster-role=control]{display:flex;height:100%;position:relative}[data-monster-role=container].open{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\")}[data-monster-role=container].clear{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\")}[data-monster-role=control]{accent-color:var(--monster-color-secondary-2);background-color:var(--monster-bg-color-primary-2);border-color:var(--monster-bg-color-primary-2);-o-border-image:initial;border-image:initial;border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:thin;box-sizing:border-box;color:var(--monster-color-primary-2);display:flex;font-family:inherit;font-size:100%;margin:0;outline:none;padding:.4rem .6rem}@media (prefers-color-scheme:light){[data-monster-role=control]{background-color:var(--monster-bg-color-primary-2);border-color:var(--monster-bg-color-primary-3);color:var(--monster-color-primary-2)}[data-monster-role=control]:focus{outline:1px dashed var(--monster-color-selection-3);outline-offset:2px}}[data-monster-role=control]:hover{box-shadow:var(--monster-box-shadow-2);transition:background .8s,color .25s .0833333333s}div[data-monster-role=selection]{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:5px;justify-content:flex-start;margin:5px}[data-monster-role=option-control]{margin-right:8px}[data-monster-role=badge]{display:inline-flex}[data-monster-role=badge-label]{align-content:center;align-items:center;display:flex;flex-direction:row;gap:7px;justify-content:space-between}[data-monster-role=remove-badge]{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");background-position:100% 100%;background-repeat:no-repeat;background-size:16px;height:16px;margin-left:5px;min-height:16px;order:2;width:16px}@media (prefers-color-scheme:light){[data-monster-role=remove-badge]{filter:invert(1)}}[data-monster-role=filter],[data-monster-role=popper-filter]{display:flex;flex-grow:200;order:99999999;visibility:hidden}[data-monster-role=filter].active{background-color:var(--monster-bg-color-primary-2);border:0;border-color:var(--monster-bg-color-primary-3);border-bottom:1px solid var(--monster-bg-color-primary-3);color:var(--monster-color-primary-2);min-width:40%;outline:none;visibility:visible}.active[data-monster-role=filter][name=popper-filter]{height:1.5em;margin:2.5em;padding:2px;width:calc(100% - var(--monster-border-width)*2)}.option-filter-control{align-items:center;background-color:var(--monster-bg-color-primary-2);display:flex;height:2.5em;margin:-1.1em -1.1em .3em}.status-or-remove-badges{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");background-position:50%;background-repeat:no-repeat;background-size:16px;min-height:16px;width:16px}[data-monster-role=status-or-remove-badges].open{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\")}[data-monster-role=status-or-remove-badges].empty{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-dash-circle'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8'/%3E%3C/svg%3E\")}[data-monster-role=status-or-remove-badges].clear{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\")}[data-monster-role=status-or-remove-badges].loading{animation-duration:1s;animation-iteration-count:infinite;animation-name:activity;animation-timing-function:cubic-bezier(0,0,.2,1);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='activity'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E\")}@keyframes activity{0%{transform:scale(1)}50%{transform:scale(.1)}to{transform:scale(1)}}[data-monster-role=options]{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1}[data-monster-role=option]{align-items:center;box-sizing:border-box;display:flex;padding:6px 5px}[data-monster-role=option] label{align-items:center;display:flex;flex-direction:row;justify-content:flex-start;width:100%}[data-monster-role=option] label>div{align-items:center;display:flex;flex-direction:row;justify-content:space-between;outline:none;width:100%}[data-monster-role=no-options]{background-color:var(--monster-bg-color-warning-2);color:var(--monster-color-warning-2);margin:1.1em 0 0 1.1em}.selected{background-color:var(--monster-bg-color-primary-3);color:var(--monster-color-primary-3)}[data-monster-role=option][data-monster-filtered=true],[data-monster-role=option][data-monster-visibility=hidden]{display:none}[data-monster-role=option][data-monster-focused=true]{outline:1px dashed var(--monster-color-selection-2);outline-offset:2px}[data-monster-role=option]>input:focus,[data-monster-role=option]>label:focus{outline:none}
|
23
|
+
.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);border-shadow:var(--monster-box-shadow-1)}.monster-border-0{border-radius:0;border-style:none;border-width:0;border-shadow:none}.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);border-shadow:var(--monster-box-shadow-1)}.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);border-shadow:var(--monster-box-shadow-1)}.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]{width:100%}[data-monster-role=control].flex{align-items:center;display:flex;flex-direction:row}.monster-badge-primary{padding:.25em .4em}.monster-badge-primary,.monster-badge-primary-pill{background-color:var(--monster-bg-color-primary-4);border-radius:.25rem;color:var(--monster-color-primary-4);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-primary-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-secondary{padding:.25em .4em}.monster-badge-secondary,.monster-badge-secondary-pill{background-color:var(--monster-bg-color-secondary-3);border-radius:.25rem;color:var(--monster-color-secondary-3);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-secondary-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-tertiary{padding:.25em .4em}.monster-badge-tertiary,.monster-badge-tertiary-pill{background-color:var(--monster-bg-color-tertiary-3);border-radius:.25rem;color:var(--monster-color-tertiary-3);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-tertiary-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-destructive{padding:.25em .4em}.monster-badge-destructive,.monster-badge-destructive-pill{background-color:var(--monster-bg-color-destructive-1);border-radius:.25rem;color:var(--monster-color-destructive-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-destructive-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-success{padding:.25em .4em}.monster-badge-success,.monster-badge-success-pill{background-color:var(--monster-bg-color-success-1);border-radius:.25rem;color:var(--monster-color-success-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-success-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-warning{padding:.25em .4em}.monster-badge-warning,.monster-badge-warning-pill{background-color:var(--monster-bg-color-warning-1);border-radius:.25rem;color:var(--monster-color-warning-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-warning-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-error{padding:.25em .4em}.monster-badge-error,.monster-badge-error-pill{background-color:var(--monster-bg-color-error-1);border-radius:.25rem;color:var(--monster-color-error-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-error-pill{border-radius:10rem;padding:.25em .6em}div[data-monster-role=popper]{align-content:center;background:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-4);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);box-sizing:border-box;color:var(--monster-color-primary-1);display:none;justify-content:space-between;left:0;padding:1.1em;position:absolute;top:0;width:-moz-max-content;width:max-content;z-index:var(--monster-z-index-modal)}div[data-monster-role=popper] div[data-monster-role=arrow]{background:var(--monster-bg-color-primary-1);height:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);pointer-events:none;position:absolute;width:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);z-index:-1}[data-monster-role=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:4 0 90%;min-height:1.4em}.d-none{display:none!important}div[data-monster-role=control]{display:flex;height:100%;position:relative}[data-monster-role=container].open{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\")}[data-monster-role=container].clear{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\")}[data-monster-role=control]{accent-color:var(--monster-color-secondary-2);background-color:var(--monster-bg-color-primary-2);border-color:var(--monster-bg-color-primary-2);-o-border-image:initial;border-image:initial;border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:thin;box-sizing:border-box;color:var(--monster-color-primary-2);display:flex;font-family:inherit;font-size:100%;margin:0;outline:none;padding:.4rem .6rem}@media (prefers-color-scheme:light){[data-monster-role=control]{background-color:var(--monster-bg-color-primary-2);border-color:var(--monster-bg-color-primary-3);color:var(--monster-color-primary-2)}[data-monster-role=control]:focus{outline:1px dashed var(--monster-color-selection-3);outline-offset:2px}}[data-monster-role=control]:hover{box-shadow:var(--monster-box-shadow-2);transition:background .8s,color .25s .0833333333s}div[data-monster-role=selection]{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:5px;justify-content:flex-start;margin:5px}[data-monster-role=option-control]{margin-right:8px}[data-monster-role=badge]{display:inline-flex}[data-monster-role=badge-label]{align-content:center;align-items:center;display:flex;flex-direction:row;gap:7px;justify-content:space-between}[data-monster-role=remove-badge]{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");background-position:100% 100%;background-repeat:no-repeat;background-size:16px;height:16px;margin-left:5px;min-height:16px;order:2;width:16px}@media (prefers-color-scheme:light){[data-monster-role=remove-badge]{filter:invert(1)}}[data-monster-role=filter],[data-monster-role=popper-filter]{display:flex;flex-grow:200;order:99999999;visibility:hidden}[data-monster-role=filter].active{background-color:var(--monster-bg-color-primary-2);border:0;border-color:var(--monster-bg-color-primary-3);border-bottom:1px solid var(--monster-bg-color-primary-3);color:var(--monster-color-primary-2);min-width:40%;outline:none;visibility:visible}.active[data-monster-role=filter][name=popper-filter]{height:1.5em;margin:2.5em;padding:2px;width:calc(100% - var(--monster-border-width)*2)}.option-filter-control{align-items:center;background-color:var(--monster-bg-color-primary-2);display:flex;height:2.5em;margin:-1.1em -1.1em .3em}.status-or-remove-badges{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");background-position:50%;background-repeat:no-repeat;background-size:16px;min-height:16px;width:16px}[data-monster-role=status-or-remove-badges].open{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\")}[data-monster-role=status-or-remove-badges].empty{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-dash-circle'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8'/%3E%3C/svg%3E\")}[data-monster-role=status-or-remove-badges].clear{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\")}[data-monster-role=status-or-remove-badges].loading{animation-duration:1s;animation-iteration-count:infinite;animation-name:activity;animation-timing-function:cubic-bezier(0,0,.2,1);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='activity'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E\")}@keyframes activity{0%{transform:scale(1)}50%{transform:scale(.1)}to{transform:scale(1)}}[data-monster-role=options]{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1}[data-monster-role=option]{align-items:center;box-sizing:border-box;display:flex;padding:6px 5px}[data-monster-role=option] label{align-items:center;display:flex;flex-direction:row;justify-content:flex-start;width:100%}[data-monster-role=option] label>div{align-items:center;display:flex;flex-direction:row;justify-content:space-between;outline:none;width:100%}[data-monster-role=no-options]{background-color:var(--monster-bg-color-warning-2);color:var(--monster-col or-warning-2);margin:1.1em 0 0 1.1em}.selected{background-color:var(--monster-bg-color-primary-3);color:var(--monster-color-primary-3)}[data-monster-role=option][data-monster-filtered=true],[data-monster-role=option][data-monster-visibility=hidden]{display:none}[data-monster-role=option][data-monster-focused=true]{outline:1px dashed var(--monster-color-selection-2);outline-offset:-2px}[data-monster-role=option]>input:focus,[data-monster-role=option]>label:focus{outline:none}
|
24
24
|
}`, 0);
|
25
25
|
} catch (e) {
|
26
26
|
addAttributeToken(document.getRootNode().querySelector('html'), ATTRIBUTE_ERRORMESSAGE, e + "");
|
@@ -0,0 +1,27 @@
|
|
1
|
+
|
2
|
+
/**
|
3
|
+
* Copyright schukai GmbH and contributors 2024. All Rights Reserved.
|
4
|
+
* Node module: @schukai/monster
|
5
|
+
* This file is licensed under the AGPLv3 License.
|
6
|
+
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
7
|
+
*/
|
8
|
+
|
9
|
+
import {addAttributeToken} from "../../../dom/attributes.mjs";
|
10
|
+
import {ATTRIBUTE_ERRORMESSAGE} from "../../../dom/constants.mjs";
|
11
|
+
|
12
|
+
export {ToggleSwitchStyleSheet}
|
13
|
+
|
14
|
+
/**
|
15
|
+
* @private
|
16
|
+
* @type {CSSStyleSheet}
|
17
|
+
*/
|
18
|
+
const ToggleSwitchStyleSheet = new CSSStyleSheet();
|
19
|
+
|
20
|
+
try {
|
21
|
+
ToggleSwitchStyleSheet.insertRule(`
|
22
|
+
@layer toggleswitch {
|
23
|
+
:after,:before,:root{--monster-color-gray-1:#f6f6f6;--monster-color-gray-2:#e2e2e2;--monster-color-gray-3:#8b8b8b;--monster-color-gray-4:#6f6f6f;--monster-color-gray-5:#3e3e3e;--monster-color-gray-6:#222;--monster-color-rose-1:#fff7f9;--monster-color-rose-2:#ffdce5;--monster-color-rose-3:#ff3b8d;--monster-color-rose-4:#db0072;--monster-color-rose-5:#800040;--monster-color-rose-6:#4c0023;--monster-color-raspberry-1:#fff8f8;--monster-color-raspberry-2:#ffdddf;--monster-color-raspberry-3:#ff426c;--monster-color-raspberry-4:#de0051;--monster-color-raspberry-5:#82002c;--monster-color-raspberry-6:#510018;--monster-color-red-1:#fff8f6;--monster-color-red-2:#ffddd8;--monster-color-red-3:#ff4647;--monster-color-red-4:#e0002b;--monster-color-red-5:#830014;--monster-color-red-6:#530003;--monster-color-orange-1:#fff8f5;--monster-color-orange-2:#ffded1;--monster-color-orange-3:#fd4d00;--monster-color-orange-4:#cd3c00;--monster-color-orange-5:#752100;--monster-color-orange-6:#401600;--monster-color-cinnamon-1:#fff8f3;--monster-color-cinnamon-2:#ffdfc6;--monster-color-cinnamon-3:#d57300;--monster-color-cinnamon-4:#ac5c00;--monster-color-cinnamon-5:#633300;--monster-color-cinnamon-6:#371d00;--monster-color-amber-1:#fff8ef;--monster-color-amber-2:#ffe0b2;--monster-color-amber-3:#b98300;--monster-color-amber-4:#926700;--monster-color-amber-5:#523800;--monster-color-amber-6:#302100;--monster-color-yellow-1:#fff9e5;--monster-color-yellow-2:#ffe53e;--monster-color-yellow-3:#9c8b00;--monster-color-yellow-4:#7d6f00;--monster-color-yellow-5:#463d00;--monster-color-yellow-6:#292300;--monster-color-lime-1:#f7ffac;--monster-color-lime-2:#d5f200;--monster-color-lime-3:#819300;--monster-color-lime-4:#677600;--monster-color-lime-5:#394100;--monster-color-lime-6:#222600;--monster-color-chartreuse-1:#e5ffc3;--monster-color-chartreuse-2:#98fb00;--monster-color-chartreuse-3:#5c9b00;--monster-color-chartreuse-4:#497c00;--monster-color-chartreuse-5:#264500;--monster-color-chartreuse-6:#182600;--monster-color-green-1:#e0ffd9;--monster-color-green-2:#72ff6c;--monster-color-green-3:#00a21f;--monster-color-green-4:#008217;--monster-color-green-5:#004908;--monster-color-green-6:#062800;--monster-color-emerald-1:#dcffe6;--monster-color-emerald-2:#5dffa2;--monster-color-emerald-3:#00a05a;--monster-color-emerald-4:#008147;--monster-color-emerald-5:#004825;--monster-color-emerald-6:#002812;--monster-color-aquamarine-1:#daffef;--monster-color-aquamarine-2:#42ffc6;--monster-color-aquamarine-3:#009f78;--monster-color-aquamarine-4:#007f5f;--monster-color-aquamarine-5:#004734;--monster-color-aquamarine-6:#00281b;--monster-color-teal-1:#d7fff7;--monster-color-teal-2:#00ffe4;--monster-color-teal-3:#009e8c;--monster-color-teal-4:#007c6e;--monster-color-teal-5:#00443c;--monster-color-teal-6:#002722;--monster-color-cyan-1:#c4fffe;--monster-color-cyan-2:#00fafb;--monster-color-cyan-3:#00999a;--monster-color-cyan-4:#007a7b;--monster-color-cyan-5:#004344;--monster-color-cyan-6:#002525;--monster-color-powder-1:#dafaff;--monster-color-powder-2:#8df0ff;--monster-color-powder-3:#0098a9;--monster-color-powder-4:#007987;--monster-color-powder-5:#004048;--monster-color-powder-6:#002227;--monster-color-sky-1:#e3f7ff;--monster-color-sky-2:#aee9ff;--monster-color-sky-3:#0094b4;--monster-color-sky-4:#007590;--monster-color-sky-5:#00404f;--monster-color-sky-6:#001f28;--monster-color-cerulean-1:#e8f6ff;--monster-color-cerulean-2:#b9e3ff;--monster-color-cerulean-3:#0092c5;--monster-color-cerulean-4:#00749d;--monster-color-cerulean-5:#003c54;--monster-color-cerulean-6:#001d2a;--monster-color-azure-1:#e8f2ff;--monster-color-azure-2:#c6e0ff;--monster-color-azure-3:#008fdb;--monster-color-azure-4:#0071af;--monster-color-azure-5:#003b5e;--monster-color-azure-6:#001c30;--monster-color-blue-1:#f0f4ff;--monster-color-blue-2:#d4e0ff;--monster-color-blue-3:#0089fc;--monster-color-blue-4:#006dca;--monster-color-blue-5:#00386d;--monster-color-blue-6:#001a39;--monster-color-indigo-1:#f3f3ff;--monster-color-indigo-2:#deddff;--monster-color-indigo-3:#657eff;--monster-color-indigo-4:#0061fc;--monster-color-indigo-5:#00328a;--monster-color-indigo-6:#001649;--monster-color-violet-1:#f7f1ff;--monster-color-violet-2:#e8daff;--monster-color-violet-3:#9b70ff;--monster-color-violet-4:#794aff;--monster-color-violet-5:#2d0fbf;--monster-color-violet-6:#0b0074;--monster-color-purple-1:#fdf4ff;--monster-color-purple-2:#f7d9ff;--monster-color-purple-3:#d150ff;--monster-color-purple-4:#b01fe3;--monster-color-purple-5:#660087;--monster-color-purple-6:#3a004f;--monster-color-magenta-1:#fff3fc;--monster-color-magenta-2:#ffd7f6;--monster-color-magenta-3:#f911e0;--monster-color-magenta-4:#ca00b6;--monster-color-magenta-5:#740068;--monster-color-magenta-6:#44003c;--monster-color-pink-1:#fff7fb;--monster-color-pink-2:#ffdcec;--monster-color-pink-3:#ff2fb2;--monster-color-pink-4:#d2008f;--monster-color-pink-5:#790051;--monster-color-pink-6:#4b0030}.monster-theme-primary-1{background-color:var(--monster-bg-color-primary-1);color:var(--monster-color-primary-1)}.monster-theme-primary-disabled-1{background-color:var(--monster-bg-color-primary-disabled-1);color:var(--monster-color-primary-disabled-1)}.monster-theme-secondary-1{background-color:var(--monster-bg-color-secondary-1);color:var(--monster-color-secondary-1)}.monster-theme-tertiary-1{background-color:var(--monster-bg-color-tertiary-1);color:var(--monster-color-tertiary-1)}.monster-theme-destructive-1{background-color:var(--monster-bg-color-destructive-1);color:var(--monster-color-destructive-1)}.monster-theme-success-1{background-color:var(--monster-bg-color-success-1);color:var(--monster-color-success-1)}.monster-theme-warning-1{background-color:var(--monster-bg-color-warning-1);color:var(--monster-color-warning-1)}.monster-theme-error-1{background-color:var(--monster-bg-color-error-1);color:var(--monster-color-error-1)}.monster-theme-selection-1{background-color:var(--monster-bg-color-selection-1);color:var(--monster-color-selection-1)}.monster-border-color-1{border-color:var(--monster-color-border-1)}.monster-color-neutral-1{color:var(--monster-color-primary-1)}.monster-bg-color-primary-1{background-color:var(--monster-bg-color-primary-1)}.monster-bg-color-secondary-1{background-color:var(--monster-bg-color-secondary-1)}.monster-bg-color-tertiary-1{background-color:var(--monster-bg-color-tertiary-1)}.monster-color-primary-1{background-color:var(--monster-bg-color-primary-1);color:var(--monster-color-primary-1)}.monster-color-secondary-1{background-color:var(--monster-bg-color-secondary-1);color:var(--monster-color-secondary-1)}.monster-color-tertiary-1{background-color:var(--monster-bg-color-tertiary-1);color:var(--monster-color-tertiary-1)}.monster-color-destructive-1{background-color:var(--monster-bg-color-destructive-1);color:var(--monster-color-destructive-1)}.monster-color-success-1{background-color:var(--monster-bg-color-success-1);color:var(--monster-color-success-1)}.monster-color-warning-1{background-color:var(--monster-bg-color-warning-1);color:var(--monster-color-warning-1)}.monster-color-error-1{background-color:var(--monster-bg-color-error-1);color:var(--monster-color-error-1)}.monster-color-selection-1{background-color:var(--monster-bg-color-selection-1);color:var(--monster-color-selection-1)}.monster-theme-primary-2{background-color:var(--monster-bg-color-primary-2);color:var(--monster-color-primary-2)}.monster-theme-primary-disabled-2{background-color:var(--monster-bg-color-primary-disabled-2);color:var(--monster-color-primary-disabled-2)}.monster-theme-secondary-2{background-color:var(--monster-bg-color-secondary-2);color:var(--monster-color-secondary-2)}.monster-theme-tertiary-2{background-color:var(--monster-bg-color-tertiary-2);color:var(--monster-color-tertiary-2)}.monster-theme-destructive-2{background-color:var(--monster-bg-color-destructive-2);color:var(--monster-color-destructive-2)}.monster-theme-success-2{background-color:var(--monster-bg-color-success-2);color:var(--monster-color-success-2)}.monster-theme-warning-2{background-color:var(--monster-bg-color-warning-2);color:var(--monster-color-warning-2)}.monster-theme-error-2{background-color:var(--monster-bg-color-error-2);color:var(--monster-color-error-2)}.monster-theme-selection-2{background-color:var(--monster-bg-color-selection-2);color:var(--monster-color-selection-2)}.monster-border-color-2{border-color:var(--monster-color-border-2)}.monster-color-neutral-2{color:var(--monster-color-primary-2)}.monster-bg-color-primary-2{background-color:var(--monster-bg-color-primary-2)}.monster-bg-color-secondary-2{background-color:var(--monster-bg-color-secondary-2)}.monster-bg-color-tertiary-2{background-color:var(--monster-bg-color-tertiary-2)}.monster-color-primary-2{background-color:var(--monster-bg-color-primary-2);color:var(--monster-color-primary-2)}.monster-color-secondary-2{background-color:var(--monster-bg-color-secondary-2);color:var(--monster-color-secondary-2)}.monster-color-tertiary-2{background-color:var(--monster-bg-color-tertiary-2);color:var(--monster-color-tertiary-2)}.monster-color-destructive-2{background-color:var(--monster-bg-color-destructive-2);color:var(--monster-color-destructive-2)}.monster-color-success-2{background-color:var(--monster-bg-color-success-2);color:var(--monster-color-success-2)}.monster-color-warning-2{background-color:var(--monster-bg-color-warning-2);color:var(--monster-color-warning-2)}.monster-color-error-2{background-color:var(--monster-bg-color-error-2);color:var(--monster-color-error-2)}.monster-color-selection-2{background-color:var(--monster-bg-color-selection-2);color:var(--monster-color-selection-2)}.monster-theme-primary-3{background-color:var(--monster-bg-color-primary-3);color:var(--monster-color-primary-3)}.monster-theme-primary-disabled-3{background-color:var(--monster-bg-color-primary-disabled-3);color:var(--monster-color-primary-disabled-3)}.monster-theme-secondary-3{background-color:var(--monster-bg-color-secondary-3);color:var(--monster-color-secondary-3)}.monster-theme-tertiary-3{background-color:var(--monster-bg-color-tertiary-3);color:var(--monster-color-tertiary-3)}.monster-theme-destructive-3{background-color:var(--monster-bg-color-destructive-3);color:var(--monster-color-destructive-3)}.monster-theme-success-3{background-color:var(--monster-bg-color-success-3);color:var(--monster-color-success-3)}.monster-theme-warning-3{background-color:var(--monster-bg-color-warning-3);color:var(--monster-color-warning-3)}.monster-theme-error-3{background-color:var(--monster-bg-color-error-3);color:var(--monster-color-error-3)}.monster-theme-selection-3{background-color:var(--monster-bg-color-selection-3);color:var(--monster-color-selection-3)}.monster-border-color-3{border-color:var(--monster-color-border-3)}.monster-color-neutral-3{color:var(--monster-color-primary-3)}.monster-bg-color-primary-3{background-color:var(--monster-bg-color-primary-3)}.monster-bg-color-secondary-3{background-color:var(--monster-bg-color-secondary-3)}.monster-bg-color-tertiary-3{background-color:var(--monster-bg-color-tertiary-3)}.monster-color-primary-3{background-color:var(--monster-bg-color-primary-3);color:var(--monster-color-primary-3)}.monster-color-secondary-3{background-color:var(--monster-bg-color-secondary-3);color:var(--monster-color-secondary-3)}.monster-color-tertiary-3{background-color:var(--monster-bg-color-tertiary-3);color:var(--monster-color-tertiary-3)}.monster-color-destructive-3{background-color:var(--monster-bg-color-destructive-3);color:var(--monster-color-destructive-3)}.monster-color-success-3{background-color:var(--monster-bg-color-success-3);color:var(--monster-color-success-3)}.monster-color-warning-3{background-color:var(--monster-bg-color-warning-3);color:var(--monster-color-warning-3)}.monster-color-error-3{background-color:var(--monster-bg-color-error-3);color:var(--monster-color-error-3)}.monster-color-selection-3{background-color:var(--monster-bg-color-selection-3);color:var(--monster-color-selection-3)}.monster-theme-primary-4{background-color:var(--monster-bg-color-primary-4);color:var(--monster-color-primary-4)}.monster-theme-primary-disabled-4{background-color:var(--monster-bg-color-primary-disabled-4);color:var(--monster-color-primary-disabled-4)}.monster-theme-secondary-4{background-color:var(--monster-bg-color-secondary-4);color:var(--monster-color-secondary-4)}.monster-theme-tertiary-4{background-color:var(--monster-bg-color-tertiary-4);color:var(--monster-color-tertiary-4)}.monster-theme-destructive-4{background-color:var(--monster-bg-color-destructive-4);color:var(--monster-color-destructive-4)}.monster-theme-success-4{background-color:var(--monster-bg-color-success-4);color:var(--monster-color-success-4)}.monster-theme-warning-4{background-color:var(--monster-bg-color-warning-4);color:var(--monster-color-warning-4)}.monster-theme-error-4{background-color:var(--monster-bg-color-error-4);color:var(--monster-color-error-4)}.monster-theme-selection-4{background-color:var(--monster-bg-color-selection-4);color:var(--monster-color-selection-4)}.monster-border-color-4{border-color:var(--monster-color-border-4)}.monster-color-neutral-4{color:var(--monster-color-primary-4)}.monster-bg-color-primary-4{background-color:var(--monster-bg-color-primary-4)}.monster-bg-color-secondary-4{background-color:var(--monster-bg-color-secondary-4)}.monster-bg-color-tertiary-4{background-color:var(--monster-bg-color-tertiary-4)}.monster-color-primary-4{background-color:var(--monster-bg-color-primary-4);color:var(--monster-color-primary-4)}.monster-color-secondary-4{background-color:var(--monster-bg-color-secondary-4);color:var(--monster-color-secondary-4)}.monster-color-tertiary-4{background-color:var(--monster-bg-color-tertiary-4);color:var(--monster-color-tertiary-4)}.monster-color-destructive-4{background-color:var(--monster-bg-color-destructive-4);color:var(--monster-color-destructive-4)}.monster-color-success-4{background-color:var(--monster-bg-color-success-4);color:var(--monster-color-success-4)}.monster-color-warning-4{background-color:var(--monster-bg-color-warning-4);color:var(--monster-color-warning-4)}.monster-color-error-4{background-color:var(--monster-bg-color-error-4);color:var(--monster-color-error-4)}.monster-color-selection-4{background-color:var(--monster-bg-color-selection-4);color:var(--monster-color-selection-4)}.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);border-shadow:var(--monster-box-shadow-1)}.monster-border-0{border-radius:0;border-style:none;border-width:0;border-shadow:none}.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);border-shadow:var(--monster-box-shadow-1)}.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);border-shadow:var(--monster-box-shadow-1)}.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]{box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;outline:none;padding:.4rem .6rem}[data-monster-role=control]:focus{outline:1px dashed var(--monster-color-selection-3);outline-offset:2px}.switch{border-color:var(--monster-bg-color-primary-3);border-style:var(--monster-border-style);border-width:thin;display:inline-block;display:grid;grid-template-columns:1fr 1fr;height:34px;position:relative;transition:background-color .2s;width:60px}.switch-radio input[type=radio]{display:none}.label{display:block;height:34px;line-height:34px;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.switch-slider{background-color:var(--monster-bg-color-primary-4);bottom:4px;left:4px;position:absolute;right:28px;top:4px;transition:.2s}.switch[data-monster-state=on] .label.off{visibility:hidden}.switch[data-monster-state=off] .label.off,.switch[data-monster-state=on] .label.on{visibility:visible}.switch[data-monster-state=off] .label.on{visibility:hidden}.switch[data-monster-state=on] .switch-slider{transform:translateX(24px)}
|
24
|
+
}`, 0);
|
25
|
+
} catch (e) {
|
26
|
+
addAttributeToken(document.getRootNode().querySelector('html'), ATTRIBUTE_ERRORMESSAGE, e + "");
|
27
|
+
}
|
@@ -0,0 +1,427 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright schukai GmbH and contributors 2024. All Rights Reserved.
|
3
|
+
* Node module: @schukai/monster
|
4
|
+
* This file is licensed under the AGPLv3 License.
|
5
|
+
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
6
|
+
*/
|
7
|
+
import { instanceSymbol } from "../../constants.mjs";
|
8
|
+
import { internalSymbol } from "../../constants.mjs";
|
9
|
+
import { CustomControl } from "../../dom/customcontrol.mjs";
|
10
|
+
import { Observer } from "../../types/observer.mjs";
|
11
|
+
import { ProxyObserver } from "../../types/proxyobserver.mjs";
|
12
|
+
|
13
|
+
import { addAttributeToken } from "../../dom/attributes.mjs";
|
14
|
+
import {
|
15
|
+
assembleMethodSymbol,
|
16
|
+
registerCustomElement,
|
17
|
+
updaterTransformerMethodsSymbol
|
18
|
+
} from "../../dom/customelement.mjs";
|
19
|
+
import {
|
20
|
+
isObject
|
21
|
+
} from "../../types/is.mjs";
|
22
|
+
import { ToggleSwitchStyleSheet } from "./stylesheet/toggle-switch.mjs";
|
23
|
+
import {
|
24
|
+
ATTRIBUTE_ERRORMESSAGE,
|
25
|
+
ATTRIBUTE_ROLE,
|
26
|
+
} from "../../dom/constants.mjs";
|
27
|
+
export { ToggleSwitch };
|
28
|
+
|
29
|
+
/**
|
30
|
+
* @private
|
31
|
+
* @type {symbol}
|
32
|
+
*/
|
33
|
+
const switchElementSymbol = Symbol("switchElement");
|
34
|
+
|
35
|
+
/**
|
36
|
+
* @private
|
37
|
+
* @type {symbol}
|
38
|
+
*/
|
39
|
+
const switchElementSymbolOn = Symbol("switchElementOn");
|
40
|
+
|
41
|
+
/**
|
42
|
+
* @private
|
43
|
+
* @type {symbol}
|
44
|
+
*/
|
45
|
+
const switchElementSymbolOff = Symbol("switchElementOff");
|
46
|
+
|
47
|
+
/**
|
48
|
+
* @type {string}
|
49
|
+
*/
|
50
|
+
export const STATE_ON = 'on';
|
51
|
+
|
52
|
+
/**
|
53
|
+
* @type {string}
|
54
|
+
*/
|
55
|
+
export const STATE_OFF = 'off';
|
56
|
+
|
57
|
+
/**
|
58
|
+
* This CustomControl creates a ToggleSwitch element
|
59
|
+
*
|
60
|
+
* <img src="./images/switch.png">
|
61
|
+
*
|
62
|
+
*
|
63
|
+
* @startuml toggleswitch.png
|
64
|
+
* skinparam monochrome true
|
65
|
+
* skinparam shadowing false
|
66
|
+
* HTMLElement <|-- CustomElement
|
67
|
+
* CustomElement <|-- CustomControl
|
68
|
+
* CustomControl <|-- ToggleSwitch
|
69
|
+
* @enduml
|
70
|
+
*
|
71
|
+
* @since 3.57.0
|
72
|
+
* @copyright schukai GmbH
|
73
|
+
* @memberOf Monster.Components.Form
|
74
|
+
* @summary A simple Switch
|
75
|
+
*/
|
76
|
+
class ToggleSwitch extends CustomControl {
|
77
|
+
|
78
|
+
/**
|
79
|
+
* This method is called by the `instanceof` operator.
|
80
|
+
* @returns {symbol}
|
81
|
+
* @since 2.1.0
|
82
|
+
*/
|
83
|
+
static get [instanceSymbol]() {
|
84
|
+
return Symbol.for("@schukai/monster/components/form/toggle-switch@@instance");
|
85
|
+
}
|
86
|
+
|
87
|
+
static getTag() {
|
88
|
+
return "monster-toggle-switch";
|
89
|
+
}
|
90
|
+
|
91
|
+
/**
|
92
|
+
* To set the options via the html tag the attribute `data-monster-options` must be used.
|
93
|
+
* @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
|
94
|
+
*
|
95
|
+
* The individual configuration values can be found in the table.
|
96
|
+
*
|
97
|
+
* @property {string} value=current value of the element
|
98
|
+
* @property {Boolean} disabled=disabled=false Disabled state
|
99
|
+
* @property {Object} classes
|
100
|
+
* @property {string} classes.on=specifies the class for the on state.
|
101
|
+
* @property {string} classes.off=specifies the class for the off state.
|
102
|
+
* @property {Object} values
|
103
|
+
* @property {string} values.off=specifies the value of the element if it is not selected
|
104
|
+
* @property {Object} labels
|
105
|
+
* @property {string} labels.on=specifies the label for the on state.
|
106
|
+
* @property {string} labels.off=specifies the label for the off state.
|
107
|
+
* @property {Object} templates
|
108
|
+
* @property {string} templates.main=specifies the main template used by the control.
|
109
|
+
*
|
110
|
+
* @since 3.57.0
|
111
|
+
*/
|
112
|
+
get defaults() {
|
113
|
+
return Object.assign({}, super.defaults, {
|
114
|
+
value: null,
|
115
|
+
disabled: false,
|
116
|
+
classes: {
|
117
|
+
"on": "monster-theme-primary-3",
|
118
|
+
"off": "monster-theme-primary-2"
|
119
|
+
},
|
120
|
+
values: {
|
121
|
+
on: "on",
|
122
|
+
off: "off"
|
123
|
+
},
|
124
|
+
labels: {
|
125
|
+
"toggle-switch-on": "ON",
|
126
|
+
"toggle-switch-off": "OFF",
|
127
|
+
},
|
128
|
+
templates: {
|
129
|
+
main: getTemplate()
|
130
|
+
}
|
131
|
+
})
|
132
|
+
}
|
133
|
+
|
134
|
+
/**
|
135
|
+
*
|
136
|
+
* @return {Monster.Components.Form.Button}
|
137
|
+
*/
|
138
|
+
[assembleMethodSymbol]() {
|
139
|
+
const self = this;
|
140
|
+
super[assembleMethodSymbol]();
|
141
|
+
initControlReferences.call(this);
|
142
|
+
initEventHandler.call(this);
|
143
|
+
|
144
|
+
/**
|
145
|
+
* init value to off
|
146
|
+
* if the value was not defined before inserting it into the HTML
|
147
|
+
*/
|
148
|
+
if (self.getOption("value") === null) {
|
149
|
+
self.setOption('value', self.getOption("values.off"));
|
150
|
+
}
|
151
|
+
|
152
|
+
/**
|
153
|
+
* value from attribute
|
154
|
+
*/
|
155
|
+
if (self.hasAttribute("value")) {
|
156
|
+
self.setOption('value', self.getAttribute("value"));
|
157
|
+
}
|
158
|
+
|
159
|
+
/**
|
160
|
+
* validate value
|
161
|
+
*/
|
162
|
+
validateAndSetValue.call(self);
|
163
|
+
|
164
|
+
if(this.state === STATE_ON) {
|
165
|
+
toggleClassOn.call(self);
|
166
|
+
}else{
|
167
|
+
toggleClassOff.call(self);
|
168
|
+
}
|
169
|
+
|
170
|
+
/**
|
171
|
+
* is called when options changed
|
172
|
+
*/
|
173
|
+
self[internalSymbol].attachObserver(
|
174
|
+
new Observer(function () {
|
175
|
+
if (isObject(this) && this instanceof ProxyObserver) {
|
176
|
+
validateAndSetValue.call(self);
|
177
|
+
toggleClass.call(self);
|
178
|
+
}
|
179
|
+
}),
|
180
|
+
);
|
181
|
+
|
182
|
+
return this;
|
183
|
+
}
|
184
|
+
|
185
|
+
/**
|
186
|
+
* updater transformer methods for pipe
|
187
|
+
*
|
188
|
+
* @return {function}
|
189
|
+
*/
|
190
|
+
[updaterTransformerMethodsSymbol]() {
|
191
|
+
const self = this;
|
192
|
+
return {
|
193
|
+
"state-callback": (Wert) => {
|
194
|
+
return self.state;
|
195
|
+
}
|
196
|
+
}
|
197
|
+
}
|
198
|
+
|
199
|
+
/**
|
200
|
+
* @return [SwitchStyleSheet]
|
201
|
+
*/
|
202
|
+
static getCSSStyleSheet() {
|
203
|
+
return [ToggleSwitchStyleSheet];
|
204
|
+
}
|
205
|
+
|
206
|
+
/**
|
207
|
+
* toggle switch
|
208
|
+
*
|
209
|
+
* ```
|
210
|
+
* e = document.querySelector('monster-toggle-switch');
|
211
|
+
* e.click()
|
212
|
+
* ```
|
213
|
+
*/
|
214
|
+
click() {
|
215
|
+
toggleValues.call(this);
|
216
|
+
}
|
217
|
+
|
218
|
+
/**
|
219
|
+
* toggle switch on/off
|
220
|
+
*
|
221
|
+
* ```
|
222
|
+
* e = document.querySelector('monster-toggle-switch');
|
223
|
+
* e.toggle()
|
224
|
+
* ```
|
225
|
+
*
|
226
|
+
* @return {ToggleSwitch}
|
227
|
+
*/
|
228
|
+
toggle() {
|
229
|
+
this.click();
|
230
|
+
return this;
|
231
|
+
}
|
232
|
+
|
233
|
+
/**
|
234
|
+
* toggle switch on
|
235
|
+
*
|
236
|
+
* ```
|
237
|
+
* e = document.querySelector('monster-toggle-switch');
|
238
|
+
* e.toggleOn()
|
239
|
+
* ```
|
240
|
+
*
|
241
|
+
* @return {ToggleSwitch}
|
242
|
+
*/
|
243
|
+
toggleOn() {
|
244
|
+
this.setOption('value', this.getOption('values.on'));
|
245
|
+
return this;
|
246
|
+
};
|
247
|
+
|
248
|
+
/**
|
249
|
+
* toggle switch off
|
250
|
+
*
|
251
|
+
* ```
|
252
|
+
* e = document.querySelector('monster-toggle-switch');
|
253
|
+
* e.toggleOff()
|
254
|
+
* ```
|
255
|
+
*
|
256
|
+
* @return {ToggleSwitch}
|
257
|
+
*/
|
258
|
+
toggleOff() {
|
259
|
+
this.setOption('value', this.getOption('values.off'));
|
260
|
+
return this;
|
261
|
+
};
|
262
|
+
|
263
|
+
/**
|
264
|
+
* returns the status of the element
|
265
|
+
*
|
266
|
+
* ```
|
267
|
+
* e = document.querySelector('monster-toggle-switch');
|
268
|
+
* console.log(e.state)
|
269
|
+
* // ↦ off
|
270
|
+
* ```
|
271
|
+
*
|
272
|
+
* @return {string}
|
273
|
+
*/
|
274
|
+
get state() {
|
275
|
+
return this.getOption('value') === this.getOption('values.on') ? STATE_ON : STATE_OFF;
|
276
|
+
}
|
277
|
+
|
278
|
+
/**
|
279
|
+
* The current value of the Switch
|
280
|
+
*
|
281
|
+
* ```
|
282
|
+
* e = document.querySelector('monster-toggle-switch');
|
283
|
+
* console.log(e.value)
|
284
|
+
* // ↦ on
|
285
|
+
* ```
|
286
|
+
*
|
287
|
+
* @return {string}
|
288
|
+
*/
|
289
|
+
get value() {
|
290
|
+
return this.state === STATE_ON ? this.getOption('values.on') : this.getOption('values.off');
|
291
|
+
}
|
292
|
+
|
293
|
+
/**
|
294
|
+
* Set value
|
295
|
+
*
|
296
|
+
* ```
|
297
|
+
* e = document.querySelector('monster-toggle-switch');
|
298
|
+
* e.value="on"
|
299
|
+
* ```
|
300
|
+
*
|
301
|
+
* @property {string} value
|
302
|
+
*/
|
303
|
+
set value(value) {
|
304
|
+
this.setOption('value', value);
|
305
|
+
}
|
306
|
+
|
307
|
+
}
|
308
|
+
|
309
|
+
/**
|
310
|
+
* @private
|
311
|
+
*/
|
312
|
+
function initControlReferences() {
|
313
|
+
this[switchElementSymbol] = this.shadowRoot.querySelector(
|
314
|
+
`[${ATTRIBUTE_ROLE}=switch]`,
|
315
|
+
);
|
316
|
+
}
|
317
|
+
|
318
|
+
/**
|
319
|
+
* @private
|
320
|
+
*/
|
321
|
+
function toggleClassOn() {
|
322
|
+
this[switchElementSymbol].classList.remove(this.getOption('classes.off')); // change color
|
323
|
+
this[switchElementSymbol].classList.add(this.getOption('classes.on'));// change color
|
324
|
+
}
|
325
|
+
|
326
|
+
/**
|
327
|
+
* @private
|
328
|
+
*/
|
329
|
+
function toggleClassOff() {
|
330
|
+
this[switchElementSymbol].classList.remove(this.getOption('classes.on'));// change color
|
331
|
+
this[switchElementSymbol].classList.add(this.getOption('classes.off'));// change color
|
332
|
+
}
|
333
|
+
|
334
|
+
/**
|
335
|
+
* @private
|
336
|
+
*/
|
337
|
+
function toggleClass() {
|
338
|
+
const self = this;
|
339
|
+
if (self.getOption('value') === self.getOption('values.on')) {
|
340
|
+
toggleClassOn.call(self);
|
341
|
+
} else {
|
342
|
+
toggleClassOff.call(self);
|
343
|
+
}
|
344
|
+
}
|
345
|
+
|
346
|
+
/**
|
347
|
+
* @private
|
348
|
+
*/
|
349
|
+
function toggleValues() {
|
350
|
+
const self = this;
|
351
|
+
|
352
|
+
if (self.getOption('disabled') === true) {
|
353
|
+
return;
|
354
|
+
}
|
355
|
+
|
356
|
+
if (self.getOption('value') === self.getOption('values.on')) {
|
357
|
+
self.setOption('value', this.getOption('values.off'));
|
358
|
+
self?.setFormValue(self.getOption('value')); // set form value
|
359
|
+
} else {
|
360
|
+
self.setOption('value', this.getOption('values.on'));
|
361
|
+
self?.setFormValue(self.getOption('values.off')); // set form value
|
362
|
+
}
|
363
|
+
|
364
|
+
self.setOption('state', self.state);
|
365
|
+
}
|
366
|
+
|
367
|
+
/**
|
368
|
+
* @private
|
369
|
+
*/
|
370
|
+
function validateAndSetValue() {
|
371
|
+
let self = this;
|
372
|
+
let value = self.getOption('value');
|
373
|
+
|
374
|
+
let validatedValues = [];
|
375
|
+
validatedValues.push(this.getOption('values.on'));
|
376
|
+
validatedValues.push(this.getOption('values.off'));
|
377
|
+
|
378
|
+
if (validatedValues.includes(value) === false) {
|
379
|
+
addAttributeToken(
|
380
|
+
this,
|
381
|
+
ATTRIBUTE_ERRORMESSAGE,
|
382
|
+
'The value "' + value + '" must be "' + self.getOption("values.on") + '" or "' + self.getOption("values.off"),
|
383
|
+
);
|
384
|
+
self.setOption('disabled', true);
|
385
|
+
self.formDisabledCallback(true);
|
386
|
+
} else {
|
387
|
+
self.setOption('disabled', false);
|
388
|
+
self.formDisabledCallback(false);
|
389
|
+
}
|
390
|
+
}
|
391
|
+
|
392
|
+
/**
|
393
|
+
* @private
|
394
|
+
* @return {initEventHandler}
|
395
|
+
*/
|
396
|
+
function initEventHandler() {
|
397
|
+
const self = this;
|
398
|
+
self.addEventListener("keyup", function (event) {
|
399
|
+
if (event.code === 'Space') {
|
400
|
+
self[switchElementSymbol].click();
|
401
|
+
}
|
402
|
+
});
|
403
|
+
self.addEventListener("click", function (event) {
|
404
|
+
toggleValues.call(self);
|
405
|
+
});
|
406
|
+
return this;
|
407
|
+
}
|
408
|
+
|
409
|
+
/**
|
410
|
+
* @private
|
411
|
+
* @return {string}
|
412
|
+
*/
|
413
|
+
function getTemplate() {
|
414
|
+
// language=HTML
|
415
|
+
return `
|
416
|
+
<div data-monster-role="control" part="control" tabindex="0">
|
417
|
+
|
418
|
+
<div class="switch" data-monster-role="switch" data-monster-attributes="data-monster-state path:value | call:state-callback " >
|
419
|
+
<div class="label on" data-monster-replace="path:labels.toggle-switch-on"></div>
|
420
|
+
<div class="label off" data-monster-replace="path:labels.toggle-switch-off"></div>
|
421
|
+
<div class="switch-slider"></div>
|
422
|
+
</div>
|
423
|
+
|
424
|
+
</div>`;
|
425
|
+
}
|
426
|
+
|
427
|
+
registerCustomElement(ToggleSwitch);
|
@@ -775,7 +775,39 @@ function transform(value) {
|
|
775
775
|
defaultValue = convertSpecialStrings(defaultValue, value);
|
776
776
|
|
777
777
|
return translations.getText(key, defaultValue);
|
778
|
-
|
778
|
+
|
779
|
+
case "set-toggle":
|
780
|
+
case "set-set":
|
781
|
+
case "set-remove":
|
782
|
+
let modifier = args.shift();
|
783
|
+
let delimiter = args.shift();
|
784
|
+
if (delimiter === undefined) {
|
785
|
+
delimiter = " ";
|
786
|
+
}
|
787
|
+
|
788
|
+
const set = new Set(value.split(delimiter));
|
789
|
+
const toggle = new Set(modifier.split(delimiter));
|
790
|
+
if (this.command === "set-toggle") {
|
791
|
+
for (const t of toggle) {
|
792
|
+
if (set.has(t)) {
|
793
|
+
set.delete(t);
|
794
|
+
} else {
|
795
|
+
set.add(t);
|
796
|
+
}
|
797
|
+
}
|
798
|
+
} else if (this.command === "set-set") {
|
799
|
+
for (const t of toggle) {
|
800
|
+
set.add(t);
|
801
|
+
}
|
802
|
+
} else if (this.command === "set-remove") {
|
803
|
+
for (const t of toggle) {
|
804
|
+
set.delete(t);
|
805
|
+
}
|
806
|
+
}
|
807
|
+
return Array.from(set).join(delimiter);
|
808
|
+
|
809
|
+
|
810
|
+
|
779
811
|
default:
|
780
812
|
throw new Error(`unknown command ${this.command}`);
|
781
813
|
}
|