web-mojo 2.1.46

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.
Files changed (91) hide show
  1. package/LICENSE +198 -0
  2. package/README.md +510 -0
  3. package/dist/admin.cjs.js +2 -0
  4. package/dist/admin.cjs.js.map +1 -0
  5. package/dist/admin.css +621 -0
  6. package/dist/admin.es.js +7973 -0
  7. package/dist/admin.es.js.map +1 -0
  8. package/dist/auth.cjs.js +2 -0
  9. package/dist/auth.cjs.js.map +1 -0
  10. package/dist/auth.css +804 -0
  11. package/dist/auth.es.js +2168 -0
  12. package/dist/auth.es.js.map +1 -0
  13. package/dist/charts.cjs.js +2 -0
  14. package/dist/charts.cjs.js.map +1 -0
  15. package/dist/charts.css +1002 -0
  16. package/dist/charts.es.js +16 -0
  17. package/dist/charts.es.js.map +1 -0
  18. package/dist/chunks/ContextMenu-BrHqj0fn.js +80 -0
  19. package/dist/chunks/ContextMenu-BrHqj0fn.js.map +1 -0
  20. package/dist/chunks/ContextMenu-gEcpSz56.js +2 -0
  21. package/dist/chunks/ContextMenu-gEcpSz56.js.map +1 -0
  22. package/dist/chunks/DataView-DPryYpEW.js +2 -0
  23. package/dist/chunks/DataView-DPryYpEW.js.map +1 -0
  24. package/dist/chunks/DataView-DjZQrpba.js +843 -0
  25. package/dist/chunks/DataView-DjZQrpba.js.map +1 -0
  26. package/dist/chunks/Dialog-BsRx4eg3.js +2 -0
  27. package/dist/chunks/Dialog-BsRx4eg3.js.map +1 -0
  28. package/dist/chunks/Dialog-DSlctbon.js +1377 -0
  29. package/dist/chunks/Dialog-DSlctbon.js.map +1 -0
  30. package/dist/chunks/FilePreviewView-BmFHzK5K.js +5868 -0
  31. package/dist/chunks/FilePreviewView-BmFHzK5K.js.map +1 -0
  32. package/dist/chunks/FilePreviewView-DcdRl_ta.js +2 -0
  33. package/dist/chunks/FilePreviewView-DcdRl_ta.js.map +1 -0
  34. package/dist/chunks/FormView-CmBuwKGD.js +2 -0
  35. package/dist/chunks/FormView-CmBuwKGD.js.map +1 -0
  36. package/dist/chunks/FormView-DqUBMPJ9.js +5054 -0
  37. package/dist/chunks/FormView-DqUBMPJ9.js.map +1 -0
  38. package/dist/chunks/MetricsChart-CM4CI6eA.js +2095 -0
  39. package/dist/chunks/MetricsChart-CM4CI6eA.js.map +1 -0
  40. package/dist/chunks/MetricsChart-CPidSMaN.js +2 -0
  41. package/dist/chunks/MetricsChart-CPidSMaN.js.map +1 -0
  42. package/dist/chunks/PDFViewer-BNQlnS83.js +2 -0
  43. package/dist/chunks/PDFViewer-BNQlnS83.js.map +1 -0
  44. package/dist/chunks/PDFViewer-Dyo-Oeyd.js +946 -0
  45. package/dist/chunks/PDFViewer-Dyo-Oeyd.js.map +1 -0
  46. package/dist/chunks/Page-B524zSQs.js +351 -0
  47. package/dist/chunks/Page-B524zSQs.js.map +1 -0
  48. package/dist/chunks/Page-BFgj0pAA.js +2 -0
  49. package/dist/chunks/Page-BFgj0pAA.js.map +1 -0
  50. package/dist/chunks/TokenManager-BXNva8Jk.js +287 -0
  51. package/dist/chunks/TokenManager-BXNva8Jk.js.map +1 -0
  52. package/dist/chunks/TokenManager-Bzn4guFm.js +2 -0
  53. package/dist/chunks/TokenManager-Bzn4guFm.js.map +1 -0
  54. package/dist/chunks/TopNav-D3I3_25f.js +371 -0
  55. package/dist/chunks/TopNav-D3I3_25f.js.map +1 -0
  56. package/dist/chunks/TopNav-MDjL4kV0.js +2 -0
  57. package/dist/chunks/TopNav-MDjL4kV0.js.map +1 -0
  58. package/dist/chunks/User-BalfYTEF.js +3 -0
  59. package/dist/chunks/User-BalfYTEF.js.map +1 -0
  60. package/dist/chunks/User-DwIT-CTQ.js +1937 -0
  61. package/dist/chunks/User-DwIT-CTQ.js.map +1 -0
  62. package/dist/chunks/WebApp-B6mgbNn2.js +4767 -0
  63. package/dist/chunks/WebApp-B6mgbNn2.js.map +1 -0
  64. package/dist/chunks/WebApp-DqDowtkl.js +2 -0
  65. package/dist/chunks/WebApp-DqDowtkl.js.map +1 -0
  66. package/dist/chunks/WebSocketClient-D6i85jl2.js +2 -0
  67. package/dist/chunks/WebSocketClient-D6i85jl2.js.map +1 -0
  68. package/dist/chunks/WebSocketClient-Dvl3AYx1.js +297 -0
  69. package/dist/chunks/WebSocketClient-Dvl3AYx1.js.map +1 -0
  70. package/dist/core.css +1181 -0
  71. package/dist/css/web-mojo.css +17 -0
  72. package/dist/css-manifest.json +6 -0
  73. package/dist/docit.cjs.js +2 -0
  74. package/dist/docit.cjs.js.map +1 -0
  75. package/dist/docit.es.js +959 -0
  76. package/dist/docit.es.js.map +1 -0
  77. package/dist/index.cjs.js +2 -0
  78. package/dist/index.cjs.js.map +1 -0
  79. package/dist/index.es.js +2681 -0
  80. package/dist/index.es.js.map +1 -0
  81. package/dist/lightbox.cjs.js +2 -0
  82. package/dist/lightbox.cjs.js.map +1 -0
  83. package/dist/lightbox.css +606 -0
  84. package/dist/lightbox.es.js +3737 -0
  85. package/dist/lightbox.es.js.map +1 -0
  86. package/dist/loader.es.js +115 -0
  87. package/dist/loader.umd.js +85 -0
  88. package/dist/portal.css +2446 -0
  89. package/dist/table.css +639 -0
  90. package/dist/toast.css +181 -0
  91. package/package.json +179 -0
