juxscript 1.1.212 → 1.1.214

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.
@@ -158,6 +158,20 @@ p { line-height: 1.75; color: hsl(var(--foreground)); }
158
158
  flex-direction: column;
159
159
  gap: 1rem;
160
160
  width: 100%;
161
+ min-width: 0; /* ✅ Allow flex item to shrink below content size */
162
+ max-width: 100%; /* ✅ Prevent overflow of parent */
163
+ overflow: hidden; /* ✅ Contain overflow */
164
+ }
165
+
166
+ /* ✅ Ensure table respects dataframe container */
167
+ .jux-dataframe .jux-table-wrapper {
168
+ min-width: 0;
169
+ max-width: 100%;
170
+ overflow-x: auto;
171
+ }
172
+
173
+ .jux-dataframe .jux-table {
174
+ min-width: 0;
161
175
  }
162
176
 
163
177
  /* ✅ NEW: Enhanced upload area */
@@ -701,4 +715,137 @@ code {
701
715
  display: inline-flex;
702
716
  align-items: center;
703
717
  flex-shrink: 0;
718
+ }
719
+
720
+ /* ══════════════════════════════════════════════════════════════════
721
+ JUX STACKS - Layout System
722
+ Uses foundation tokens for spacing, auto-adapts to themes
723
+ ══════════════════════════════════════════════════════════════════ */
724
+
725
+ /* ═════════════════════════════════════════════════════════════════
726
+ * BASE STACK STYLES
727
+ * ═════════════════════════════════════════════════════════════════ */
728
+
729
+ .jux-vstack,
730
+ .jux-hstack,
731
+ .jux-zstack {
732
+ display: flex;
733
+
734
+ /* ✅ Use CSS variables from foundation/theme */
735
+ gap: var(--jux-gap, 1rem);
736
+ padding: var(--jux-pad, 0);
737
+
738
+ /* Default alignment */
739
+ align-items: var(--jux-align, flex-start);
740
+ }
741
+
742
+ /* ═════════════════════════════════════════════════════════════════
743
+ * VERTICAL STACK (Column)
744
+ * ═════════════════════════════════════════════════════════════════ */
745
+
746
+ .jux-vstack {
747
+ flex-direction: column;
748
+ }
749
+
750
+ /* ═════════════════════════════════════════════════════════════════
751
+ * HORIZONTAL STACK (Row)
752
+ * ═════════════════════════════════════════════════════════════════ */
753
+
754
+ .jux-hstack {
755
+ flex-direction: row;
756
+ flex-wrap: wrap; /* Allow wrapping on mobile */
757
+ }
758
+
759
+ /* ═════════════════════════════════════════════════════════════════
760
+ * Z-STACK (Layered)
761
+ * ═════════════════════════════════════════════════════════════════ */
762
+
763
+ .jux-zstack {
764
+ position: relative;
765
+ flex-direction: column;
766
+ }
767
+
768
+ .jux-zstack > * {
769
+ position: absolute;
770
+ top: 0;
771
+ left: 0;
772
+ }
773
+
774
+ /* ═════════════════════════════════════════════════════════════════
775
+ * ALIGNMENT UTILITIES (Via CSS Variables)
776
+ * Applied via .align-* descriptor classes
777
+ * ═════════════════════════════════════════════════════════════════ */
778
+
779
+ .align-start { --jux-align: flex-start; }
780
+ .align-center { --jux-align: center; }
781
+ .align-end { --jux-align: flex-end; }
782
+ .align-stretch { --jux-align: stretch; }
783
+ .align-baseline { --jux-align: baseline; }
784
+
785
+ /* ═════════════════════════════════════════════════════════════════
786
+ * JUSTIFY CONTENT (For HStack distribution)
787
+ * ═════════════════════════════════════════════════════════════════ */
788
+
789
+ .justify-start { justify-content: flex-start; }
790
+ .justify-center { justify-content: center; }
791
+ .justify-end { justify-content: flex-end; }
792
+ .justify-between { justify-content: space-between; }
793
+ .justify-around { justify-content: space-around; }
794
+ .justify-evenly { justify-content: space-evenly; }
795
+
796
+ /* ═════════════════════════════════════════════════════════════════
797
+ * RESPONSIVE BEHAVIOR
798
+ * HStack becomes VStack on mobile for better UX
799
+ * ═════════════════════════════════════════════════════════════════ */
800
+
801
+ @media (max-width: 768px) {
802
+ .jux-hstack {
803
+ flex-direction: column;
804
+ /* Gap remains consistent via CSS variables */
805
+ }
806
+
807
+ /* Optional: Force HStack to stay horizontal on mobile */
808
+ .jux-hstack.stay-horizontal {
809
+ flex-direction: row;
810
+ }
811
+ }
812
+
813
+ /* ═════════════════════════════════════════════════════════════════
814
+ * FULL WIDTH/HEIGHT UTILITIES
815
+ * ═════════════════════════════════════════════════════════════════ */
816
+
817
+ .full-width {
818
+ width: 100%;
819
+ }
820
+
821
+ .full-height {
822
+ height: 100%;
823
+ min-height: 100vh;
824
+ }
825
+
826
+ /* ═════════════════════════════════════════════════════════════════
827
+ * CENTERED CONTENT (Common Layout Pattern)
828
+ * ═════════════════════════════════════════════════════════════════ */
829
+
830
+ .center-content {
831
+ justify-content: center;
832
+ align-items: center;
833
+ }
834
+
835
+ /* ═════════════════════════════════════════════════════════════════
836
+ * SCROLL BEHAVIOR
837
+ * ═════════════════════════════════════════════════════════════════ */
838
+
839
+ .scroll-x {
840
+ overflow-x: auto;
841
+ overflow-y: hidden;
842
+ }
843
+
844
+ .scroll-y {
845
+ overflow-y: auto;
846
+ overflow-x: hidden;
847
+ }
848
+
849
+ .scroll-both {
850
+ overflow: auto;
704
851
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "juxscript",
3
- "version": "1.1.212",
3
+ "version": "1.1.214",
4
4
  "type": "module",
5
5
  "description": "A JavaScript UX authorship platform",
6
6
  "main": "index.js",