@xscriptor/xcomponents 0.1.0 → 0.1.1

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 (106) hide show
  1. package/README.md +1 -0
  2. package/dist/{chunk-U27ZVCP7.mjs → chunk-2H7TVDE7.mjs} +14 -2
  3. package/dist/chunk-2H7TVDE7.mjs.map +7 -0
  4. package/dist/{chunk-5G4P2E76.mjs → chunk-34NJCJUI.mjs} +11 -2
  5. package/dist/chunk-34NJCJUI.mjs.map +7 -0
  6. package/dist/chunk-FZRTAML3.mjs +1 -1
  7. package/dist/chunk-FZRTAML3.mjs.map +7 -1
  8. package/dist/{chunk-2OAXRRVQ.mjs → chunk-MYFPSHSQ.mjs} +32 -3
  9. package/dist/chunk-MYFPSHSQ.mjs.map +7 -0
  10. package/dist/{chunk-NY22GB3E.mjs → chunk-TG3B4GAW.mjs} +26 -2
  11. package/dist/chunk-TG3B4GAW.mjs.map +7 -0
  12. package/dist/{chunk-QCMWPIG7.mjs → chunk-TKT37LIX.mjs} +39 -3
  13. package/dist/chunk-TKT37LIX.mjs.map +7 -0
  14. package/dist/{chunk-42XPBYTL.mjs → chunk-UROP4J6G.mjs} +29 -4
  15. package/dist/chunk-UROP4J6G.mjs.map +7 -0
  16. package/dist/components/content/index.css +23 -23
  17. package/dist/components/content/index.css.map +7 -1
  18. package/dist/components/content/index.d.ts +2 -17
  19. package/dist/components/content/index.js +11 -6
  20. package/dist/components/content/index.js.map +7 -1
  21. package/dist/components/content/index.mjs +2 -2
  22. package/dist/components/content/index.mjs.map +7 -1
  23. package/dist/components/content/xinteractivephrase/XInteractivePhrase.d.ts +13 -0
  24. package/dist/components/content/xinteractivephrase/index.d.ts +3 -0
  25. package/dist/components/forms/index.css +54 -54
  26. package/dist/components/forms/index.css.map +7 -1
  27. package/dist/components/forms/index.d.ts +4 -68
  28. package/dist/components/forms/index.js +39 -8
  29. package/dist/components/forms/index.js.map +7 -1
  30. package/dist/components/forms/index.mjs +2 -2
  31. package/dist/components/forms/index.mjs.map +7 -1
  32. package/dist/components/forms/xcontactform/XContactForm.d.ts +42 -0
  33. package/dist/components/forms/xcontactform/index.d.ts +3 -0
  34. package/dist/components/forms/xnewsletter/XNewsletter.d.ts +21 -0
  35. package/dist/components/forms/xnewsletter/index.d.ts +3 -0
  36. package/dist/components/gallery/index.css +58 -58
  37. package/dist/components/gallery/index.css.map +7 -1
  38. package/dist/components/gallery/index.d.ts +4 -29
  39. package/dist/components/gallery/index.js +32 -8
  40. package/dist/components/gallery/index.js.map +7 -1
  41. package/dist/components/gallery/index.mjs +2 -2
  42. package/dist/components/gallery/index.mjs.map +7 -1
  43. package/dist/components/gallery/xmicrogallerytext/XMicroGalleryText.d.ts +15 -0
  44. package/dist/components/gallery/xmicrogallerytext/index.d.ts +3 -0
  45. package/dist/components/gallery/xstaticgallery/XStaticGallery.d.ts +10 -0
  46. package/dist/components/gallery/xstaticgallery/index.d.ts +3 -0
  47. package/dist/components/index.css +215 -215
  48. package/dist/components/index.css.map +7 -1
  49. package/dist/components/index.d.ts +6 -8
  50. package/dist/components/index.js +146 -31
  51. package/dist/components/index.js.map +7 -1
  52. package/dist/components/index.mjs +12 -12
  53. package/dist/components/index.mjs.map +7 -1
  54. package/dist/components/layout/index.css +28 -28
  55. package/dist/components/layout/index.css.map +7 -1
  56. package/dist/components/layout/index.d.ts +6 -55
  57. package/dist/components/layout/index.js +29 -10
  58. package/dist/components/layout/index.js.map +7 -1
  59. package/dist/components/layout/index.mjs +2 -2
  60. package/dist/components/layout/index.mjs.map +7 -1
  61. package/dist/components/layout/xfooter/XFooter.d.ts +24 -0
  62. package/dist/components/layout/xfooter/index.d.ts +3 -0
  63. package/dist/components/layout/xseparator/XSeparator.d.ts +13 -0
  64. package/dist/components/layout/xseparator/index.d.ts +3 -0
  65. package/dist/components/layout/xzigzaglayout/XZigZagLayout.d.ts +12 -0
  66. package/dist/components/layout/xzigzaglayout/index.d.ts +3 -0
  67. package/dist/components/navigation/index.css +35 -35
  68. package/dist/components/navigation/index.css.map +7 -1
  69. package/dist/components/navigation/index.d.ts +2 -76
  70. package/dist/components/navigation/index.js +26 -6
  71. package/dist/components/navigation/index.js.map +7 -1
  72. package/dist/components/navigation/index.mjs +2 -2
  73. package/dist/components/navigation/index.mjs.map +7 -1
  74. package/dist/components/navigation/{index.d.mts → xnavbar/XNavbar.d.ts} +6 -10
  75. package/dist/components/navigation/xnavbar/index.d.ts +3 -0
  76. package/dist/components/social/index.css +22 -22
  77. package/dist/components/social/index.css.map +7 -1
  78. package/dist/components/social/index.d.ts +2 -55
  79. package/dist/components/social/index.js +14 -13
  80. package/dist/components/social/index.js.map +7 -1
  81. package/dist/components/social/index.mjs +2 -2
  82. package/dist/components/social/index.mjs.map +7 -1
  83. package/dist/components/social/xsocialcontact/XSocialContact.d.ts +30 -0
  84. package/dist/components/social/xsocialcontact/XSocialIcons.d.ts +21 -0
  85. package/dist/components/social/xsocialcontact/index.d.ts +5 -0
  86. package/dist/index.css +215 -215
  87. package/dist/index.css.map +7 -1
  88. package/dist/index.d.ts +1 -8
  89. package/dist/index.js +149 -34
  90. package/dist/index.js.map +7 -1
  91. package/dist/index.mjs +12 -12
  92. package/dist/index.mjs.map +7 -1
  93. package/package.json +6 -4
  94. package/dist/chunk-2OAXRRVQ.mjs.map +0 -1
  95. package/dist/chunk-42XPBYTL.mjs.map +0 -1
  96. package/dist/chunk-5G4P2E76.mjs.map +0 -1
  97. package/dist/chunk-NY22GB3E.mjs.map +0 -1
  98. package/dist/chunk-QCMWPIG7.mjs.map +0 -1
  99. package/dist/chunk-U27ZVCP7.mjs.map +0 -1
  100. package/dist/components/content/index.d.mts +0 -17
  101. package/dist/components/forms/index.d.mts +0 -68
  102. package/dist/components/gallery/index.d.mts +0 -29
  103. package/dist/components/index.d.mts +0 -8
  104. package/dist/components/layout/index.d.mts +0 -55
  105. package/dist/components/social/index.d.mts +0 -55
  106. package/dist/index.d.mts +0 -8
@@ -1,5 +1,5 @@
1
1
  /* src/components/gallery/xmicrogallerytext/XMicroGalleryText.module.css */
