juxscript 1.1.108 → 1.1.109

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.
@@ -1,143 +1,10 @@
1
1
  /* ═══════════════════════════════════════════════════════════════════
2
- * STACK LAYOUT COMPONENTS
3
- * ═══════════════════════════════════════════════════════════════════ */
4
-
5
- /* Vertical Stack */
6
- .jux-vstack {
7
- display: flex;
8
- flex-direction: column;
9
- gap: 1rem; /* Default spacing */
10
- }
11
-
12
- .jux-vstack-tight {
13
- gap: 0.5rem; /* 8px */
14
- }
15
-
16
- .jux-vstack-loose {
17
- gap: 1.5rem; /* 24px */
18
- }
19
-
20
- .jux-vstack-none {
21
- gap: 0;
22
- }
23
-
24
- /* Horizontal Stack */
25
- .jux-hstack {
26
- display: flex;
27
- flex-direction: row;
28
- align-items: center;
29
- gap: 1rem; /* Default spacing */
30
- }
31
-
32
- .jux-hstack-tight {
33
- gap: 0.5rem;
34
- }
35
-
36
- .jux-hstack-loose {
37
- gap: 1.5rem;
38
- }
39
-
40
- .jux-hstack-none {
41
- gap: 0;
42
- }
43
-
44
- /* Z-Stack (Layered/Overlapping) */
45
- .jux-zstack {
46
- display: grid;
47
- grid-template-columns: 1fr;
48
- grid-template-rows: 1fr;
49
- position: relative;
50
- }
51
-
52
- .jux-zstack > * {
53
- grid-column: 1;
54
- grid-row: 1;
55
- }
56
-
57
- .jux-zstack-tight > * {
58
- margin: 0.25rem;
59
- }
60
-
61
- .jux-zstack-loose > * {
62
- margin: 0.75rem;
63
- }
64
-
65
- .jux-zstack-none > * {
66
- margin: 0;
67
- }
68
-
69
- /* Stack Alignment Options */
70
- .jux-stack-start {
71
- align-items: flex-start;
72
- }
73
-
74
- .jux-stack-center {
75
- align-items: center;
76
- }
77
-
78
- .jux-stack-end {
79
- align-items: flex-end;
80
- }
81
-
82
- .jux-stack-stretch {
83
- align-items: stretch;
84
- }
85
-
86
- /* Stack Justification Options */
87
- .jux-stack-justify-start {
88
- justify-content: flex-start;
89
- }
90
-
91
- .jux-stack-justify-center {
92
- justify-content: center;
93
- }
94
-
95
- .jux-stack-justify-end {
96
- justify-content: flex-end;
97
- }
98
-
99
- .jux-stack-justify-between {
100
- justify-content: space-between;
101
- }
102
-
103
- .jux-stack-justify-around {
104
- justify-content: space-around;
105
- }
106
-
107
- .jux-stack-justify-evenly {
108
- justify-content: space-evenly;
109
- }
110
-
111
- /* Responsive Stacks */
112
- @media (max-width: 768px) {
113
- .jux-hstack-responsive {
114
- flex-direction: column;
115
- }
116
- }
117
-
118
- /* Stack with Dividers */
119
- .jux-vstack-divider > *:not(:last-child) {
120
- padding-bottom: 1rem;
121
- border-bottom: 1px solid #e4e4e7;
122
- margin-bottom: 1rem;
123
- }
124
-
125
- .jux-hstack-divider > *:not(:last-child) {
126
- padding-right: 1rem;
127
- border-right: 1px solid #e4e4e7;
128
- margin-right: 1rem;
129
- }
130
-
131
- .jux-zstack-divider > * {
132
- border: 1px solid #e4e4e7;
133
- }
134
-
135
- /* ═══════════════════════════════════════════════════════════════════
136
- * ANIMATION & TRANSITION CLASSES
2
+ * JUX ANIMATION SYSTEM
3
+ * Keyframes, animation classes, speed/timing modifiers
137
4
  * ═══════════════════════════════════════════════════════════════════ */
