@schukai/monster 4.60.0 → 4.62.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.
@@ -0,0 +1,213 @@
1
+ @layer dropzone {
2
+ :host {
3
+ box-sizing: border-box;
4
+ display: block;
5
+ }
6
+
7
+ [data-monster-role="control"] {
8
+ box-sizing: border-box;
9
+ outline: none;
10
+ width: 100%;
11
+ }
12
+
13
+ [data-monster-role="dropzone"] {
14
+ align-items: center;
15
+ background-color: var(--monster-bg-color-primary-1);
16
+ border: 1px dashed var(--monster-color-border-2);
17
+ border-radius: var(--monster-border-radius);
18
+ box-sizing: border-box;
19
+ color: var(--monster-color-primary-1);
20
+ display: flex;
21
+ flex-direction: column;
22
+ gap: 0.8rem;
23
+ justify-content: center;
24
+ padding: 1.5rem;
25
+ text-align: center;
26
+ transition:
27
+ background-color 0.2s ease,
28
+ border-color 0.2s ease,
29
+ box-shadow 0.2s ease;
30
+ }
31
+
32
+ [data-monster-role="dropzone"].is-dragover {
33
+ background-color: var(--monster-bg-color-primary-2);
34
+ color: var(--monster-color-primary-2);
35
+ border-color: var(--monster-bg-color-primary-4);
36
+ box-shadow: var(--monster-box-shadow-2);
37
+ }
38
+
39
+ [data-monster-role="dropzone"][data-monster-disabled] {
40
+ cursor: not-allowed;
41
+ opacity: 0.6;
42
+ }
43
+
44
+ [data-monster-role="dropzone"]:focus-visible {
45
+ outline: 1px dashed var(--monster-color-selection-3);
46
+ outline-offset: 4px;
47
+ }
48
+
49
+ [data-monster-role="title"] {
50
+ font-weight: 700;
51
+ }
52
+
53
+ [data-monster-role="hint"] {
54
+ color: var(--monster-color-secondary-2);
55
+ font-size: 0.9rem;
56
+ }
57
+
58
+ [data-monster-role="status"] {
59
+ font-size: 0.9rem;
60
+ margin-top: 0.4rem;
61
+ }
62
+
63
+ [data-monster-role="dropzone"] monster-button {
64
+ width: max-content;
65
+ }
66
+
67
+ [data-monster-role="input"] {
68
+ display: none;
69
+ }
70
+
71
+ [data-monster-role="list"] {
72
+ display: flex;
73
+ flex-direction: column;
74
+ gap: 0.6rem;
75
+ list-style: none;
76
+ margin: 0.8rem 0 0;
77
+ padding: 0;
78
+ }
79
+
80
+ [data-monster-role="item"] {
81
+ align-items: center;
82
+ border: 1px solid var(--monster-color-border-2);
83
+ border-radius: var(--monster-border-radius);
84
+ display: grid;
85
+ gap: 0.4rem;
86
+ grid-template-columns: auto 1fr 120px 40px 28px 28px;
87
+ padding: 0.6rem 0.8rem;
88
+ transition:
89
+ opacity 0.25s ease,
90
+ transform 0.25s ease;
91
+ }
92
+
93
+ [data-monster-role="preview"] {
94
+ align-items: center;
95
+ background-color: var(--monster-bg-color-primary-2);
96
+ color: var(--monster-color-primary-2);
97
+ border-radius: calc(var(--monster-border-radius) / 1.5);
98
+ display: flex;
99
+ height: 40px;
100
+ justify-content: center;
101
+ overflow: hidden;
102
+ width: 40px;
103
+ }
104
+
105
+ [data-monster-role="preview-image"] {
106
+ height: 100%;
107
+ object-fit: cover;
108
+ width: 100%;
109
+ }
110
+
111
+ [data-monster-role="preview-icon"] {
112
+ color: var(--monster-color-primary-1);
113
+ font-size: 0.7rem;
114
+ font-weight: 700;
115
+ text-transform: uppercase;
116
+ }
117
+
118
+ [data-monster-role="meta"] {
119
+ display: flex;
120
+ flex-direction: column;
121
+ gap: 0.15rem;
122
+ min-width: 0;
123
+ }
124
+
125
+ [data-monster-role="name"] {
126
+ font-weight: 600;
127
+ overflow: hidden;
128
+ text-overflow: ellipsis;
129
+ white-space: nowrap;
130
+ }
131
+
132
+ [data-monster-role="info"] {
133
+ color: var(--monster-color-secondary-2);
134
+ font-size: 0.8rem;
135
+ overflow: hidden;
136
+ text-overflow: ellipsis;
137
+ white-space: nowrap;
138
+ }
139
+
140
+ [data-monster-role="progress"] {
141
+ background-color: var(--monster-bg-color-primary-2);
142
+ color: var(--monster-color-primary-2);
143
+ border-radius: 999px;
144
+ height: 6px;
145
+ overflow: hidden;
146
+ position: relative;
147
+ }
148
+
149
+ [data-monster-role="bar"] {
150
+ background-color: var(--monster-bg-color-primary-4);
151
+ color: var(--monster-color-primary-4);
152
+ height: 100%;
153
+ width: 0;
154
+ }
155
+
156
+ [data-monster-role="percent"] {
157
+ font-size: 0.8rem;
158
+ padding-left: 0.2rem;
159
+ text-align: right;
160
+ }
161
+
162
+ [data-monster-role="state-icon"] {
163
+ align-items: center;
164
+ display: flex;
165
+ justify-content: center;
166
+ }
167
+
168
+ [data-monster-role="remove"],
169
+ [data-monster-role="retry"] {
170
+ align-items: center;
171
+ background-color: transparent;
172
+ border: 0;
173
+ color: var(--monster-color-primary-1);
174
+ cursor: pointer;
175
+ display: flex;
176
+ height: 28px;
177
+ justify-content: center;
178
+ padding: 0;
179
+ width: 28px;
180
+ }
181
+
182
+ [data-monster-role="retry"] {
183
+ display: none;
184
+ }
185
+
186
+ [data-monster-role="item"][data-monster-state="error"]
187
+ [data-monster-role="retry"] {
188
+ display: flex;
189
+ }
190
+
191
+ [data-monster-role="item"][data-monster-state="error"]
192
+ [data-monster-role="state-icon"] {
193
+ color: var(--monster-color-error-1);
194
+ }
195
+
196
+ [data-monster-role="item"][data-monster-state="success"]
197
+ [data-monster-role="state-icon"] {
198
+ color: var(--monster-color-success-1);
199
+ }
200
+
201
+ [data-monster-role="item"][data-monster-state="success"] {
202
+ border-color: var(--monster-bg-color-success-1);
203
+ }
204
+
205
+ [data-monster-role="item"][data-monster-state="error"] {
206
+ border-color: var(--monster-bg-color-error-1);
207
+ }
208
+
209
+ [data-monster-role="item"].is-disappearing {
210
+ opacity: 0;
211
+ transform: translateY(6px);
212
+ }
213
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Copyright © Volker Schukai and all contributing authors, 2025. 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 Volker Schukai.
11
+ */
12
+
13
+ import { addAttributeToken } from "../../../dom/attributes.mjs";
14
+ import { ATTRIBUTE_ERRORMESSAGE } from "../../../dom/constants.mjs";
15
+
16
+ export { DropzoneStyleSheet };
17
+
18
+ /**
19
+ * @private
20
+ * @type {CSSStyleSheet}
21
+ */
22
+ const DropzoneStyleSheet = new CSSStyleSheet();
23
+
24
+ try {
25
+ DropzoneStyleSheet.insertRule(
26
+ `
27
+ @layer dropzone {
28
+ @layer dropzone{:host{box-sizing:border-box;display:block}[data-monster-role=control]{box-sizing:border-box;outline:none;width:100%}[data-monster-role=dropzone]{align-items:center;background-color:var(--monster-bg-color-primary-1);border:1px dashed var(--monster-color-border-2);border-radius:var(--monster-border-radius);box-sizing:border-box;color:var(--monster-color-primary-1);display:flex;flex-direction:column;gap:.8rem;justify-content:center;padding:1.5rem;text-align:center;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}[data-monster-role=dropzone].is-dragover{background-color:var(--monster-bg-color-primary-2);border-color:var(--monster-bg-color-primary-4);box-shadow:var(--monster-box-shadow-2);color:var(--monster-color-primary-2)}[data-monster-role=dropzone][data-monster-disabled]{cursor:not-allowed;opacity:.6}[data-monster-role=dropzone]:focus-visible{outline:1px dashed var(--monster-color-selection-3);outline-offset:4px}[data-monster-role=title]{font-weight:700}[data-monster-role=hint]{color:var(--monster-color-secondary-2);font-size:.9rem}[data-monster-role=status]{font-size:.9rem;margin-top:.4rem}[data-monster-role=dropzone] monster-button{width:-moz-max-content;width:max-content}[data-monster-role=input]{display:none}[data-monster-role=list]{display:flex;flex-direction:column;gap:.6rem;list-style:none;margin:.8rem 0 0;padding:0}[data-monster-role=item]{align-items:center;border:1px solid var(--monster-color-border-2);border-radius:var(--monster-border-radius);display:grid;gap:.4rem;grid-template-columns:auto 1fr 120px 40px 28px 28px;padding:.6rem .8rem;transition:opacity .25s ease,transform .25s ease}[data-monster-role=preview]{align-items:center;background-color:var(--monster-bg-color-primary-2);border-radius:calc(var(--monster-border-radius)/1.5);color:var(--monster-color-primary-2);display:flex;height:40px;justify-content:center;overflow:hidden;width:40px}[data-monster-role=preview-image]{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}[data-monster-role=preview-icon]{color:var(--monster-color-primary-1);font-size:.7rem;font-weight:700;text-transform:uppercase}[data-monster-role=meta]{display:flex;flex-direction:column;gap:.15rem;min-width:0}[data-monster-role=name]{font-weight:600}[data-monster-role=info],[data-monster-role=name]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-monster-role=info]{color:var(--monster-color-secondary-2);font-size:.8rem}[data-monster-role=progress]{background-color:var(--monster-bg-color-primary-2);border-radius:999px;color:var(--monster-color-primary-2);height:6px;overflow:hidden;position:relative}[data-monster-role=bar]{background-color:var(--monster-bg-color-primary-4);color:var(--monster-color-primary-4);height:100%;width:0}[data-monster-role=percent]{font-size:.8rem;padding-left:.2rem;text-align:right}[data-monster-role=remove],[data-monster-role=retry],[data-monster-role=state-icon]{align-items:center;display:flex;justify-content:center}[data-monster-role=remove],[data-monster-role=retry]{background-color:transparent;border:0;color:var(--monster-color-primary-1);cursor:pointer;height:28px;padding:0;width:28px}[data-monster-role=retry]{display:none}[data-monster-role=item][data-monster-state=error]
29
+ [data-monster-role=retry]{display:flex}[data-monster-role=item][data-monster-state=error]
30
+ [data-monster-role=state-icon]{color:var(--monster-color-error-1)}[data-monster-role=item][data-monster-state=success]
31
+ [data-monster-role=state-icon]{color:var(--monster-color-success-1)}[data-monster-role=item][data-monster-state=success]{border-color:var(--monster-bg-color-success-1)}[data-monster-role=item][data-monster-state=error]{border-color:var(--monster-bg-color-error-1)}[data-monster-role=item].is-disappearing{opacity:0;transform:translateY(6px)}}
32
+ }`,
33
+ 0,
34
+ );
35
+ } catch (e) {
36
+ addAttributeToken(
37
+ document.getRootNode().querySelector("html"),
38
+ ATTRIBUTE_ERRORMESSAGE,
39
+ e + "",
40
+ );
41
+ }
@@ -42,6 +42,7 @@ export * from "./components/time/day.mjs";
42
42
  export * from "./components/time/month-calendar.mjs";
43
43
  export * from "./components/form/message-state-button.mjs";
44
44
  export * from "./components/form/password.mjs";
45
+ export * from "./components/form/dropzone.mjs";
45
46
  export * from "./components/form/button-bar.mjs";
46
47
  export * from "./components/form/reload.mjs";
47
48
  export * from "./components/form/util/popper.mjs";