2
- .container {
2
+ .XMicroGalleryText_container3 {
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  gap: 2rem;
@@ -8,57 +8,57 @@
8
8
  margin: 2rem 0;
9
9
  }
10
10
  @media (min-width: 1024px) {
11
- .container {
11
+ .XMicroGalleryText_container3 {
12
12
  flex-direction: row;
13
13
  align-items: center;
14
14
  gap: 4rem;
15
15
  }
16
- .reverse {
16
+ .XMicroGalleryText_reverse3 {
17
17
  flex-direction: row-reverse;
18
18
  }
19
19
  }
20
- .textContent {
20
+ .XMicroGalleryText_textContent3 {
21
21
  flex: 1;
22
22
  opacity: 0;
23
23
  transform: translateY(30px);
24
24
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
25
25
  color: var(--foreground);
26
26
  }
27
- .textContent.visible {
27
+ .XMicroGalleryText_textContent3.XMicroGalleryText_visible3 {
28
28
  opacity: 1;
29
29
  transform: translateY(0);
30
30
  }
31
- .textLeft {
31
+ .XMicroGalleryText_textLeft3 {
32
32
  text-align: left;
33
33
  }
34
- .textRight {
34
+ .XMicroGalleryText_textRight3 {
35
35
  text-align: right;
36
36
  }
37
- .textCenter {
37
+ .XMicroGalleryText_textCenter3 {
38
38
  text-align: center;
39
39
  }
40
- .textContent p,
41
- .textContent div,
42
- .textContent span,
43
- .textContent em,
44
- .textContent strong,
45
- .textContent a {
40
+ .XMicroGalleryText_textContent3 p,
41
+ .XMicroGalleryText_textContent3 div,
42
+ .XMicroGalleryText_textContent3 span,
43
+ .XMicroGalleryText_textContent3 em,
44
+ .XMicroGalleryText_textContent3 strong,
45
+ .XMicroGalleryText_textContent3 a {
46
46
  text-align: inherit;
47
47
  max-width: none;
48
48
  margin-left: unset;
49
49
  margin-right: unset;
50
50
  }
51
- .gallery {
51
+ .XMicroGalleryText_gallery3 {
52
52
  flex: 1.5;
53
53
  width: 100%;
54
54
  }
55
- .artisticGrid {
55
+ .XMicroGalleryText_artisticGrid3 {
56
56
  display: grid;
57
57
  grid-template-columns: repeat(3, 1fr);
58
58
  grid-template-rows: 380px 220px;
59
59
  gap: 1rem;
60
60
  }
61
- .imageWrapper {
61
+ .XMicroGalleryText_imageWrapper3 {
62
62
  position: relative;
63
63
  overflow: hidden;
64
64
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
@@ -70,80 +70,80 @@
70
70
  transform 0.6s ease-out,
71
71
  box-shadow 0.3s ease;
72
72
  }
73
- .imageWrapper.visible {
73
+ .XMicroGalleryText_imageWrapper3.XMicroGalleryText_visible3 {
74
74
  opacity: 1;
75
75
  transform: translateY(0) scale(1);
76
76
  }
77
- .imageWrapper:hover {
77
+ .XMicroGalleryText_imageWrapper3:hover {
78
78
  transform: translateY(-5px);
79
79
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
80
80
  }
81
- .previewImage {
81
+ .XMicroGalleryText_previewImage3 {
82
82
  object-fit: cover;
83
83
  }
84
- .artisticGrid .artistic1 .previewImage {
84
+ .XMicroGalleryText_artisticGrid3 .XMicroGalleryText_artistic13 .XMicroGalleryText_previewImage3 {
85
85
  object-position: center top;
86
86
  transform: translateY(0);
87
87
  }
88
- .artistic1 {
88
+ .XMicroGalleryText_artistic13 {
89
89
  grid-column: 1 / 4;
90
90
  grid-row: 1 / 2;
91
91
  transition-delay: 0.2s;
92
92
  }
93
- .artistic2 {
93
+ .XMicroGalleryText_artistic23 {
94
94
  grid-column: 1 / 2;
95
95
  grid-row: 2 / 3;
96
96
  transition-delay: 0.3s;
97
97
  }
98
- .artistic3 {
98
+ .XMicroGalleryText_artistic33 {
99
99
  grid-column: 2 / 4;
100
100
  grid-row: 2 / 3;
101
101
  transition-delay: 0.4s;
102
102
  }
103
103
  @media (max-width: 768px) {
104
- .artisticGrid {
104
+ .XMicroGalleryText_artisticGrid3 {
105
105
  grid-template-columns: 1fr;
106
106
  grid-template-rows: 240px 180px 180px;
107
107
  }
108
- .artistic1,
109
- .artistic2,
110
- .artistic3 {
108
+ .XMicroGalleryText_artistic13,
109
+ .XMicroGalleryText_artistic23,
110
+ .XMicroGalleryText_artistic33 {
111
111
  grid-column: 1 / 2;
112
112
  }
113
- .artistic1 {
113
+ .XMicroGalleryText_artistic13 {
114
114
  grid-row: 1 / 2;
115
115
  }
116
- .artistic2 {
116
+ .XMicroGalleryText_artistic23 {
117
117
  grid-row: 2 / 3;
118
118
  }
119
- .artistic3 {
119
+ .XMicroGalleryText_artistic33 {
120
120
  grid-row: 3 / 4;
121
121
  }
122
122
  }
123
123
  @media (max-width: 480px) {
124
- .artisticGrid {
124
+ .XMicroGalleryText_artisticGrid3 {
125
125
  grid-template-rows: 200px 140px 140px;
126
126
  }
127
127
  }
128
128
 
129
129
  /* src/components/gallery/xstaticgallery/XStaticGallery.module.css */
130
- .galleryContainer {
130
+ .XStaticGallery_galleryContainer3 {
131
131
  width: 100%;
132
132
  max-width: 80rem;
133
133
  margin: 0 auto;
134
134
  padding: 1rem 1rem 3rem;
135
135
  }
136
- .galleryTitle {
136
+ .XStaticGallery_galleryTitle3 {
137
137
  font-size: 1.875rem;
138
138
  text-align: right;
139
139
  color: var(--primary);
140
140
  margin-bottom: 3rem;
141
141
  opacity: 0.8;
142
142
  }
143
- .masonryGrid {
143
+ .XStaticGallery_masonryGrid3 {
144
144
  gap: 1rem;
145
145
  }
146
- .masonryItem {
146
+ .XStaticGallery_masonryItem3 {
147
147
  break-inside: avoid;
148
148
  position: relative;
149
149
  border-radius: 1rem;
@@ -157,73 +157,73 @@
157
157
  transform 0.5s ease-out,
158
158
  box-shadow 0.3s ease;
159
159
  }
160
- .masonryItem.visible {
160
+ .XStaticGallery_masonryItem3.XStaticGallery_visible3 {
161
161
  opacity: 1;
162
162
  transform: translateY(0);
163
163
  }
164
- .masonryItem:hover {
164
+ .XStaticGallery_masonryItem3:hover {
165
165
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
166
166
  }
167
- .imageContainer {
167
+ .XStaticGallery_imageContainer3 {
168
168
  position: relative;
169
169
  width: 100%;
170
170
  overflow: hidden;
171
171
  border-radius: 1rem;
172
172
  }
173
- .galleryImage {
173
+ .XStaticGallery_galleryImage3 {
174
174
  width: 100%;
175
175
  height: auto;
176
176
  object-fit: cover;
177
177
  display: block;
178
178
  transition: transform 0.5s ease-out;
179
179
  }
180
- .masonryItem:hover .galleryImage {
180
+ .XStaticGallery_masonryItem3:hover .XStaticGallery_galleryImage3 {
181
181
  transform: scale(1.05);
182
182
  }
183
- .imageOverlay {
183
+ .XStaticGallery_imageOverlay3 {
184
184
  position: absolute;
185
185
  inset: 0;
186
186
  background: rgba(0, 0, 0, 0);
187
187
  transition: background 0.3s ease;
188
188
  pointer-events: none;
189
189
  }
190
- .masonryItem:hover .imageOverlay {
190
+ .XStaticGallery_masonryItem3:hover .XStaticGallery_imageOverlay3 {
191
191
  background: rgba(0, 0, 0, 0.1);
192
192
  }
193
- .cols1 {
193
+ .XStaticGallery_cols13 {
194
194
  columns: 1;
195
195
  }
196
- .cols2 {
196
+ .XStaticGallery_cols23 {
197
197
  columns: 2;
198
198
  }
199
- .cols3 {
199
+ .XStaticGallery_cols33 {
200
200
  columns: 3;
201
201
  }
202
- .cols4 {
202
+ .XStaticGallery_cols43 {
203
203
  columns: 4;
204
204
  }
205
- .cols5 {
205
+ .XStaticGallery_cols53 {
206
206
  columns: 5;
207
207
  }
208
208
  @media (max-width: 1280px) {
209
- .cols4,
210
- .cols5 {
209
+ .XStaticGallery_cols43,
210
+ .XStaticGallery_cols53 {
211
211
  columns: 3;
212
212
  }
213
213
  }
214
214
  @media (max-width: 768px) {
215
- .cols3,
216
- .cols4,
217
- .cols5 {
215
+ .XStaticGallery_cols33,
216
+ .XStaticGallery_cols43,
217
+ .XStaticGallery_cols53 {
218
218
  columns: 2;
219
219
  }
220
220
  }
221
221
  @media (max-width: 640px) {
222
- .cols2,
223
- .cols3,
224
- .cols4,
225
- .cols5 {
222
+ .XStaticGallery_cols23,
223
+ .XStaticGallery_cols33,
224
+ .XStaticGallery_cols43,
225
+ .XStaticGallery_cols53 {
226
226
  columns: 1;
227
227
  }
228
228
  }
229
- /*# sourceMappingURL=index.css.map */
229
+ /*# sourceMappingURL=index.css.map */
@@ -1 +1,7 @@
1
- {"version":3,"sources":["../../../src/components/gallery/xmicrogallerytext/XMicroGalleryText.module.css","../../../src/components/gallery/xstaticgallery/XStaticGallery.module.css"],"sourcesContent":[".container {\n display: flex;\n flex-direction: column;\n gap: 2rem;\n width: 100%;\n align-items: center;\n margin: 2rem 0;\n}\n\n@media (min-width: 1024px) {\n .container {\n flex-direction: row;\n align-items: center;\n gap: 4rem;\n }\n \n .reverse {\n flex-direction: row-reverse;\n }\n}\n\n.textContent {\n flex: 1;\n opacity: 0;\n transform: translateY(30px);\n transition: opacity 0.8s ease-out, transform 0.8s ease-out;\n color: var(--foreground);\n}\n\n.textContent.visible {\n opacity: 1;\n transform: translateY(0);\n}\n\n.textLeft {\n text-align: left;\n}\n\n.textRight {\n text-align: right;\n}\n\n.textCenter {\n text-align: center;\n}\n\n.textContent p,\n.textContent div,\n.textContent span,\n.textContent em,\n.textContent strong,\n.textContent a {\n text-align: inherit;\n max-width: none;\n margin-left: unset;\n margin-right: unset;\n}\n\n.gallery {\n flex: 1.5;\n width: 100%;\n}\n\n.artisticGrid {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: 380px 220px;\n gap: 1rem;\n}\n\n.imageWrapper {\n position: relative;\n overflow: hidden;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n border-radius: 20px;\n opacity: 0;\n transform: translateY(50px) scale(0.95);\n transition: opacity 0.6s ease-out, transform 0.6s ease-out, box-shadow 0.3s ease;\n}\n\n.imageWrapper.visible {\n opacity: 1;\n transform: translateY(0) scale(1);\n}\n\n.imageWrapper:hover {\n transform: translateY(-5px);\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);\n}\n\n.previewImage {\n object-fit: cover;\n}\n\n.artisticGrid .artistic1 .previewImage {\n object-position: center top;\n transform: translateY(0);\n}\n\n.artistic1 {\n grid-column: 1 / 4;\n grid-row: 1 / 2;\n transition-delay: 0.2s;\n}\n\n.artistic2 {\n grid-column: 1 / 2;\n grid-row: 2 / 3;\n transition-delay: 0.3s;\n}\n\n.artistic3 {\n grid-column: 2 / 4;\n grid-row: 2 / 3;\n transition-delay: 0.4s;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .artisticGrid {\n grid-template-columns: 1fr;\n grid-template-rows: 240px 180px 180px;\n }\n \n .artistic1,\n .artistic2,\n .artistic3 {\n grid-column: 1 / 2;\n }\n \n .artistic1 {\n grid-row: 1 / 2;\n }\n \n .artistic2 {\n grid-row: 2 / 3;\n }\n \n .artistic3 {\n grid-row: 3 / 4;\n }\n}\n\n@media (max-width: 480px) {\n .artisticGrid {\n grid-template-rows: 200px 140px 140px;\n }\n}\n",".galleryContainer {\n width: 100%;\n max-width: 80rem;\n margin: 0 auto;\n padding: 1rem 1rem 3rem;\n}\n\n.galleryTitle {\n font-size: 1.875rem;\n text-align: right;\n color: var(--primary);\n margin-bottom: 3rem;\n opacity: 0.8;\n}\n\n/* Masonry via CSS columns */\n.masonryGrid {\n gap: 1rem;\n}\n\n.masonryItem {\n break-inside: avoid;\n position: relative;\n border-radius: 1rem;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n margin-bottom: 1rem;\n opacity: 0;\n transform: translateY(20px);\n transition: opacity 0.5s ease-out, transform 0.5s ease-out, box-shadow 0.3s ease;\n}\n\n.masonryItem.visible {\n opacity: 1;\n transform: translateY(0);\n}\n\n.masonryItem:hover {\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);\n}\n\n.imageContainer {\n position: relative;\n width: 100%;\n overflow: hidden;\n border-radius: 1rem;\n}\n\n.galleryImage {\n width: 100%;\n height: auto;\n object-fit: cover;\n display: block;\n transition: transform 0.5s ease-out;\n}\n\n.masonryItem:hover .galleryImage {\n transform: scale(1.05);\n}\n\n.imageOverlay {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0);\n transition: background 0.3s ease;\n pointer-events: none;\n}\n\n.masonryItem:hover .imageOverlay {\n background: rgba(0, 0, 0, 0.1);\n}\n\n/* Column count via CSS custom property */\n.cols1 { columns: 1; }\n.cols2 { columns: 2; }\n.cols3 { columns: 3; }\n.cols4 { columns: 4; }\n.cols5 { columns: 5; }\n\n/* Responsive overrides */\n@media (max-width: 1280px) {\n .cols4, .cols5 { columns: 3; }\n}\n\n@media (max-width: 768px) {\n .cols3, .cols4, .cols5 { columns: 2; }\n}\n\n@media (max-width: 640px) {\n .cols2, .cols3, .cols4, .cols5 { columns: 1; }\n}\n"],"mappings":"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","names":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/gallery/xmicrogallerytext/XMicroGalleryText.module.css", "../../../src/components/gallery/xstaticgallery/XStaticGallery.module.css"],
4
+ "sourcesContent": [".container {\n display: flex;\n flex-direction: column;\n gap: 2rem;\n width: 100%;\n align-items: center;\n margin: 2rem 0;\n}\n\n@media (min-width: 1024px) {\n .container {\n flex-direction: row;\n align-items: center;\n gap: 4rem;\n }\n \n .reverse {\n flex-direction: row-reverse;\n }\n}\n\n.textContent {\n flex: 1;\n opacity: 0;\n transform: translateY(30px);\n transition: opacity 0.8s ease-out, transform 0.8s ease-out;\n color: var(--foreground);\n}\n\n.textContent.visible {\n opacity: 1;\n transform: translateY(0);\n}\n\n.textLeft {\n text-align: left;\n}\n\n.textRight {\n text-align: right;\n}\n\n.textCenter {\n text-align: center;\n}\n\n.textContent p,\n.textContent div,\n.textContent span,\n.textContent em,\n.textContent strong,\n.textContent a {\n text-align: inherit;\n max-width: none;\n margin-left: unset;\n margin-right: unset;\n}\n\n.gallery {\n flex: 1.5;\n width: 100%;\n}\n\n.artisticGrid {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: 380px 220px;\n gap: 1rem;\n}\n\n.imageWrapper {\n position: relative;\n overflow: hidden;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n border-radius: 20px;\n opacity: 0;\n transform: translateY(50px) scale(0.95);\n transition: opacity 0.6s ease-out, transform 0.6s ease-out, box-shadow 0.3s ease;\n}\n\n.imageWrapper.visible {\n opacity: 1;\n transform: translateY(0) scale(1);\n}\n\n.imageWrapper:hover {\n transform: translateY(-5px);\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);\n}\n\n.previewImage {\n object-fit: cover;\n}\n\n.artisticGrid .artistic1 .previewImage {\n object-position: center top;\n transform: translateY(0);\n}\n\n.artistic1 {\n grid-column: 1 / 4;\n grid-row: 1 / 2;\n transition-delay: 0.2s;\n}\n\n.artistic2 {\n grid-column: 1 / 2;\n grid-row: 2 / 3;\n transition-delay: 0.3s;\n}\n\n.artistic3 {\n grid-column: 2 / 4;\n grid-row: 2 / 3;\n transition-delay: 0.4s;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .artisticGrid {\n grid-template-columns: 1fr;\n grid-template-rows: 240px 180px 180px;\n }\n \n .artistic1,\n .artistic2,\n .artistic3 {\n grid-column: 1 / 2;\n }\n \n .artistic1 {\n grid-row: 1 / 2;\n }\n \n .artistic2 {\n grid-row: 2 / 3;\n }\n \n .artistic3 {\n grid-row: 3 / 4;\n }\n}\n\n@media (max-width: 480px) {\n .artisticGrid {\n grid-template-rows: 200px 140px 140px;\n }\n}\n", ".galleryContainer {\n width: 100%;\n max-width: 80rem;\n margin: 0 auto;\n padding: 1rem 1rem 3rem;\n}\n\n.galleryTitle {\n font-size: 1.875rem;\n text-align: right;\n color: var(--primary);\n margin-bottom: 3rem;\n opacity: 0.8;\n}\n\n/* Masonry via CSS columns */\n.masonryGrid {\n gap: 1rem;\n}\n\n.masonryItem {\n break-inside: avoid;\n position: relative;\n border-radius: 1rem;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n margin-bottom: 1rem;\n opacity: 0;\n transform: translateY(20px);\n transition: opacity 0.5s ease-out, transform 0.5s ease-out, box-shadow 0.3s ease;\n}\n\n.masonryItem.visible {\n opacity: 1;\n transform: translateY(0);\n}\n\n.masonryItem:hover {\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);\n}\n\n.imageContainer {\n position: relative;\n width: 100%;\n overflow: hidden;\n border-radius: 1rem;\n}\n\n.galleryImage {\n width: 100%;\n height: auto;\n object-fit: cover;\n display: block;\n transition: transform 0.5s ease-out;\n}\n\n.masonryItem:hover .galleryImage {\n transform: scale(1.05);\n}\n\n.imageOverlay {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0);\n transition: background 0.3s ease;\n pointer-events: none;\n}\n\n.masonryItem:hover .imageOverlay {\n background: rgba(0, 0, 0, 0.1);\n}\n\n/* Column count via CSS custom property */\n.cols1 { columns: 1; }\n.cols2 { columns: 2; }\n.cols3 { columns: 3; }\n.cols4 { columns: 4; }\n.cols5 { columns: 5; }\n\n/* Responsive overrides */\n@media (max-width: 1280px) {\n .cols4, .cols5 { columns: 3; }\n}\n\n@media (max-width: 768px) {\n .cols3, .cols4, .cols5 { columns: 2; }\n}\n\n@media (max-width: 640px) {\n .cols2, .cols3, .cols4, .cols5 { columns: 1; }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["container", "reverse", "textContent", "visible", "textLeft", "textRight", "textCenter", "gallery", "artisticGrid", "imageWrapper", "previewImage", "artistic1", "artistic2", "artistic3", "galleryContainer", "galleryTitle", "masonryGrid", "masonryItem", "visible", "imageContainer", "galleryImage", "imageOverlay", "cols1", "cols2", "cols3", "cols4", "cols5"]
7
+ }
@@ -1,29 +1,4 @@
1
- import React from 'react';
2
- import * as react_jsx_runtime from 'react/jsx-runtime';
3
-
4
- interface XMicroGalleryImage {
5
- src: string;
6
- alt: string;
7
- }
8
- interface XMicroGalleryTextProps {
9
- images: XMicroGalleryImage[];
10
- text: React.ReactNode;
11
- textPosition?: 'left' | 'right';
12
- textAlign?: 'left' | 'right' | 'center';
13
- autoShuffle?: boolean;
14
- shuffleInterval?: number;
15
- }
16
- declare const XMicroGalleryText: React.FC<XMicroGalleryTextProps>;
17
-
18
- interface XStaticGalleryImage {
19
- src: string;
20
- alt: string;
21
- }
22
- interface XStaticGalleryProps {
23
- images: XStaticGalleryImage[];
24
- columns?: 1 | 2 | 3 | 4 | 5;
25
- title?: string;
26
- }
27
- declare function XStaticGallery({ images, columns, title }: XStaticGalleryProps): react_jsx_runtime.JSX.Element;
28
-
29
- export { type XMicroGalleryImage, XMicroGalleryText, type XMicroGalleryTextProps, XStaticGallery, type XStaticGalleryImage, type XStaticGalleryProps };
1
+ export { XMicroGalleryText } from "./xmicrogallerytext";
2
+ export { XStaticGallery } from "./xstaticgallery";
3
+ export type { XMicroGalleryTextProps, XMicroGalleryImage } from "./xmicrogallerytext";
4
+ export type { XStaticGalleryProps, XStaticGalleryImage } from "./xstaticgallery";
@@ -41,7 +41,22 @@ var import_image = __toESM(require("next/image"));
41
41
  var import_framer_motion = require("framer-motion");
42
42
 
43
43
  // src/components/gallery/xmicrogallerytext/XMicroGalleryText.module.css
44
- var XMicroGalleryText_default = {};
44
+ var XMicroGalleryText_default = {
45
+ container: "XMicroGalleryText_container3",
46
+ reverse: "XMicroGalleryText_reverse3",
47
+ textContent: "XMicroGalleryText_textContent3",
48
+ visible: "XMicroGalleryText_visible3",
49
+ textLeft: "XMicroGalleryText_textLeft3",
50
+ textRight: "XMicroGalleryText_textRight3",
51
+ textCenter: "XMicroGalleryText_textCenter3",
52
+ gallery: "XMicroGalleryText_gallery3",
53
+ artisticGrid: "XMicroGalleryText_artisticGrid3",
54
+ imageWrapper: "XMicroGalleryText_imageWrapper3",
55
+ previewImage: "XMicroGalleryText_previewImage3",
56
+ artistic1: "XMicroGalleryText_artistic13",
57
+ artistic2: "XMicroGalleryText_artistic23",
58
+ artistic3: "XMicroGalleryText_artistic33"
59
+ };
45
60
 
46
61
  // src/components/gallery/xmicrogallerytext/XMicroGalleryText.tsx
47
62
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -128,7 +143,21 @@ var import_react2 = require("react");
128
143
  var import_image2 = __toESM(require("next/image"));
129
144
 
130
145
  // src/components/gallery/xstaticgallery/XStaticGallery.module.css
131
- var XStaticGallery_default = {};
146
+ var XStaticGallery_default = {
147
+ galleryContainer: "XStaticGallery_galleryContainer3",
148
+ galleryTitle: "XStaticGallery_galleryTitle3",
149
+ masonryGrid: "XStaticGallery_masonryGrid3",
150
+ masonryItem: "XStaticGallery_masonryItem3",
151
+ visible: "XStaticGallery_visible3",
152
+ imageContainer: "XStaticGallery_imageContainer3",
153
+ galleryImage: "XStaticGallery_galleryImage3",
154
+ imageOverlay: "XStaticGallery_imageOverlay3",
155
+ cols1: "XStaticGallery_cols13",
156
+ cols2: "XStaticGallery_cols23",
157
+ cols3: "XStaticGallery_cols33",
158
+ cols4: "XStaticGallery_cols43",
159
+ cols5: "XStaticGallery_cols53"
160
+ };
132
161
 
133
162
  // src/components/gallery/xstaticgallery/XStaticGallery.tsx
134
163
  var import_jsx_runtime2 = require("react/jsx-runtime");
@@ -179,9 +208,4 @@ function XStaticGallery({ images, columns = 4, title }) {
179
208
  ] }) }, index)) })
180
209
  ] });
181
210
  }
182
- // Annotate the CommonJS export names for ESM import in node:
183
- 0 && (module.exports = {
184
- XMicroGalleryText,
185
- XStaticGallery
186
- });
187
- //# sourceMappingURL=index.js.map
211
+ //# sourceMappingURL=index.js.map
@@ -1 +1,7 @@
1
- {"version":3,"sources":["../../../src/components/gallery/index.ts","../../../src/components/gallery/xmicrogallerytext/XMicroGalleryText.tsx","../../../src/components/gallery/xmicrogallerytext/XMicroGalleryText.module.css","../../../src/components/gallery/xstaticgallery/XStaticGallery.tsx","../../../src/components/gallery/xstaticgallery/XStaticGallery.module.css"],"sourcesContent":["export { XMicroGalleryText } from \"./xmicrogallerytext\";\nexport { XStaticGallery } from \"./xstaticgallery\";\nexport type { XMicroGalleryTextProps, XMicroGalleryImage } from \"./xmicrogallerytext\";\nexport type { XStaticGalleryProps, XStaticGalleryImage } from \"./xstaticgallery\";\n","import React, { useEffect, useRef } from 'react';\nimport Image from 'next/image';\nimport { motion } from 'framer-motion';\nimport styles from './XMicroGalleryText.module.css';\n\nexport interface XMicroGalleryImage {\n src: string;\n alt: string;\n}\n\nexport interface XMicroGalleryTextProps {\n images: XMicroGalleryImage[];\n text: React.ReactNode;\n textPosition?: 'left' | 'right';\n textAlign?: 'left' | 'right' | 'center';\n autoShuffle?: boolean;\n shuffleInterval?: number;\n}\n\nconst DISPLAY_COUNT = 3;\n\nconst XMicroGalleryText: React.FC<XMicroGalleryTextProps> = ({ \n images, \n text, \n textPosition = 'left',\n textAlign = 'left',\n autoShuffle = false,\n shuffleInterval = 5000\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [startIndex, setStartIndex] = React.useState(0);\n\n const visibleImages = React.useMemo(() => {\n const result: XMicroGalleryImage[] = [];\n for (let i = 0; i < DISPLAY_COUNT; i++) {\n result.push(images[(startIndex + i) % images.length]);\n }\n return result;\n }, [images, startIndex]);\n\n React.useEffect(() => {\n if (!autoShuffle || images.length <= DISPLAY_COUNT) return;\n\n const intervalId = setInterval(() => {\n setStartIndex((prev) => (prev + 1) % images.length);\n }, shuffleInterval);\n\n return () => clearInterval(intervalId);\n }, [autoShuffle, shuffleInterval, images.length]);\n\n const [isVisible, setIsVisible] = React.useState(false);\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setIsVisible(true);\n observer.disconnect();\n }\n },\n {\n threshold: 0.1,\n rootMargin: '0px 0px -50px 0px'\n }\n );\n\n if (containerRef.current) {\n observer.observe(containerRef.current);\n }\n\n return () => observer.disconnect();\n }, []);\n\n const isTextRight = textPosition === 'right';\n\n const alignClass = {\n left: styles.textLeft,\n right: styles.textRight,\n center: styles.textCenter,\n }[textAlign];\n\n return (\n <div ref={containerRef} className={`${styles.container} ${isTextRight ? styles.reverse : ''}`}>\n <div className={`${styles.textContent} ${alignClass} ${isVisible ? styles.visible : ''}`}>\n {typeof text === 'string' ? (\n <div dangerouslySetInnerHTML={{ __html: text }} />\n ) : (\n text\n )}\n </div>\n \n <div className={styles.gallery}>\n <div className={styles.artisticGrid}>\n {visibleImages.map((image, index) => (\n <motion.div \n layout\n key={image.src} \n className={`${styles.imageWrapper} ${styles[`artistic${index + 1}`]} ${isVisible ? styles.visible : ''}`}\n style={{ transitionProperty: 'opacity, box-shadow' }}\n transition={{\n layout: { type: \"spring\", stiffness: 80, damping: 20 }\n }}\n >\n <Image\n src={image.src}\n alt={image.alt}\n fill\n className={styles.previewImage}\n sizes=\"(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw\"\n />\n </motion.div>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\nexport default XMicroGalleryText;\n",".container {\n display: flex;\n flex-direction: column;\n gap: 2rem;\n width: 100%;\n align-items: center;\n margin: 2rem 0;\n}\n\n@media (min-width: 1024px) {\n .container {\n flex-direction: row;\n align-items: center;\n gap: 4rem;\n }\n \n .reverse {\n flex-direction: row-reverse;\n }\n}\n\n.textContent {\n flex: 1;\n opacity: 0;\n transform: translateY(30px);\n transition: opacity 0.8s ease-out, transform 0.8s ease-out;\n color: var(--foreground);\n}\n\n.textContent.visible {\n opacity: 1;\n transform: translateY(0);\n}\n\n.textLeft {\n text-align: left;\n}\n\n.textRight {\n text-align: right;\n}\n\n.textCenter {\n text-align: center;\n}\n\n.textContent p,\n.textContent div,\n.textContent span,\n.textContent em,\n.textContent strong,\n.textContent a {\n text-align: inherit;\n max-width: none;\n margin-left: unset;\n margin-right: unset;\n}\n\n.gallery {\n flex: 1.5;\n width: 100%;\n}\n\n.artisticGrid {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: 380px 220px;\n gap: 1rem;\n}\n\n.imageWrapper {\n position: relative;\n overflow: hidden;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n border-radius: 20px;\n opacity: 0;\n transform: translateY(50px) scale(0.95);\n transition: opacity 0.6s ease-out, transform 0.6s ease-out, box-shadow 0.3s ease;\n}\n\n.imageWrapper.visible {\n opacity: 1;\n transform: translateY(0) scale(1);\n}\n\n.imageWrapper:hover {\n transform: translateY(-5px);\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);\n}\n\n.previewImage {\n object-fit: cover;\n}\n\n.artisticGrid .artistic1 .previewImage {\n object-position: center top;\n transform: translateY(0);\n}\n\n.artistic1 {\n grid-column: 1 / 4;\n grid-row: 1 / 2;\n transition-delay: 0.2s;\n}\n\n.artistic2 {\n grid-column: 1 / 2;\n grid-row: 2 / 3;\n transition-delay: 0.3s;\n}\n\n.artistic3 {\n grid-column: 2 / 4;\n grid-row: 2 / 3;\n transition-delay: 0.4s;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .artisticGrid {\n grid-template-columns: 1fr;\n grid-template-rows: 240px 180px 180px;\n }\n \n .artistic1,\n .artistic2,\n .artistic3 {\n grid-column: 1 / 2;\n }\n \n .artistic1 {\n grid-row: 1 / 2;\n }\n \n .artistic2 {\n grid-row: 2 / 3;\n }\n \n .artistic3 {\n grid-row: 3 / 4;\n }\n}\n\n@media (max-width: 480px) {\n .artisticGrid {\n grid-template-rows: 200px 140px 140px;\n }\n}\n","\"use client\";\nimport React, { useEffect, useRef } from 'react';\nimport Image from 'next/image';\nimport styles from './XStaticGallery.module.css';\n\nexport interface XStaticGalleryImage {\n src: string;\n alt: string;\n}\n\nexport interface XStaticGalleryProps {\n images: XStaticGalleryImage[];\n columns?: 1 | 2 | 3 | 4 | 5;\n title?: string;\n}\n\nconst COLUMN_CLASSES: Record<number, string> = {\n 1: styles.cols1,\n 2: styles.cols2,\n 3: styles.cols3,\n 4: styles.cols4,\n 5: styles.cols5,\n};\n\nexport default function XStaticGallery({ images, columns = 4, title }: XStaticGalleryProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n entry.target.classList.add(styles.visible);\n }\n });\n },\n {\n threshold: 0.1,\n rootMargin: '0px 0px -50px 0px',\n }\n );\n\n const items = containerRef.current?.querySelectorAll(`.${styles.masonryItem}`);\n items?.forEach((el) => observer.observe(el));\n\n return () => observer.disconnect();\n }, []);\n\n const colClass = COLUMN_CLASSES[columns] || COLUMN_CLASSES[4];\n\n return (\n <div ref={containerRef} className={styles.galleryContainer}>\n {title && <h2 className={styles.galleryTitle}>{title}</h2>}\n\n <div className={`${styles.masonryGrid} ${colClass}`}>\n {images.map((image, index) => (\n <div key={index} className={styles.masonryItem}>\n <div className={styles.imageContainer}>\n <Image\n src={image.src}\n alt={image.alt}\n width={600}\n height={600}\n className={styles.galleryImage}\n loading=\"lazy\"\n sizes=\"(max-width: 640px) 100vw, (max-width: 768px) 50vw, (max-width: 1280px) 33vw, 25vw\"\n />\n <div className={styles.imageOverlay} />\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n",".galleryContainer {\n width: 100%;\n max-width: 80rem;\n margin: 0 auto;\n padding: 1rem 1rem 3rem;\n}\n\n.galleryTitle {\n font-size: 1.875rem;\n text-align: right;\n color: var(--primary);\n margin-bottom: 3rem;\n opacity: 0.8;\n}\n\n/* Masonry via CSS columns */\n.masonryGrid {\n gap: 1rem;\n}\n\n.masonryItem {\n break-inside: avoid;\n position: relative;\n border-radius: 1rem;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n margin-bottom: 1rem;\n opacity: 0;\n transform: translateY(20px);\n transition: opacity 0.5s ease-out, transform 0.5s ease-out, box-shadow 0.3s ease;\n}\n\n.masonryItem.visible {\n opacity: 1;\n transform: translateY(0);\n}\n\n.masonryItem:hover {\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);\n}\n\n.imageContainer {\n position: relative;\n width: 100%;\n overflow: hidden;\n border-radius: 1rem;\n}\n\n.galleryImage {\n width: 100%;\n height: auto;\n object-fit: cover;\n display: block;\n transition: transform 0.5s ease-out;\n}\n\n.masonryItem:hover .galleryImage {\n transform: scale(1.05);\n}\n\n.imageOverlay {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0);\n transition: background 0.3s ease;\n pointer-events: none;\n}\n\n.masonryItem:hover .imageOverlay {\n background: rgba(0, 0, 0, 0.1);\n}\n\n/* Column count via CSS custom property */\n.cols1 { columns: 1; }\n.cols2 { columns: 2; }\n.cols3 { columns: 3; }\n.cols4 { columns: 4; }\n.cols5 { columns: 5; }\n\n/* Responsive overrides */\n@media (max-width: 1280px) {\n .cols4, .cols5 { columns: 3; }\n}\n\n@media (max-width: 768px) {\n .cols3, .cols4, .cols5 { columns: 2; }\n}\n\n@media (max-width: 640px) {\n .cols2, .cols3, .cols4, .cols5 { columns: 1; }\n}\n"],"mappings":"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","names":["XMicroGalleryText_default","React","Image","XMicroGalleryText_default","import_react","import_image","import_jsx_runtime","Image"]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/gallery/index.ts", "../../../src/components/gallery/xmicrogallerytext/XMicroGalleryText.tsx", "../../../src/components/gallery/xmicrogallerytext/XMicroGalleryText.module.css", "../../../src/components/gallery/xstaticgallery/XStaticGallery.tsx", "../../../src/components/gallery/xstaticgallery/XStaticGallery.module.css"],
4
+ "sourcesContent": ["export { XMicroGalleryText } from \"./xmicrogallerytext\";\nexport { XStaticGallery } from \"./xstaticgallery\";\nexport type { XMicroGalleryTextProps, XMicroGalleryImage } from \"./xmicrogallerytext\";\nexport type { XStaticGalleryProps, XStaticGalleryImage } from \"./xstaticgallery\";\n", "import React, { useEffect, useRef } from 'react';\nimport Image from 'next/image';\nimport { motion } from 'framer-motion';\nimport styles from './XMicroGalleryText.module.css';\n\nexport interface XMicroGalleryImage {\n src: string;\n alt: string;\n}\n\nexport interface XMicroGalleryTextProps {\n images: XMicroGalleryImage[];\n text: React.ReactNode;\n textPosition?: 'left' | 'right';\n textAlign?: 'left' | 'right' | 'center';\n autoShuffle?: boolean;\n shuffleInterval?: number;\n}\n\nconst DISPLAY_COUNT = 3;\n\nconst XMicroGalleryText: React.FC<XMicroGalleryTextProps> = ({ \n images, \n text, \n textPosition = 'left',\n textAlign = 'left',\n autoShuffle = false,\n shuffleInterval = 5000\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [startIndex, setStartIndex] = React.useState(0);\n\n const visibleImages = React.useMemo(() => {\n const result: XMicroGalleryImage[] = [];\n for (let i = 0; i < DISPLAY_COUNT; i++) {\n result.push(images[(startIndex + i) % images.length]);\n }\n return result;\n }, [images, startIndex]);\n\n React.useEffect(() => {\n if (!autoShuffle || images.length <= DISPLAY_COUNT) return;\n\n const intervalId = setInterval(() => {\n setStartIndex((prev) => (prev + 1) % images.length);\n }, shuffleInterval);\n\n return () => clearInterval(intervalId);\n }, [autoShuffle, shuffleInterval, images.length]);\n\n const [isVisible, setIsVisible] = React.useState(false);\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setIsVisible(true);\n observer.disconnect();\n }\n },\n {\n threshold: 0.1,\n rootMargin: '0px 0px -50px 0px'\n }\n );\n\n if (containerRef.current) {\n observer.observe(containerRef.current);\n }\n\n return () => observer.disconnect();\n }, []);\n\n const isTextRight = textPosition === 'right';\n\n const alignClass = {\n left: styles.textLeft,\n right: styles.textRight,\n center: styles.textCenter,\n }[textAlign];\n\n return (\n <div ref={containerRef} className={`${styles.container} ${isTextRight ? styles.reverse : ''}`}>\n <div className={`${styles.textContent} ${alignClass} ${isVisible ? styles.visible : ''}`}>\n {typeof text === 'string' ? (\n <div dangerouslySetInnerHTML={{ __html: text }} />\n ) : (\n text\n )}\n </div>\n \n <div className={styles.gallery}>\n <div className={styles.artisticGrid}>\n {visibleImages.map((image, index) => (\n <motion.div \n layout\n key={image.src} \n className={`${styles.imageWrapper} ${styles[`artistic${index + 1}`]} ${isVisible ? styles.visible : ''}`}\n style={{ transitionProperty: 'opacity, box-shadow' }}\n transition={{\n layout: { type: \"spring\", stiffness: 80, damping: 20 }\n }}\n >\n <Image\n src={image.src}\n alt={image.alt}\n fill\n className={styles.previewImage}\n sizes=\"(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw\"\n />\n </motion.div>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\nexport default XMicroGalleryText;\n", ".container {\n display: flex;\n flex-direction: column;\n gap: 2rem;\n width: 100%;\n align-items: center;\n margin: 2rem 0;\n}\n\n@media (min-width: 1024px) {\n .container {\n flex-direction: row;\n align-items: center;\n gap: 4rem;\n }\n \n .reverse {\n flex-direction: row-reverse;\n }\n}\n\n.textContent {\n flex: 1;\n opacity: 0;\n transform: translateY(30px);\n transition: opacity 0.8s ease-out, transform 0.8s ease-out;\n color: var(--foreground);\n}\n\n.textContent.visible {\n opacity: 1;\n transform: translateY(0);\n}\n\n.textLeft {\n text-align: left;\n}\n\n.textRight {\n text-align: right;\n}\n\n.textCenter {\n text-align: center;\n}\n\n.textContent p,\n.textContent div,\n.textContent span,\n.textContent em,\n.textContent strong,\n.textContent a {\n text-align: inherit;\n max-width: none;\n margin-left: unset;\n margin-right: unset;\n}\n\n.gallery {\n flex: 1.5;\n width: 100%;\n}\n\n.artisticGrid {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: 380px 220px;\n gap: 1rem;\n}\n\n.imageWrapper {\n position: relative;\n overflow: hidden;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n border-radius: 20px;\n opacity: 0;\n transform: translateY(50px) scale(0.95);\n transition: opacity 0.6s ease-out, transform 0.6s ease-out, box-shadow 0.3s ease;\n}\n\n.imageWrapper.visible {\n opacity: 1;\n transform: translateY(0) scale(1);\n}\n\n.imageWrapper:hover {\n transform: translateY(-5px);\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);\n}\n\n.previewImage {\n object-fit: cover;\n}\n\n.artisticGrid .artistic1 .previewImage {\n object-position: center top;\n transform: translateY(0);\n}\n\n.artistic1 {\n grid-column: 1 / 4;\n grid-row: 1 / 2;\n transition-delay: 0.2s;\n}\n\n.artistic2 {\n grid-column: 1 / 2;\n grid-row: 2 / 3;\n transition-delay: 0.3s;\n}\n\n.artistic3 {\n grid-column: 2 / 4;\n grid-row: 2 / 3;\n transition-delay: 0.4s;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .artisticGrid {\n grid-template-columns: 1fr;\n grid-template-rows: 240px 180px 180px;\n }\n \n .artistic1,\n .artistic2,\n .artistic3 {\n grid-column: 1 / 2;\n }\n \n .artistic1 {\n grid-row: 1 / 2;\n }\n \n .artistic2 {\n grid-row: 2 / 3;\n }\n \n .artistic3 {\n grid-row: 3 / 4;\n }\n}\n\n@media (max-width: 480px) {\n .artisticGrid {\n grid-template-rows: 200px 140px 140px;\n }\n}\n", "\"use client\";\nimport React, { useEffect, useRef } from 'react';\nimport Image from 'next/image';\nimport styles from './XStaticGallery.module.css';\n\nexport interface XStaticGalleryImage {\n src: string;\n alt: string;\n}\n\nexport interface XStaticGalleryProps {\n images: XStaticGalleryImage[];\n columns?: 1 | 2 | 3 | 4 | 5;\n title?: string;\n}\n\nconst COLUMN_CLASSES: Record<number, string> = {\n 1: styles.cols1,\n 2: styles.cols2,\n 3: styles.cols3,\n 4: styles.cols4,\n 5: styles.cols5,\n};\n\nexport default function XStaticGallery({ images, columns = 4, title }: XStaticGalleryProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n entry.target.classList.add(styles.visible);\n }\n });\n },\n {\n threshold: 0.1,\n rootMargin: '0px 0px -50px 0px',\n }\n );\n\n const items = containerRef.current?.querySelectorAll(`.${styles.masonryItem}`);\n items?.forEach((el) => observer.observe(el));\n\n return () => observer.disconnect();\n }, []);\n\n const colClass = COLUMN_CLASSES[columns] || COLUMN_CLASSES[4];\n\n return (\n <div ref={containerRef} className={styles.galleryContainer}>\n {title && <h2 className={styles.galleryTitle}>{title}</h2>}\n\n <div className={`${styles.masonryGrid} ${colClass}`}>\n {images.map((image, index) => (\n <div key={index} className={styles.masonryItem}>\n <div className={styles.imageContainer}>\n <Image\n src={image.src}\n alt={image.alt}\n width={600}\n height={600}\n className={styles.galleryImage}\n loading=\"lazy\"\n sizes=\"(max-width: 640px) 100vw, (max-width: 768px) 50vw, (max-width: 1280px) 33vw, 25vw\"\n />\n <div className={styles.imageOverlay} />\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n", ".galleryContainer {\n width: 100%;\n max-width: 80rem;\n margin: 0 auto;\n padding: 1rem 1rem 3rem;\n}\n\n.galleryTitle {\n font-size: 1.875rem;\n text-align: right;\n color: var(--primary);\n margin-bottom: 3rem;\n opacity: 0.8;\n}\n\n/* Masonry via CSS columns */\n.masonryGrid {\n gap: 1rem;\n}\n\n.masonryItem {\n break-inside: avoid;\n position: relative;\n border-radius: 1rem;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n margin-bottom: 1rem;\n opacity: 0;\n transform: translateY(20px);\n transition: opacity 0.5s ease-out, transform 0.5s ease-out, box-shadow 0.3s ease;\n}\n\n.masonryItem.visible {\n opacity: 1;\n transform: translateY(0);\n}\n\n.masonryItem:hover {\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);\n}\n\n.imageContainer {\n position: relative;\n width: 100%;\n overflow: hidden;\n border-radius: 1rem;\n}\n\n.galleryImage {\n width: 100%;\n height: auto;\n object-fit: cover;\n display: block;\n transition: transform 0.5s ease-out;\n}\n\n.masonryItem:hover .galleryImage {\n transform: scale(1.05);\n}\n\n.imageOverlay {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0);\n transition: background 0.3s ease;\n pointer-events: none;\n}\n\n.masonryItem:hover .imageOverlay {\n background: rgba(0, 0, 0, 0.1);\n}\n\n/* Column count via CSS custom property */\n.cols1 { columns: 1; }\n.cols2 { columns: 2; }\n.cols3 { columns: 3; }\n.cols4 { columns: 4; }\n.cols5 { columns: 5; }\n\n/* Responsive overrides */\n@media (max-width: 1280px) {\n .cols4, .cols5 { columns: 3; }\n}\n\n@media (max-width: 768px) {\n .cols3, .cols4, .cols5 { columns: 2; }\n}\n\n@media (max-width: 640px) {\n .cols2, .cols3, .cols4, .cols5 { columns: 1; }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,2BAAAA;AAAA,EAAA;AAAA;AAAA;;;ACAA,mBAAyC;AACzC,mBAAkB;AAClB,2BAAuB;;;ACFvB;AAAA,EAAC,WAAAC;AAAA,EAgBE,SAAAC;AAAA,EAKF,aAAAC;AAAA,EAQY,SAAAC;AAAA,EAKZ,UAAAC;AAAA,EAIA,WAAAC;AAAA,EAIA,YAAAC;AAAA,EAgBA,SAAAC;AAAA,EAKA,cAAAC;AAAA,EAOA,cAAAC;AAAA,EAoBA,cAAAC;AAAA,EAIc,WAAAC;AAAA,EAWd,WAAAC;AAAA,EAMA,WAAAC;AAAA;;;AD7BG;AA/DJ,IAAM,gBAAgB;AAEtB,IAAM,oBAAsD,CAAC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,kBAAkB;AACpB,MAAM;AACJ,QAAM,mBAAe,qBAAuB,IAAI;AAChD,QAAM,CAAC,YAAY,aAAa,IAAI,aAAAC,QAAM,SAAS,CAAC;AAEpD,QAAM,gBAAgB,aAAAA,QAAM,QAAQ,MAAM;AACxC,UAAM,SAA+B,CAAC;AACtC,aAAS,IAAI,GAAG,IAAI,eAAe,KAAK;AACtC,aAAO,KAAK,QAAQ,aAAa,KAAK,OAAO,MAAM,CAAC;AAAA,IACtD;AACA,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,UAAU,CAAC;AAEvB,eAAAA,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,eAAe,OAAO,UAAU,cAAe;AAEpD,UAAM,aAAa,YAAY,MAAM;AACnC,oBAAc,CAAC,UAAU,OAAO,KAAK,OAAO,MAAM;AAAA,IACpD,GAAG,eAAe;AAElB,WAAO,MAAM,cAAc,UAAU;AAAA,EACvC,GAAG,CAAC,aAAa,iBAAiB,OAAO,MAAM,CAAC;AAEhD,QAAM,CAAC,WAAW,YAAY,IAAI,aAAAA,QAAM,SAAS,KAAK;AAEtD,8BAAU,MAAM;AACd,UAAM,WAAW,IAAI;AAAA,MACnB,CAAC,CAAC,KAAK,MAAM;AACX,YAAI,MAAM,gBAAgB;AACxB,uBAAa,IAAI;AACjB,mBAAS,WAAW;AAAA,QACtB;AAAA,MACF;AAAA,MACA;AAAA,QACE,WAAW;AAAA,QACX,YAAY;AAAA,MACd;AAAA,IACF;AAEA,QAAI,aAAa,SAAS;AACxB,eAAS,QAAQ,aAAa,OAAO;AAAA,IACvC;AAEA,WAAO,MAAM,SAAS,WAAW;AAAA,EACnC,GAAG,CAAC,CAAC;AAEL,QAAM,cAAc,iBAAiB;AAErC,QAAM,aAAa;AAAA,IACjB,MAAM,0BAAO;AAAA,IACb,OAAO,0BAAO;AAAA,IACd,QAAQ,0BAAO;AAAA,EACjB,EAAE,SAAS;AAEX,SACE,6CAAC,SAAI,KAAK,cAAc,WAAW,GAAG,0BAAO,SAAS,IAAI,cAAc,0BAAO,UAAU,EAAE,IACzF;AAAA,gDAAC,SAAI,WAAW,GAAG,0BAAO,WAAW,IAAI,UAAU,IAAI,YAAY,0BAAO,UAAU,EAAE,IACnF,iBAAO,SAAS,WACf,4CAAC,SAAI,yBAAyB,EAAE,QAAQ,KAAK,GAAG,IAEhD,MAEJ;AAAA,IAEA,4CAAC,SAAI,WAAW,0BAAO,SACrB,sDAAC,SAAI,WAAW,0BAAO,cACpB,wBAAc,IAAI,CAAC,OAAO,UACzB;AAAA,MAAC,4BAAO;AAAA,MAAP;AAAA,QACC,QAAM;AAAA,QAEN,WAAW,GAAG,0BAAO,YAAY,IAAI,0BAAO,WAAW,QAAQ,CAAC,EAAE,CAAC,IAAI,YAAY,0BAAO,UAAU,EAAE;AAAA,QACtG,OAAO,EAAE,oBAAoB,sBAAsB;AAAA,QACnD,YAAY;AAAA,UACV,QAAQ,EAAE,MAAM,UAAU,WAAW,IAAI,SAAS,GAAG;AAAA,QACvD;AAAA,QAEA;AAAA,UAAC,aAAAC;AAAA,UAAA;AAAA,YACC,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,YACX,MAAI;AAAA,YACJ,WAAW,0BAAO;AAAA,YAClB,OAAM;AAAA;AAAA,QACR;AAAA;AAAA,MAbK,MAAM;AAAA,IAcb,CACD,GACH,GACF;AAAA,KACF;AAEJ;AAEA,IAAOC,6BAAQ;;;AErHf,IAAAC,gBAAyC;AACzC,IAAAC,gBAAkB;;;ACFlB;AAAA,EAAC,kBAAAC;AAAA,EAOA,cAAAC;AAAA,EASA,aAAAC;AAAA,EAIA,aAAAC;AAAA,EAYY,SAAAC;AAAA,EASZ,gBAAAC;AAAA,EAOA,cAAAC;AAAA,EAYA,cAAAC;AAAA,EAaA,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC;AAAA;;;ADzBe,IAAAC,sBAAA;AApChB,IAAM,iBAAyC;AAAA,EAC7C,GAAG,uBAAO;AAAA,EACV,GAAG,uBAAO;AAAA,EACV,GAAG,uBAAO;AAAA,EACV,GAAG,uBAAO;AAAA,EACV,GAAG,uBAAO;AACZ;AAEe,SAAR,eAAgC,EAAE,QAAQ,UAAU,GAAG,MAAM,GAAwB;AAC1F,QAAM,mBAAe,sBAAuB,IAAI;AAEhD,+BAAU,MAAM;AACd,UAAM,WAAW,IAAI;AAAA,MACnB,CAAC,YAAY;AACX,gBAAQ,QAAQ,CAAC,UAAU;AACzB,cAAI,MAAM,gBAAgB;AACxB,kBAAM,OAAO,UAAU,IAAI,uBAAO,OAAO;AAAA,UAC3C;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA;AAAA,QACE,WAAW;AAAA,QACX,YAAY;AAAA,MACd;AAAA,IACF;AAEA,UAAM,QAAQ,aAAa,SAAS,iBAAiB,IAAI,uBAAO,WAAW,EAAE;AAC7E,WAAO,QAAQ,CAAC,OAAO,SAAS,QAAQ,EAAE,CAAC;AAE3C,WAAO,MAAM,SAAS,WAAW;AAAA,EACnC,GAAG,CAAC,CAAC;AAEL,QAAM,WAAW,eAAe,OAAO,KAAK,eAAe,CAAC;AAE5D,SACE,8CAAC,SAAI,KAAK,cAAc,WAAW,uBAAO,kBACvC;AAAA,aAAS,6CAAC,QAAG,WAAW,uBAAO,cAAe,iBAAM;AAAA,IAErD,6CAAC,SAAI,WAAW,GAAG,uBAAO,WAAW,IAAI,QAAQ,IAC9C,iBAAO,IAAI,CAAC,OAAO,UAClB,6CAAC,SAAgB,WAAW,uBAAO,aACjC,wDAAC,SAAI,WAAW,uBAAO,gBACrB;AAAA;AAAA,QAAC,cAAAC;AAAA,QAAA;AAAA,UACC,KAAK,MAAM;AAAA,UACX,KAAK,MAAM;AAAA,UACX,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,WAAW,uBAAO;AAAA,UAClB,SAAQ;AAAA,UACR,OAAM;AAAA;AAAA,MACR;AAAA,MACA,6CAAC,SAAI,WAAW,uBAAO,cAAc;AAAA,OACvC,KAZQ,KAaV,CACD,GACH;AAAA,KACF;AAEJ;",
6
+ "names": ["XMicroGalleryText_default", "container", "reverse", "textContent", "visible", "textLeft", "textRight", "textCenter", "gallery", "artisticGrid", "imageWrapper", "previewImage", "artistic1", "artistic2", "artistic3", "React", "Image", "XMicroGalleryText_default", "import_react", "import_image", "galleryContainer", "galleryTitle", "masonryGrid", "masonryItem", "visible", "imageContainer", "galleryImage", "imageOverlay", "cols1", "cols2", "cols3", "cols4", "cols5", "import_jsx_runtime", "Image"]
7
+ }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  XMicroGalleryText_default,
3
3
  XStaticGallery
4
- } from "../../chunk-2OAXRRVQ.mjs";
4
+ } from "../../chunk-MYFPSHSQ.mjs";
5
5
  export {
6
6
  XMicroGalleryText_default as XMicroGalleryText,
7
7
  XStaticGallery
8
8
  };
9
- //# sourceMappingURL=index.mjs.map
9
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1,7 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export interface XMicroGalleryImage {
3
+ src: string;
4
+ alt: string;
5
+ }
6
+ export interface XMicroGalleryTextProps {
7
+ images: XMicroGalleryImage[];
8
+ text: React.ReactNode;
9
+ textPosition?: 'left' | 'right';
10
+ textAlign?: 'left' | 'right' | 'center';
11
+ autoShuffle?: boolean;
12
+ shuffleInterval?: number;
13
+ }
14
+ declare const XMicroGalleryText: React.FC<XMicroGalleryTextProps>;
15
+ export default XMicroGalleryText;
@@ -0,0 +1,3 @@
1
+ export { default as XMicroGalleryText } from "./XMicroGalleryText";
2
+ export { default } from "./XMicroGalleryText";
3
+ export type { XMicroGalleryTextProps, XMicroGalleryImage } from "./XMicroGalleryText";
@@ -0,0 +1,10 @@
1
+ export interface XStaticGalleryImage {
2
+ src: string;
3
+ alt: string;
4
+ }
5
+ export interface XStaticGalleryProps {
6
+ images: XStaticGalleryImage[];
7
+ columns?: 1 | 2 | 3 | 4 | 5;
8
+ title?: string;
9
+ }
10
+ export default function XStaticGallery({ images, columns, title }: XStaticGalleryProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export { default as XStaticGallery } from "./XStaticGallery";
2
+ export { default } from "./XStaticGallery";
3
+ export type { XStaticGalleryProps, XStaticGalleryImage } from "./XStaticGallery";