@cloudron/pankow 3.2.7 → 3.2.9

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.
@@ -146,6 +146,8 @@ async function open(event, element = null) {
146
146
 
147
147
  if (element) container.value.style.minWidth = element.getBoundingClientRect().width + 'px';
148
148
 
149
+ await nextTick();
150
+
149
151
  position();
150
152
 
151
153
  openEventTimeStamp.value = event.timeStamp;
@@ -208,7 +210,6 @@ function close() {
208
210
  container.value.style.maxHeight = 'unset';
209
211
  container.value.style.bottom = 'unset';
210
212
  container.value.style.top = 'unset';
211
- container.value = null;
212
213
  emit('close');
213
214
  }
214
215
 
@@ -159,7 +159,7 @@ onMounted(() => {
159
159
 
160
160
  <template>
161
161
  <div class="pankow-singleselect" :class="{ 'pankow-singleselect-disabled': disabled }" ref="elem" tabindex="0" @click="onClick" @keydown.enter="onOpen" @keydown.down.stop.prevent="onSelectNext" @keydown.up.stop.prevent="onSelectPrev" @keydown.esc.stop="onClose" @keydown.stop="onKeyDown($event)">
162
- <Menu ref="menu" :model="menuModel" :search-threshold="searchThreshold" :close-on-activation="true" @close="onMenuClosed"></Menu>
162
+ <Menu ref="menu" :model="menuModel" :search-threshold="searchThreshold" :close-on-activation="true" @close="onMenuClosed"/>
163
163
  {{ selected ? selected[optionLabel] : placeholder }}
164
164
  <Icon icon="fa-solid fa-chevron-down" class="pankow-button-icon-right-with-text" />
165
165
  </div>
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@cloudron/pankow",
3
3
  "private": false,
4
- "version": "3.2.7",
4
+ "version": "3.2.9",
5
5
  "description": "",
6
6
  "main": "index.js",
7
7
  "types": "types/index.d.ts",
8
- "files": ["*.js", "components", "viewers", "types"],
8
+ "files": ["*.css", "*.js", "components", "viewers", "types"],
9
9
  "scripts": {
10
10
  "gallery": "cd gallery && vite",
11
11
  "build": "cd gallery && vite build",
@@ -24,7 +24,7 @@
24
24
  "devDependencies": {
25
25
  "@vitejs/plugin-vue": "^6.0.1",
26
26
  "typescript": "^5.9.2",
27
- "vite": "^7.1.1",
27
+ "vite": "^7.1.2",
28
28
  "vue": "^3.5.18"
29
29
  }
30
30
  }
package/style.css ADDED
@@ -0,0 +1,370 @@
1
+ [v-cloak] {
2
+ display: none;
3
+ }
4
+
5
+ * {
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ :root {
10
+ --font-family: 'Inter';
11
+
12
+ --pankow-body-background-color: white;
13
+
14
+ --pankow-text-color: #333;
15
+ --pankow-text-color-alt: #333;
16
+ --pankow-text-color-white: white;
17
+
18
+ --pankow-color-dark: #495057;
19
+ --pankow-color-dark-secondary: #495057;
20
+
21
+ --pankow-color-background: #f8f8f8;
22
+ --pankow-color-background-hover: #e9ecef;
23
+
24
+ --pankow-color-light-dark: #ced4da;
25
+
26
+ --pankow-tooltip-background-color: rgba(0,0,0,0.5);
27
+ --pankow-tooltip-text-color: white;
28
+
29
+ --pankow-color-primary: #1a76bf;
30
+ --pankow-color-primary-hover: #0d89ec;
31
+ --pankow-color-primary-active: #0b7ad1;
32
+
33
+ --pankow-color-danger: #ca3636;
34
+ --pankow-color-danger-hover: #e24949;
35
+ --pankow-color-danger-active: #970d0d;
36
+
37
+ --pankow-color-success: #0e893b;
38
+ --pankow-color-success-hover: #1d9b4c;
39
+ --pankow-color-success-active: #17773b;
40
+
41
+ --pankow-color-secondary: #607D8B;
42
+ --pankow-color-secondary-hover: #889ba3;
43
+ --pankow-color-secondary-active: #324650;
44
+
45
+ --pankow-box-shadow: 0 2px 5px rgba(0,0,0,.1);
46
+ --pankow-menu-shadow: 0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;
47
+ --pankow-notification-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.1) 0px 1px 2px -1px;
48
+
49
+ --pankow-input-vertial-padding: 6px;
50
+ --pankow-input-horizontal-padding: max(7px, var(--pankow-border-radius));
51
+ --pankow-input-background-color: white;
52
+ --pankow-input-border-color: #ced4da;
53
+ --pankow-input-border-color-hover: var(--pankow-color-dark);
54
+ --pankow-input-border-color-focus: var(--pankow-color-primary-hover);
55
+
56
+ --pankow-dialog-background-color: white;
57
+ --pankow-dialog-backdrop-color: rgba(0,0,0,.4);
58
+
59
+ --pankow-border-radius: 4px;
60
+ }
61
+
62
+ *,
63
+ *::before,
64
+ *::after {
65
+ box-sizing: border-box;
66
+ }
67
+
68
+ html, body {
69
+ margin: 0;
70
+ padding: 0;
71
+ width: 100%;
72
+ height: 100%;
73
+ font-size: 14px; /* this also defines the overall widget size as all sizes are in rem */
74
+ font-family: var(--font-family);
75
+ font-weight: 400;
76
+ color: var(--pankow-text-color);
77
+ overflow: hidden;
78
+ }
79
+
80
+ input {
81
+ accent-color: var(--pankow-color-primary);
82
+ }
83
+
84
+ @media (prefers-color-scheme: dark) {
85
+ :root {
86
+ --pankow-body-background-color: black;
87
+
88
+ --pankow-text-color: #ced4da;
89
+ --pankow-text-color-alt: #495057;
90
+ --pankow-text-color-white: #ced4da;
91
+
92
+ --pankow-input-background-color: #1b1e21;
93
+ --pankow-input-border-color: #1b1e21;
94
+ --pankow-input-border-color-hover: #ced4da;
95
+
96
+ --pankow-color-background: #1b1e21;
97
+ --pankow-color-background-hover: var(--pankow-color-dark);
98
+
99
+ --pankow-dialog-background-color: #32383e;
100
+ --pankow-dialog-backdrop-color: rgba(0,0,0,.7);
101
+
102
+ --pankow-tooltip-background-color: rgba(255,255,255,0.5);
103
+ --pankow-tooltip-text-color: black;
104
+ }
105
+ }
106
+
107
+ a {
108
+ color: var(--pankow-color-dark);
109
+ text-decoration: none;
110
+ }
111
+
112
+ @media (prefers-color-scheme: dark) {
113
+ a {
114
+ color: var(--pankow-color-light-dark);
115
+ }
116
+ }
117
+
118
+ a:hover {
119
+ color: var(--pankow-color-primary-hover);
120
+ }
121
+
122
+ code {
123
+ background-color: var(--pankow-color-light-dark);
124
+ border-radius: 2px;
125
+ padding: 0 5px;
126
+ }
127
+
128
+ @media (prefers-color-scheme: dark) {
129
+ code {
130
+ background-color: var(--pankow-color-dark);
131
+ }
132
+ }
133
+
134
+ label {
135
+ display: block;
136
+ font-weight: bold;
137
+ margin-top: 10px;
138
+ margin-bottom: 6px;
139
+ }
140
+
141
+ select {
142
+ font-size: 14px;
143
+ color: var(--pankow-text-color);
144
+ margin: 4px 0;
145
+ margin-inline: 4px;
146
+ background-color: var(--pankow-input-background-color);
147
+ padding: 7px 18px;
148
+ border-radius: var(--pankow-border-radius);
149
+ display: inline-block;
150
+ border: 1px solid var(--pankow-input-border-color);
151
+ transition: border-color 250ms;
152
+ cursor: pointer;
153
+ }
154
+
155
+ select:hover {
156
+ border: 1px solid var(--pankow-color-dark);
157
+ }
158
+
159
+ select:focus {
160
+ border: 1px solid var(--pankow-color-primary-hover);
161
+ outline: none;
162
+ }
163
+
164
+ textarea {
165
+ font-size: 14px;
166
+ color: var(--pankow-text-color);
167
+ margin: 6px 0;
168
+ background-color: var(--pankow-input-background-color);
169
+ padding: 6px;
170
+ border-radius: var(--pankow-border-radius);
171
+ display: inline-block;
172
+ border: 1px solid var(--pankow-input-border-color);
173
+ transition: border-color 250ms;
174
+ }
175
+
176
+ textarea:hover {
177
+ border: 1px solid var(--pankow-color-dark);
178
+ }
179
+
180
+ textarea:focus {
181
+ border: 1px solid var(--pankow-color-primary-hover);
182
+ outline: none;
183
+ }
184
+
185
+ @media (max-width: 576px) {
186
+ .pankow-no-mobile {
187
+ display: none !important;
188
+ }
189
+ }
190
+
191
+ @media (min-width: 575px) {
192
+ .pankow-no-desktop {
193
+ display: none !important;
194
+ }
195
+ }
196
+
197
+ .pankow-tooltip {
198
+ position: absolute;
199
+ border-radius: var(--pankow-border-radius);
200
+ background-color: var(--pankow-tooltip-background-color);
201
+ backdrop-filter: blur(10px);
202
+ color: var(--pankow-tooltip-text-color);
203
+ padding: 4px 7px;
204
+ font-size: 12px;
205
+ z-index: 6000;
206
+ text-align: center;
207
+ }
208
+
209
+ .has-error {
210
+ color: var(--pankow-color-danger);
211
+ }
212
+
213
+ .pankow-fade-enter-active,
214
+ .pankow-fade-leave-active {
215
+ transition: opacity 0.5s ease;
216
+ }
217
+
218
+ .pankow-fade-enter-from,
219
+ .pankow-fade-leave-to {
220
+ opacity: 0;
221
+ }
222
+
223
+ .pankow-scale-enter-active,
224
+ .pankow-scale-leave-active {
225
+ transition: transform 0.2s ease;
226
+ }
227
+
228
+ .pankow-scale-enter-from,
229
+ .pankow-scale-leave-to {
230
+ transform: scale(0);
231
+ }
232
+
233
+ .pankow-fade-fast-enter-active,
234
+ .pankow-fade-fast-leave-active {
235
+ transition: opacity 0.2s ease;
236
+ }
237
+
238
+ .pankow-fade-fast-enter-from,
239
+ .pankow-fade-fast-leave-to {
240
+ opacity: 0;
241
+ }
242
+
243
+ .pankow-roll-down-enter-active {
244
+ transform-origin: center top;
245
+ animation: pankow-roll-down-in 0.1s;
246
+ }
247
+
248
+ .pankow-roll-down-leave-active {
249
+ transform-origin: center top;
250
+ animation: pankow-roll-down-in 0.1s reverse;
251
+ }
252
+
253
+ @keyframes pankow-roll-down-in {
254
+ 0% {
255
+ opacity: 0;
256
+ transform: scaleY(0.7);
257
+ }
258
+
259
+ 100% {
260
+ opacity: 1;
261
+ transform: scaleY(1);
262
+ }
263
+ }
264
+
265
+ .pankow-roll-up-enter-active {
266
+ transform-origin: center bottom;
267
+ animation: pankow-roll-up-in 0.1s;
268
+ }
269
+
270
+ .pankow-roll-up-leave-active {
271
+ transform-origin: center bottom;
272
+ animation: pankow-roll-up-in 0.1s reverse;
273
+ }
274
+
275
+ @keyframes pankow-roll-up-in {
276
+ 0% {
277
+ opacity: 0;
278
+ transform: scaleY(0.7);
279
+ }
280
+
281
+ 100% {
282
+ opacity: 1;
283
+ transform: scaleY(1);
284
+ }
285
+ }
286
+
287
+
288
+ .pankow-animation-pop-down-enter-active {
289
+ transform-origin: center top;
290
+ animation: pankow-animation-pop-down-in 0.1s;
291
+ }
292
+
293
+ .pankow-animation-pop-down-leave-active {
294
+ transform-origin: center top;
295
+ animation: pankow-animation-pop-down-in 0.1s reverse;
296
+ }
297
+
298
+ @keyframes pankow-animation-pop-down-in {
299
+ 0% {
300
+ opacity: 0;
301
+ transform: scale(0.7);
302
+ }
303
+
304
+ 100% {
305
+ opacity: 1;
306
+ transform: scale(1);
307
+ }
308
+ }
309
+
310
+ .pankow-animation-pop-up-enter-active {
311
+ transform-origin: center bottom;
312
+ animation: pankow-animation-pop-up-in 0.1s;
313
+ }
314
+
315
+ .pankow-animation-pop-up-leave-active {
316
+ transform-origin: center bottom;
317
+ animation: pankow-animation-pop-up-in 0.1s reverse;
318
+ }
319
+
320
+ @keyframes pankow-animation-pop-up-in {
321
+ 0% {
322
+ opacity: 0;
323
+ transform: scale(0.7);
324
+ }
325
+
326
+ 100% {
327
+ opacity: 1;
328
+ transform: scale(1);
329
+ }
330
+ }
331
+
332
+ .pankow-bounce-center-enter-active {
333
+ animation: pankow-bounce-center-in 0.2s;
334
+ }
335
+
336
+ .pankow-bounce-center-leave-active {
337
+ animation: pankow-bounce-center-in 0.2s reverse;
338
+ }
339
+
340
+ @keyframes pankow-bounce-center-in {
341
+ 0% {
342
+ opacity: 0;
343
+ transform: translateX(-50%) translateY(-50%) scale(0.9);
344
+ }
345
+
346
+ 100% {
347
+ opacity: 1;
348
+ transform: translateX(-50%) translateY(-50%) scale(1);
349
+ }
350
+ }
351
+
352
+ .pankow-bounce-center-top-enter-active {
353
+ animation: pankow-bounce-center-top-in 0.2s;
354
+ }
355
+
356
+ .pankow-bounce-center-top-leave-active {
357
+ animation: pankow-bounce-center-top-in 0.2s reverse;
358
+ }
359
+
360
+ @keyframes pankow-bounce-center-top-in {
361
+ 0% {
362
+ opacity: 0;
363
+ transform: translateX(-50%) scale(0.9);
364
+ }
365
+
366
+ 100% {
367
+ opacity: 1;
368
+ transform: translateX(-50%) scale(1);
369
+ }
370
+ }