138
5
 
139
6
  /* ═════════════════════════════════════════════════════════════════
140
- * KEYFRAME DEFINITIONS (Shared)
7
+ * KEYFRAME DEFINITIONS
141
8
  * ═════════════════════════════════════════════════════════════════ */
142
9
 
143
10
  @keyframes jux-fade-in {
@@ -216,10 +83,47 @@
216
83
  }
217
84
 
218
85
  /* ═════════════════════════════════════════════════════════════════
219
- * SPEED MODIFIERS (Global)
86
+ * CONTAINER-LEVEL ANIMATIONS (Apply to element itself)
87
+ * ═════════════════════════════════════════════════════════════════ */
88
+
89
+ .jux-stack-fade-in { animation: jux-fade-in 0.3s ease-out; }
90
+ .jux-stack-slide-up { animation: jux-slide-in-up 0.4s ease-out; }
91
+ .jux-stack-slide-down { animation: jux-slide-in-down 0.4s ease-out; }
92
+ .jux-stack-slide-left { animation: jux-slide-in-left 0.4s ease-out; }
93
+ .jux-stack-slide-right { animation: jux-slide-in-right 0.4s ease-out; }
94
+ .jux-stack-scale-in { animation: jux-scale-in 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }
95
+ .jux-stack-zoom-in { animation: jux-zoom-in 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
96
+ .jux-stack-rotate-in { animation: jux-rotate-in 0.5s ease-out; }
97
+ .jux-stack-flip-x { animation: jux-flip-in-x 0.6s ease-out; }
98
+ .jux-stack-flip-y { animation: jux-flip-in-y 0.6s ease-out; }
99
+ .jux-stack-bounce-in { animation: jux-bounce-in 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55); }
100
+ .jux-stack-elastic-in { animation: jux-elastic-in 0.8s ease-out; }
101
+ .jux-stack-blur-in { animation: jux-blur-in 0.5s ease-out; }
102
+ .jux-stack-glow { animation: jux-glow-pulse 2s ease-in-out infinite; }
103
+
104
+ /* ═════════════════════════════════════════════════════════════════
105
+ * ITEM-LEVEL ANIMATIONS (Apply to direct children)
106
+ * ═════════════════════════════════════════════════════════════════ */
107
+
108
+ .jux-stack-fade-in-items > * { animation: jux-fade-in 0.3s ease-out; }
109
+ .jux-stack-slide-up-items > * { animation: jux-slide-in-up 0.4s ease-out; }
110
+ .jux-stack-slide-down-items > * { animation: jux-slide-in-down 0.4s ease-out; }
111
+ .jux-stack-slide-left-items > * { animation: jux-slide-in-left 0.4s ease-out; }
112
+ .jux-stack-slide-right-items > * { animation: jux-slide-in-right 0.4s ease-out; }
113
+ .jux-stack-scale-in-items > * { animation: jux-scale-in 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }
114
+ .jux-stack-zoom-in-items > * { animation: jux-zoom-in 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
115
+ .jux-stack-rotate-in-items > * { animation: jux-rotate-in 0.5s ease-out; }
116
+ .jux-stack-flip-x-items > * { animation: jux-flip-in-x 0.6s ease-out; }
117
+ .jux-stack-flip-y-items > * { animation: jux-flip-in-y 0.6s ease-out; }
118
+ .jux-stack-bounce-in-items > * { animation: jux-bounce-in 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55); }
119
+ .jux-stack-elastic-in-items > * { animation: jux-elastic-in 0.8s ease-out; }
120
+ .jux-stack-blur-in-items > * { animation: jux-blur-in 0.5s ease-out; }
121
+ .jux-stack-glow-items > * { animation: jux-glow-pulse 2s ease-in-out infinite; }
122
+
123
+ /* ═════════════════════════════════════════════════════════════════
124
+ * SPEED MODIFIERS (Override animation duration)
220
125
  * ═════════════════════════════════════════════════════════════════ */