@@ -0,0 +1,606 @@
1
+ /**
2
+ * MOJO Lightbox Components - Comprehensive CSS Styles
3
+ * Styles for ImageViewer, ImageEditor, and PDFViewer components
4
+ */
5
+
6
+ /* ==========================================================================
7
+ Common Lightbox Styles
8
+ ========================================================================== */
9
+
10
+ .lightbox-component {
11
+ position: relative;
12
+ width: 100%;
13
+ height: 100%;
14
+ background: #000;
15
+ overflow: hidden;
16
+ font-family: var(--bs-font-sans-serif, system-ui, sans-serif);
17
+ }
18
+
19
+ .lightbox-overlay {
20
+ position: absolute;
21
+ top: 0;
22
+ left: 0;
23
+ right: 0;
24
+ bottom: 0;
25
+ background: rgba(0,0,0,0.8);
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ z-index: 1;
30
+ }
31
+
32
+ .lightbox-loading {
33
+ text-align: center;
34
+ color: #fff;
35
+ }
36
+
37
+ .lightbox-loading .spinner-border {
38
+ width: 2rem;
39
+ height: 2rem;
40
+ margin-bottom: 1rem;
41
+ }
42
+
43
+ .lightbox-component.loaded .lightbox-overlay {
44
+ display: none;
45
+ }
46
+
47
+ /* ==========================================================================
48
+ Image Viewer Styles
49
+ ========================================================================== */
50
+
51
+ .image-viewer {
52
+ position: relative;
53
+ width: 100%;
54
+ height: 100%;
55
+ background: #000;
56
+ overflow: hidden;
57
+ }
58
+
59
+ .image-viewer-container {
60
+ position: relative;
61
+ width: 100%;
62
+ height: 100%;
63
+ min-height: 400px;
64
+ }
65
+
66
+ .image-viewer-content {
67
+ position: relative;
68
+ width: 100%;
69
+ height: 100%;
70
+ overflow: hidden;
71
+ cursor: grab;
72
+ }
73
+
74
+ .image-viewer-content:active {
75
+ cursor: grabbing;
76
+ }
77
+
78
+ .image-viewer-content.dragging {
79
+ cursor: grabbing;
80
+ }
81
+
82
+ .image-viewer-image {
83
+ position: absolute;
84
+ top: 50%;
85
+ left: 50%;
86
+ transform-origin: center center;
87
+ transition: transform 0.2s ease-out;
88
+ max-width: none;
89
+ max-height: none;
90
+ user-select: none;
91
+ -webkit-user-drag: none;
92
+ pointer-events: none;
93
+ }
94
+
95
+ .image-viewer-overlay {
96
+ position: absolute;
97
+ top: 0;
98
+ left: 0;
99
+ right: 0;
100
+ bottom: 0;
101
+ background: rgba(0,0,0,0.8);
102
+ display: flex;
103
+ align-items: center;
104
+ justify-content: center;
105
+ z-index: 1;
106
+ }
107
+
108
+ .image-viewer.loaded .image-viewer-overlay {
109
+ display: none;
110
+ }
111
+
112
+ .image-viewer-controls {
113
+ position: absolute;
114
+ bottom: 20px;
115
+ left: 50%;
116
+ transform: translateX(-50%);
117
+ z-index: 10;
118
+ display: flex;
119
+ gap: 10px;
120
+ align-items: center;
121
+ background: rgba(0,0,0,0.8);
122
+ padding: 8px 12px;
123
+ border-radius: 6px;
124
+ backdrop-filter: blur(4px);
125
+ }
126
+
127
+ .image-viewer-info {
128
+ color: white;
129
+ font-size: 12px;
130
+ white-space: nowrap;
131
+ margin-left: 10px;
132
+ }
133
+
134
+ .image-viewer-controls .btn {
135
+ --bs-btn-border-color: rgba(255,255,255,0.2);
136
+ border-color: rgba(255,255,255,0.2);
137
+ }
138
+
139
+ .image-viewer-controls .btn:hover {
140
+ --bs-btn-border-color: rgba(255,255,255,0.4);
141
+ border-color: rgba(255,255,255,0.4);
142
+ }
143
+
144
+ /* ==========================================================================
145
+ Image Editor Styles
146
+ ========================================================================== */
147
+
148
+ .image-editor {
149
+ display: flex;
150
+ flex-direction: column;
151
+ height: 100%;
152
+ background: #f8f9fa;
153
+ }
154
+
155
+ .image-editor-toolbar {
156
+ padding: 8px 12px;
157
+ background: white;
158
+ border-bottom: 1px solid #dee2e6;
159
+ flex-shrink: 0;
160
+ }
161
+
162
+ .image-editor-filters {
163
+ background: white;
164
+ border-bottom: 1px solid #dee2e6;
165
+ flex-shrink: 0;
166
+ }
167
+
168
+ .image-editor-filters .card {
169
+ border: none;
170
+ border-radius: 0;
171
+ }
172
+
173
+ .image-editor-workspace {
174
+ flex: 1;
175
+ display: flex;
176
+ flex-direction: column;
177
+ overflow: hidden;
178
+ }
179
+
180
+ .image-editor-content {
181
+ flex: 1;
182
+ position: relative;
183
+ background: #000;
184
+ overflow: hidden;
185
+ cursor: grab;
186
+ }
187
+
188
+ .image-editor-content:active {
189
+ cursor: grabbing;
190
+ }
191
+
192
+ .image-editor-content.crop-mode {
193
+ cursor: crosshair;
194
+ }
195
+
196
+ .image-editor-image,
197
+ .image-editor-canvas {
198
+ position: absolute;
199
+ top: 50%;
200
+ left: 50%;
201
+ transform-origin: center center;
202
+ transition: transform 0.2s ease-out;
203
+ max-width: none;
204
+ max-height: none;
205
+ user-select: none;
206
+ -webkit-user-drag: none;
207
+ }
208
+
209
+ .image-editor-overlay {
210
+ position: absolute;
211
+ top: 0;
212
+ left: 0;
213
+ right: 0;
214
+ bottom: 0;
215
+ background: rgba(0,0,0,0.8);
216
+ display: flex;
217
+ align-items: center;
218
+ justify-content: center;
219
+ z-index: 1;
220
+ }
221
+
222
+ .image-editor.loaded .image-editor-overlay {
223
+ display: none;
224
+ }
225
+
226
+ .image-editor-status {
227
+ padding: 4px 12px;
228
+ background: white;
229
+ border-top: 1px solid #dee2e6;
230
+ flex-shrink: 0;
231
+ }
232
+
233
+ /* Crop Overlay Styles */
234
+ .crop-overlay {
235
+ position: absolute;
236
+ top: 0;
237
+ left: 0;
238
+ right: 0;
239
+ bottom: 0;
240
+ z-index: 10;
241
+ }
242
+
243
+ .crop-box {
244
+ position: absolute;
245
+ border: 2px solid #007bff;
246
+ background: rgba(0, 123, 255, 0.1);
247
+ cursor: move;
248
+ }
249
+
250
+ .crop-box::before {
251
+ content: '';
252
+ position: absolute;
253
+ top: 0;
254
+ left: 0;
255
+ right: 0;
256
+ bottom: 0;
257
+ border: 1px dashed rgba(255,255,255,0.5);
258
+ }
259
+
260
+ .crop-handle {
261
+ position: absolute;
262
+ width: 8px;
263
+ height: 8px;
264
+ background: #007bff;
265
+ border: 1px solid white;
266
+ border-radius: 1px;
267
+ }
268
+
269
+ .crop-handle-nw { top: -4px; left: -4px; cursor: nw-resize; }
270
+ .crop-handle-ne { top: -4px; right: -4px; cursor: ne-resize; }
271
+ .crop-handle-sw { bottom: -4px; left: -4px; cursor: sw-resize; }
272
+ .crop-handle-se { bottom: -4px; right: -4px; cursor: se-resize; }
273
+ .crop-handle-n { top: -4px; left: 50%; transform: translateX(-50%); cursor: n-resize; }
274
+ .crop-handle-s { bottom: -4px; left: 50%; transform: translateX(-50%); cursor: s-resize; }
275
+ .crop-handle-w { left: -4px; top: 50%; transform: translateY(-50%); cursor: w-resize; }
276
+ .crop-handle-e { right: -4px; top: 50%; transform: translateY(-50%); cursor: e-resize; }
277
+
278
+ /* Filter Controls */
279
+ .form-range::-webkit-slider-thumb {
280
+ background: #007bff;
281
+ }
282
+
283
+ .form-range::-moz-range-thumb {
284
+ background: #007bff;
285
+ }
286
+
287
+ /* Toolbar States */
288
+ .btn.active {
289
+ background-color: #007bff;
290
+ border-color: #007bff;
291
+ color: white;
292
+ }
293
+
294
+ /* ==========================================================================
295
+ PDF Viewer Styles
296
+ ========================================================================== */
297
+
298
+ .pdf-viewer {
299
+ display: flex;
300
+ flex-direction: column;
301
+ height: 100%;
302
+ background: #f8f9fa;
303
+ }
304
+
305
+ .pdf-viewer-toolbar {
306
+ padding: 8px 12px;
307
+ background: white;
308
+ border-bottom: 1px solid #dee2e6;
309
+ flex-shrink: 0;
310
+ }
311
+
312
+ .pdf-viewer-toolbar .page-input {
313
+ width: 60px;
314
+ }
315
+
316
+ .pdf-viewer-toolbar .page-total {
317
+ background: transparent;
318
+ border-left: none;
319
+ font-size: 0.8em;
320
+ }
321
+
322
+ .pdf-viewer-content {
323
+ flex: 1;
324
+ position: relative;
325
+ background: #525659;
326
+ overflow: auto;
327
+ display: flex;
328
+ align-items: center;
329
+ justify-content: center;
330
+ }
331
+
332
+ .pdf-canvas-container {
333
+ position: relative;
334
+ background: white;
335
+ box-shadow: 0 4px 12px rgba(0,0,0,0.3);
336
+ margin: 20px;
337
+ }
338
+
339
+ .pdf-canvas {
340
+ display: block;
341
+ max-width: 100%;
342
+ max-height: 100%;
343
+ }
344
+
345
+ .pdf-viewer-overlay {
346
+ position: absolute;
347
+ top: 0;
348
+ left: 0;
349
+ right: 0;
350
+ bottom: 0;
351
+ background: rgba(0,0,0,0.1);
352
+ display: flex;
353
+ flex-direction: column;
354
+ align-items: center;
355
+ justify-content: center;
356
+ z-index: 1;
357
+ color: #6c757d;
358
+ }
359
+
360
+ .pdf-viewer.loaded .pdf-viewer-overlay {
361
+ display: none;
362
+ }
363
+
364
+ .pdf-viewer-error {
365
+ position: absolute;
366
+ top: 50%;
367
+ left: 50%;
368
+ transform: translate(-50%, -50%);
369
+ z-index: 2;
370
+ min-width: 300px;
371
+ }
372
+
373
+ .pdf-viewer-status {
374
+ padding: 4px 12px;
375
+ background: white;
376
+ border-top: 1px solid #dee2e6;
377
+ flex-shrink: 0;
378
+ }
379
+
380
+ /* PDF Loading animation */
381
+ .pdf-viewer-loading {
382
+ text-align: center;
383
+ }
384
+
385
+ .pdf-viewer-loading .spinner-border {
386
+ width: 2rem;
387
+ height: 2rem;
388
+ }
389
+
390
+ /* ==========================================================================
391
+ Button States and Controls
392
+ ========================================================================== */
393
+
394
+ .lightbox-toolbar .btn:disabled {
395
+ opacity: 0.4;
396
+ }
397
+
398
+ .lightbox-toolbar .btn-group {
399
+ margin-right: 0.5rem;
400
+ }
401
+
402
+ .lightbox-controls .btn {
403
+ border-color: rgba(255,255,255,0.2);
404
+ }
405
+
406
+ .lightbox-controls .btn:hover:not(:disabled) {
407
+ border-color: rgba(255,255,255,0.4);
408
+ background-color: rgba(255,255,255,0.1);
409
+ }
410
+
411
+ .lightbox-controls .btn:focus {
412
+ box-shadow: 0 0 0 0.2rem rgba(255,255,255,0.25);
413
+ }
414
+
415
+ /* ==========================================================================
416
+ Responsive Design
417
+ ========================================================================== */
418
+
419
+ @media (max-width: 768px) {
420
+ .image-editor-toolbar .btn-group,
421
+ .pdf-viewer-toolbar .btn-group {
422
+ margin-bottom: 4px;
423
+ }
424
+
425
+ .image-editor-toolbar .btn-toolbar,
426
+ .pdf-viewer-toolbar .btn-toolbar {
427
+ flex-wrap: wrap;
428
+ }
429
+
430
+ .image-viewer-controls {
431
+ bottom: 10px;
432
+ left: 10px;
433
+ right: 10px;
434
+ transform: none;
435
+ flex-wrap: wrap;
436
+ justify-content: center;
437
+ }
438
+
439
+ .image-editor-filters .row {
440
+ margin: 0;
441
+ }
442
+
443
+ .image-editor-filters .col-md-6 {
444
+ margin-bottom: 1rem;
445
+ }
446
+ }
447
+
448
+ @media (max-width: 576px) {
449
+ .lightbox-toolbar {
450
+ padding: 4px 8px;
451
+ }
452
+
453
+ .lightbox-toolbar .btn-sm {
454
+ padding: 0.125rem 0.25rem;
455
+ font-size: 0.75rem;
456
+ }
457
+
458
+ .image-viewer-controls {
459
+ padding: 6px 8px;
460
+ }
461
+
462
+ .image-viewer-info {
463
+ font-size: 11px;
464
+ }
465
+ }
466
+
467
+ /* ==========================================================================
468
+ Accessibility
469
+ ========================================================================== */
470
+
471
+ .lightbox-component:focus-within {
472
+ outline: 2px solid #007bff;
473
+ outline-offset: 2px;
474
+ }
475
+
476
+ .crop-handle:focus {
477
+ outline: 2px solid #fff;
478
+ outline-offset: 1px;
479
+ }
480
+
481
+ .lightbox-toolbar .btn:focus,
482
+ .lightbox-controls .btn:focus {
483
+ z-index: 3;
484
+ }
485
+
486
+ /* Screen reader only content */
487
+ .sr-only {
488
+ position: absolute;
489
+ width: 1px;
490
+ height: 1px;
491
+ padding: 0;
492
+ margin: -1px;
493
+ overflow: hidden;
494
+ clip: rect(0, 0, 0, 0);
495
+ white-space: nowrap;
496
+ border: 0;
497
+ }
498
+
499
+ /* ==========================================================================
500
+ Print Styles
501
+ ========================================================================== */
502
+
503
+ @media print {
504
+ .lightbox-toolbar,
505
+ .lightbox-controls,
506
+ .lightbox-overlay,
507
+ .crop-overlay {
508
+ display: none !important;
509
+ }
510
+
511
+ .pdf-canvas,
512
+ .image-viewer-image {
513
+ position: static !important;
514
+ transform: none !important;
515
+ max-width: 100% !important;
516
+ max-height: none !important;
517
+ }
518
+
519
+ .lightbox-component {
520
+ background: white !important;
521
+ overflow: visible !important;
522
+ }
523
+ }
524
+
525
+ /* ==========================================================================
526
+ Dark Mode Support
527
+ ========================================================================== */
528
+
529
+ @media (prefers-color-scheme: dark) {
530
+ .image-editor,
531
+ .pdf-viewer {
532
+ background: #212529;
533
+ }
534
+
535
+ .image-editor-toolbar,
536
+ .pdf-viewer-toolbar,
537
+ .image-editor-status,
538
+ .pdf-viewer-status {
539
+ background: #343a40;
540
+ border-color: #495057;
541
+ color: #fff;
542
+ }
543
+
544
+ .image-editor-filters {
545
+ background: #343a40;
546
+ border-color: #495057;
547
+ }
548
+
549
+ .image-editor-filters .card {
550
+ background: #343a40;
551
+ color: #fff;
552
+ }
553
+
554
+ .form-control {
555
+ background-color: #495057;
556
+ border-color: #6c757d;
557
+ color: #fff;
558
+ }
559
+
560
+ .form-control:focus {
561
+ background-color: #495057;
562
+ border-color: #86b7fe;
563
+ color: #fff;
564
+ }
565
+ }
566
+
567
+ /* ==========================================================================
568
+ Animation and Transitions
569
+ ========================================================================== */
570
+
571
+ .lightbox-component * {
572
+ transition: opacity 0.2s ease-out, transform 0.2s ease-out;
573
+ }
574
+
575
+ .crop-box {
576
+ transition: all 0.1s ease-out;
577
+ }
578
+
579
+ .lightbox-overlay {
580
+ transition: opacity 0.3s ease-out;
581
+ }
582
+
583
+ .btn {
584
+ transition: all 0.15s ease-in-out;
585
+ }
586
+
587
+ /* Smooth scrolling for PDF viewer */
588
+ .pdf-viewer-content {
589
+ scroll-behavior: smooth;
590
+ }
591
+
592
+ /* ==========================================================================
593
+ High DPI / Retina Display Support
594
+ ========================================================================== */
595
+
596
+ @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
597
+ .pdf-canvas {
598
+ image-rendering: -webkit-optimize-contrast;
599
+ image-rendering: crisp-edges;
600
+ }
601
+
602
+ .crop-handle {
603
+ width: 10px;
604
+ height: 10px;
605
+ }
606
+ }