juxscript 1.1.187 → 1.1.188

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.
@@ -438,4 +438,200 @@ code {
438
438
 
439
439
  .jux-button-warning:hover {
440
440
  background: hsl(var(--warning) / 0.9);
441
+ }
442
+
443
+ /* ═══════════════════════════════════════════════════════════════════
444
+ * MODAL
445
+ * ═══════════════════════════════════════════════════════════════════ */
446
+
447
+ .jux-modal-overlay {
448
+ position: fixed;
449
+ top: 0;
450
+ left: 0;
451
+ width: 100vw;
452
+ height: 100vh;
453
+ z-index: 9999;
454
+ background: rgba(0, 0, 0, 0.5);
455
+ display: flex;
456
+ align-items: center;
457
+ justify-content: center;
458
+ backdrop-filter: blur(2px);
459
+ }
460
+
461
+ .jux-modal {
462
+ position: relative;
463
+ background: hsl(var(--background));
464
+ border: 1px solid hsl(var(--border));
465
+ border-radius: var(--radius);
466
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15), 0 2px 10px rgba(0, 0, 0, 0.1);
467
+ width: 90%;
468
+ max-height: 85vh;
469
+ overflow-y: auto;
470
+ animation: jux-modal-enter 0.2s ease-out;
471
+ }
472
+
473
+ @keyframes jux-modal-enter {
474
+ from {
475
+ opacity: 0;
476
+ transform: scale(0.96) translateY(8px);
477
+ }
478
+ to {
479
+ opacity: 1;
480
+ transform: scale(1) translateY(0);
481
+ }
482
+ }
483
+
484
+ .jux-modal-small { max-width: 400px; }
485
+ .jux-modal-medium { max-width: 600px; }
486
+ .jux-modal-large { max-width: 900px; }
487
+
488
+ .jux-modal-close {
489
+ position: absolute;
490
+ top: 0.75rem;
491
+ right: 0.75rem;
492
+ width: 2rem;
493
+ height: 2rem;
494
+ display: flex;
495
+ align-items: center;
496
+ justify-content: center;
497
+ background: transparent;
498
+ border: none;
499
+ border-radius: var(--radius);
500
+ color: hsl(var(--muted-foreground));
501
+ font-size: 1.25rem;
502
+ cursor: pointer;
503
+ transition: all 0.15s;
504
+ z-index: 1;
505
+ }
506
+
507
+ .jux-modal-close:hover {
508
+ background: hsl(var(--muted));
509
+ color: hsl(var(--foreground));
510
+ }
511
+
512
+ .jux-modal-header {
513
+ display: flex;
514
+ align-items: center;
515
+ gap: 0.5rem;
516
+ padding: 1.25rem 1.5rem;
517
+ border-bottom: 1px solid hsl(var(--border));
518
+ }
519
+
520
+ .jux-modal-header-icon {
521
+ display: flex;
522
+ align-items: center;
523
+ color: hsl(var(--foreground));
524
+ }
525
+
526
+ .jux-modal-header-title {
527
+ font-size: 1.125rem;
528
+ font-weight: 600;
529
+ color: hsl(var(--foreground));
530
+ }
531
+
532
+ .jux-modal-content {
533
+ padding: 1.5rem;
534
+ }
535
+
536
+ .jux-modal-footer {
537
+ display: flex;
538
+ align-items: center;
539
+ justify-content: flex-end;
540
+ gap: 0.5rem;
541
+ padding: 1rem 1.5rem;
542
+ border-top: 1px solid hsl(var(--border));
543
+ background: hsl(var(--muted) / 0.3);
544
+ border-radius: 0 0 var(--radius) var(--radius);
545
+ }
546
+
547
+ .jux-modal-action {
548
+ display: inline-flex;
549
+ align-items: center;
550
+ justify-content: center;
551
+ white-space: nowrap;
552
+ border-radius: var(--radius);
553
+ font-size: 0.875rem;
554
+ font-weight: 500;
555
+ height: 2.25rem;
556
+ padding: 0 1rem;
557
+ cursor: pointer;
558
+ transition: all 0.15s;
559
+ border: none;
560
+ }
561
+
562
+ .jux-modal-action-primary {
563
+ background: hsl(var(--primary));
564
+ color: hsl(var(--primary-foreground));
565
+ }
566
+
567
+ .jux-modal-action-primary:hover {
568
+ opacity: 0.9;
569
+ }
570
+
571
+ .jux-modal-action-secondary {
572
+ background: transparent;
573
+ border: 1px solid hsl(var(--input));
574
+ color: hsl(var(--foreground));
575
+ }
576
+
577
+ .jux-modal-action-secondary:hover {
578
+ background: hsl(var(--accent));
579
+ }
580
+
581
+ .jux-modal-action-default {
582
+ background: hsl(var(--primary));
583
+ color: hsl(var(--primary-foreground));
584
+ }
585
+
586
+ /* Position variants */
587
+ .jux-modal-position-top { align-items: flex-start; padding-top: 5vh; }
588
+ .jux-modal-position-bottom { align-items: flex-end; padding-bottom: 5vh; }
589
+ .jux-modal-position-fullscreen .jux-modal { width: 100%; max-width: 100%; height: 100vh; max-height: 100vh; border-radius: 0; }
590
+
591
+ /* ═══════════════════════════════════════════════════════════════════
592
+ * RESHAPE MODAL (DataFrame Import Settings)
593
+ * ═══════════════════════════════════════════════════════════════════ */
594
+
595
+ .jux-reshape-hint {
596
+ font-size: 0.8125rem;
597
+ color: hsl(var(--muted-foreground));
598
+ margin-top: 0.5rem;
599
+ padding: 0.625rem 0.75rem;
600
+ background: hsl(var(--warning) / 0.08);
601
+ border-radius: var(--radius);
602
+ border: 1px solid hsl(var(--warning) / 0.2);
603
+ line-height: 1.5;
604
+ }
605
+
606
+ .jux-reshape-hint strong {
607
+ color: hsl(var(--foreground));
608
+ }
609
+
610
+ .jux-reshape-preview-container {
611
+ border: 1px solid hsl(var(--border));
612
+ border-radius: var(--radius);
613
+ padding: 1rem;
614
+ background: hsl(var(--muted) / 0.3);
615
+ max-height: 400px;
616
+ overflow: auto;
617
+ }
618
+
619
+ .jux-reshape-preview {
620
+ font-family: 'JetBrains Mono', 'Cascadia Code', 'Fira Code', 'Courier New', monospace;
621
+ font-size: 0.6875rem;
622
+ white-space: pre;
623
+ color: hsl(var(--foreground));
624
+ line-height: 1.6;
625
+ tab-size: 4;
626
+ }
627
+
628
+ /* ═══════════════════════════════════════════════════════════════════
629
+ * BUTTON SIZES
630
+ * ═══════════════════════════════════════════════════════════════════ */
631
+
632
+ .jux-button-sm {
633
+ height: 1.75rem;
634
+ padding: 0 0.625rem;
635
+ font-size: 0.75rem;
636
+ border-radius: calc(var(--radius) - 2px);
441
637
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "juxscript",
3
- "version": "1.1.187",
3
+ "version": "1.1.188",
4
4
  "type": "module",
5
5
  "description": "A JavaScript UX authorship platform",
6
6
  "main": "index.js",