221
126
 
222
- /* Apply to stack or items */
223
127
  .jux-stack-instant,
224
128
  .jux-stack-instant > * { animation-duration: 0.15s !important; }
225
129
 
@@ -236,7 +140,7 @@
236
140
  .jux-stack-slower > * { animation-duration: 1.2s !important; }
237
141
 
238
142
  /* ═════════════════════════════════════════════════════════════════
239
- * TIMING FUNCTIONS
143
+ * TIMING FUNCTIONS (Override easing)
240
144
  * ═════════════════════════════════════════════════════════════════ */
241
145
 
242
146
  .jux-stack-linear,
@@ -261,7 +165,7 @@
261
165
  .jux-stack-elastic-timing > * { animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1) !important; }
262
166
 
263
167
  /* ═════════════════════════════════════════════════════════════════
264
- * DELAY MODIFIERS
168
+ * DELAY MODIFIERS (Animation start delay)
265
169
  * ═════════════════════════════════════════════════════════════════ */
266
170
 
267
171
  .jux-stack-delay-100 { animation-delay: 100ms !important; }
@@ -271,127 +175,7 @@
271
175
  .jux-stack-delay-1000 { animation-delay: 1000ms !important; }
272
176
 
273
177
  /* ═════════════════════════════════════════════════════════════════
274
- * STACK-LEVEL ANIMATIONS (Apply to container itself)
275
- * ═════════════════════════════════════════════════════════════════ */
276
-
277
- .jux-stack-fade-in {
278
- animation: jux-fade-in 0.3s ease-out;
279
- }
280
-
281
- .jux-stack-slide-up {
282
- animation: jux-slide-in-up 0.4s ease-out;
283
- }
284
-
285
- .jux-stack-slide-down {
286
- animation: jux-slide-in-down 0.4s ease-out;
287
- }
288
-
289
- .jux-stack-slide-left {
290
- animation: jux-slide-in-left 0.4s ease-out;
291
- }
292
-
293
- .jux-stack-slide-right {
294
- animation: jux-slide-in-right 0.4s ease-out;
295
- }
296
-
297
- .jux-stack-scale-in {
298
- animation: jux-scale-in 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
299
- }
300
-
301
- .jux-stack-zoom-in {
302
- animation: jux-zoom-in 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
303
- }
304
-
305
- .jux-stack-rotate-in {
306
- animation: jux-rotate-in 0.5s ease-out;
307
- }
308
-
309
- .jux-stack-flip-x {
310
- animation: jux-flip-in-x 0.6s ease-out;
311
- }
312
-
313
- .jux-stack-flip-y {
314
- animation: jux-flip-in-y 0.6s ease-out;
315
- }
316
-
317
- .jux-stack-bounce-in {
318
- animation: jux-bounce-in 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
319
- }
320
-
321
- .jux-stack-elastic-in {
322
- animation: jux-elastic-in 0.8s ease-out;
323
- }
324
-
325
- .jux-stack-blur-in {
326
- animation: jux-blur-in 0.5s ease-out;
327
- }
328
-
329
- .jux-stack-glow {
330
- animation: jux-glow-pulse 2s ease-in-out infinite;
331
- }
332
-
333
- /* ═════════════════════════════════════════════════════════════════
334
- * ITEM-LEVEL ANIMATIONS (Apply to direct children only)
335
- * ═════════════════════════════════════════════════════════════════ */
336
-
337
- .jux-stack-fade-in-items > * {
338
- animation: jux-fade-in 0.3s ease-out;
339
- }
340
-
341
- .jux-stack-slide-up-items > * {
342
- animation: jux-slide-in-up 0.4s ease-out;
343
- }
344
-
345
- .jux-stack-slide-down-items > * {
346
- animation: jux-slide-in-down 0.4s ease-out;
347
- }
348
-
349
- .jux-stack-slide-left-items > * {
350
- animation: jux-slide-in-left 0.4s ease-out;
351
- }
352
-
353
- .jux-stack-slide-right-items > * {
354
- animation: jux-slide-in-right 0.4s ease-out;
355
- }
356
-
357
- .jux-stack-scale-in-items > * {
358
- animation: jux-scale-in 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
359
- }
360
-
361
- .jux-stack-zoom-in-items > * {
362
- animation: jux-zoom-in 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
363
- }
364
-
365
- .jux-stack-rotate-in-items > * {
366
- animation: jux-rotate-in 0.5s ease-out;
367
- }
368
-
369
- .jux-stack-flip-x-items > * {
370
- animation: jux-flip-in-x 0.6s ease-out;
371
- }
372
-
373
- .jux-stack-flip-y-items > * {
374
- animation: jux-flip-in-y 0.6s ease-out;
375
- }
376
-
377
- .jux-stack-bounce-in-items > * {
378
- animation: jux-bounce-in 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
379
- }
380
-
381
- .jux-stack-elastic-in-items > * {
382
- animation: jux-elastic-in 0.8s ease-out;
383
- }
384
-
385
- .jux-stack-blur-in-items > * {
386
- animation: jux-blur-in 0.5s ease-out;
387
- }
388
-
389
- .jux-stack-glow-items > * {
390
- animation: jux-glow-pulse 2s ease-in-out infinite;
391
- }
392
-
393
- /* ═════════════════════════════════════════════════════════════════
394
- * STAGGER DELAYS (Only for item-level animations)
178
+ * STAGGER DELAYS (Sequential item delays)
395
179
  * ═════════════════════════════════════════════════════════════════ */
396
180
 
397
181
  .jux-stack-stagger > *:nth-child(1) { animation-delay: 0ms; }
@@ -406,7 +190,7 @@
406
190
  .jux-stack-stagger > *:nth-child(10) { animation-delay: 900ms; }
407
191
 
408
192
  /* ═════════════════════════════════════════════════════════════════
409
- * INTERACTIVE EFFECTS (Hover, Focus)
193
+ * INTERACTIVE EFFECTS (Hover/Focus transitions)
410
194
  * ═════════════════════════════════════════════════════════════════ */
411
195
 
412
196
  .jux-stack-interactive > * {
@@ -420,7 +204,7 @@
420
204
  }
421
205
 
422
206
  /* ═════════════════════════════════════════════════════════════════
423
- * UTILITY CLASSES
207
+ * TRANSITION UTILITIES
424
208
  * ═════════════════════════════════════════════════════════════════ */
425
209
 
426
210
  .jux-stack-smooth {
@@ -0,0 +1,103 @@
1
+ /* ═══════════════════════════════════════════════════════════════════
2
+ * JUX LAYOUT MODIFIERS
3
+ * Utility classes for precision layout control (used by LayoutExtensions)
4
+ * ═══════════════════════════════════════════════════════════════════ */
5
+
6
+ /* ═════════════════════════════════════════════════════════════════
7
+ * DISPLAY UTILITIES
8
+ * ═════════════════════════════════════════════════════════════════ */
9
+
10
+ .jux-display-block { display: block !important; }
11
+ .jux-display-inline { display: inline !important; }
12
+ .jux-display-inline-block { display: inline-block !important; }
13
+ .jux-display-flex { display: flex !important; }
14
+ .jux-display-grid { display: grid !important; }
15
+ .jux-display-none { display: none !important; }
16
+
17
+ /* ═════════════════════════════════════════════════════════════════
18
+ * POSITION UTILITIES
19
+ * ═════════════════════════════════════════════════════════════════ */
20
+
21
+ .jux-position-static { position: static !important; }
22
+ .jux-position-relative { position: relative !important; }
23
+ .jux-position-absolute { position: absolute !important; }
24
+ .jux-position-fixed { position: fixed !important; }
25
+ .jux-position-sticky { position: sticky !important; }
26
+
27
+ /* ═════════════════════════════════════════════════════════════════
28
+ * OVERFLOW UTILITIES
29
+ * ═════════════════════════════════════════════════════════════════ */
30
+
31
+ .jux-overflow-visible { overflow: visible !important; }
32
+ .jux-overflow-hidden { overflow: hidden !important; }
33
+ .jux-overflow-scroll { overflow: scroll !important; }
34
+ .jux-overflow-auto { overflow: auto !important; }
35
+
36
+ .jux-overflow-x-visible { overflow-x: visible !important; }
37
+ .jux-overflow-x-hidden { overflow-x: hidden !important; }
38
+ .jux-overflow-x-scroll { overflow-x: scroll !important; }
39
+ .jux-overflow-x-auto { overflow-x: auto !important; }
40
+
41
+ .jux-overflow-y-visible { overflow-y: visible !important; }
42
+ .jux-overflow-y-hidden { overflow-y: hidden !important; }
43
+ .jux-overflow-y-scroll { overflow-y: scroll !important; }
44
+ .jux-overflow-y-auto { overflow-y: auto !important; }
45
+
46
+ /* ═════════════════════════════════════════════════════════════════
47
+ * CURSOR UTILITIES
48
+ * ═════════════════════════════════════════════════════════════════ */
49
+
50
+ .jux-cursor-pointer { cursor: pointer !important; }
51
+ .jux-cursor-default { cursor: default !important; }
52
+ .jux-cursor-not-allowed { cursor: not-allowed !important; }
53
+ .jux-cursor-grab { cursor: grab !important; }
54
+ .jux-cursor-grabbing { cursor: grabbing !important; }
55
+
56
+ /* ═════════════════════════════════════════════════════════════════
57
+ * POINTER EVENTS
58
+ * ═════════════════════════════════════════════════════════════════ */
59
+
60
+ .jux-pointer-events-auto { pointer-events: auto !important; }
61
+ .jux-pointer-events-none { pointer-events: none !important; }
62
+
63
+ /* ═════════════════════════════════════════════════════════════════
64
+ * USER SELECT
65
+ * ═════════════════════════════════════════════════════════════════ */
66
+
67
+ .jux-select-auto { user-select: auto !important; }
68
+ .jux-select-none { user-select: none !important; }
69
+ .jux-select-text { user-select: text !important; }
70
+ .jux-select-all { user-select: all !important; }
71
+
72
+ /* ═════════════════════════════════════════════════════════════════
73
+ * TEXT UTILITIES
74
+ * ═════════════════════════════════════════════════════════════════ */
75
+
76
+ .jux-text-left { text-align: left !important; }
77
+ .jux-text-center { text-align: center !important; }
78
+ .jux-text-right { text-align: right !important; }
79
+ .jux-text-justify { text-align: justify !important; }
80
+
81
+ .jux-text-uppercase { text-transform: uppercase !important; }
82
+ .jux-text-lowercase { text-transform: lowercase !important; }
83
+ .jux-text-capitalize { text-transform: capitalize !important; }
84
+ .jux-text-none { text-transform: none !important; }
85
+
86
+ .jux-whitespace-normal { white-space: normal !important; }
87
+ .jux-whitespace-nowrap { white-space: nowrap !important; }
88
+ .jux-whitespace-pre { white-space: pre !important; }
89
+ .jux-whitespace-pre-wrap { white-space: pre-wrap !important; }
90
+ .jux-whitespace-pre-line { white-space: pre-line !important; }
91
+
92
+ .jux-word-wrap-normal { word-wrap: normal !important; }
93
+ .jux-word-wrap-break { word-wrap: break-word !important; }
94
+
95
+ /* ═════════════════════════════════════════════════════════════════
96
+ * BORDER STYLE UTILITIES
97
+ * ═════════════════════════════════════════════════════════════════ */
98
+
99
+ .jux-border-solid { border-style: solid !important; }
100
+ .jux-border-dashed { border-style: dashed !important; }
101
+ .jux-border-dotted { border-style: dotted !important; }
102
+ .jux-border-double { border-style: double !important; }
103
+ .jux-border-none { border-style: none !important; }
@@ -0,0 +1,82 @@
1
+ /* ═══════════════════════════════════════════════════════════════════
2
+ * STACK LAYOUT COMPONENTS
3
+ * Pure layout structure - no animations, no modifiers
4
+ * ═══════════════════════════════════════════════════════════════════ */
5
+
6
+ /* Vertical Stack */
7
+ .jux-vstack {
8
+ display: flex;
9
+ flex-direction: column;
10
+ gap: 1rem;
11
+ }
12
+
13
+ .jux-vstack-tight { gap: 0.5rem; }
14
+ .jux-vstack-loose { gap: 1.5rem; }
15
+ .jux-vstack-none { gap: 0; }
16
+
17
+ /* Horizontal Stack */
18
+ .jux-hstack {
19
+ display: flex;
20
+ flex-direction: row;
21
+ align-items: center;
22
+ gap: 1rem;
23
+ }
24
+
25
+ .jux-hstack-tight { gap: 0.5rem; }
26
+ .jux-hstack-loose { gap: 1.5rem; }
27
+ .jux-hstack-none { gap: 0; }
28
+
29
+ /* Z-Stack (Layered/Overlapping) */
30
+ .jux-zstack {
31
+ display: grid;
32
+ grid-template-columns: 1fr;
33
+ grid-template-rows: 1fr;
34
+ position: relative;
35
+ }
36
+
37
+ .jux-zstack > * {
38
+ grid-column: 1;
39
+ grid-row: 1;
40
+ }
41
+
42
+ .jux-zstack-tight > * { margin: 0.25rem; }
43
+ .jux-zstack-loose > * { margin: 0.75rem; }
44
+ .jux-zstack-none > * { margin: 0; }
45
+
46
+ /* Stack Alignment Options */
47
+ .jux-stack-start { align-items: flex-start; }
48
+ .jux-stack-center { align-items: center; }
49
+ .jux-stack-end { align-items: flex-end; }
50
+ .jux-stack-stretch { align-items: stretch; }
51
+
52
+ /* Stack Justification Options */
53
+ .jux-stack-justify-start { justify-content: flex-start; }
54
+ .jux-stack-justify-center { justify-content: center; }
55
+ .jux-stack-justify-end { justify-content: flex-end; }
56
+ .jux-stack-justify-between { justify-content: space-between; }
57
+ .jux-stack-justify-around { justify-content: space-around; }
58
+ .jux-stack-justify-evenly { justify-content: space-evenly; }
59
+
60
+ /* Responsive Stacks */
61
+ @media (max-width: 768px) {
62
+ .jux-hstack-responsive {
63
+ flex-direction: column;
64
+ }
65
+ }
66
+
67
+ /* Stack with Dividers */
68
+ .jux-vstack-divider > *:not(:last-child) {
69
+ padding-bottom: 1rem;
70
+ border-bottom: 1px solid #e4e4e7;
71
+ margin-bottom: 1rem;
72
+ }
73
+
74
+ .jux-hstack-divider > *:not(:last-child) {
75
+ padding-right: 1rem;
76
+ border-right: 1px solid #e4e4e7;
77
+ margin-right: 1rem;
78
+ }
79
+
80
+ .jux-zstack-divider > * {
81
+ border: 1px solid #e4e4e7;
82
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "juxscript",
3
- "version": "1.1.108",
3
+ "version": "1.1.109",
4
4
  "type": "module",
5
5
  "description": "A JavaScript UX authorship platform",
6
6
  "main": "index.js",