@onetype/framework 2.0.53 → 2.0.55

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 (150) hide show
  1. package/addons/float/popup/css/popup.css +2 -2
  2. package/addons/render/directives/front/functions/process.js +3 -1
  3. package/addons/render/directives/front/items/self/160-slot.js +9 -1
  4. package/addons/render/editor/addon.js +13 -0
  5. package/addons/render/editor/functions/block/add.js +57 -0
  6. package/addons/render/editor/functions/block/delete.js +32 -0
  7. package/addons/render/editor/functions/block/find.js +30 -0
  8. package/addons/render/editor/functions/render/block.js +114 -0
  9. package/addons/render/editor/functions/render/blocks.js +31 -0
  10. package/addons/render/editor/items/elements/editor.js +69 -0
  11. package/addons/render/editor/items/self/paragraph.js +21 -0
  12. package/addons/render/editor/styles/editor.css +252 -0
  13. package/addons/render/elements/front/functions/types/colors/badge.js +19 -0
  14. package/addons/render/elements/front/functions/types/colors/status.js +24 -0
  15. package/addons/render/elements/front/functions/types/escape.js +8 -0
  16. package/addons/render/elements/front/functions/types/format/currency.js +16 -0
  17. package/addons/render/elements/front/functions/types/format/date.js +16 -0
  18. package/addons/render/elements/front/functions/types/format/number.js +24 -0
  19. package/addons/render/elements/front/functions/types/format/timeago.js +43 -0
  20. package/addons/render/elements/front/functions/types/render/avatar.js +10 -0
  21. package/addons/render/elements/front/functions/types/render/badge.js +17 -0
  22. package/addons/render/elements/front/functions/types/render/boolean.js +8 -0
  23. package/addons/render/elements/front/functions/types/render/chip.js +6 -0
  24. package/addons/render/elements/front/functions/types/render/currency.js +7 -0
  25. package/addons/render/elements/front/functions/types/render/date.js +6 -0
  26. package/addons/render/elements/front/functions/types/render/description.js +12 -0
  27. package/addons/render/elements/front/functions/types/render/group.js +11 -0
  28. package/addons/render/elements/front/functions/types/render/icon.js +8 -0
  29. package/addons/render/elements/front/functions/types/render/image.js +9 -0
  30. package/addons/render/elements/front/functions/types/render/link.js +8 -0
  31. package/addons/render/elements/front/functions/types/render/media.js +16 -0
  32. package/addons/render/elements/front/functions/types/render/metric.js +13 -0
  33. package/addons/render/elements/front/functions/types/render/number.js +6 -0
  34. package/addons/render/elements/front/functions/types/render/progress.js +13 -0
  35. package/addons/render/elements/front/functions/types/render/status.js +12 -0
  36. package/addons/render/elements/front/functions/types/render/tag.js +6 -0
  37. package/addons/render/elements/front/functions/types/render/tags.js +11 -0
  38. package/addons/render/elements/front/functions/types/render/text.js +8 -0
  39. package/addons/render/elements/front/functions/types/render/timeago.js +6 -0
  40. package/addons/render/elements/front/functions/types/render.js +16 -0
  41. package/addons/render/elements/front/items/directives/element.js +8 -3
  42. package/addons/render/elements/front/items/self/cards/info/info.css +499 -0
  43. package/addons/render/elements/front/items/self/cards/info/info.js +224 -0
  44. package/addons/render/elements/front/items/self/cards/item/item.css +614 -0
  45. package/addons/render/elements/front/items/self/cards/item/item.js +200 -0
  46. package/addons/render/elements/front/items/self/cards/pricing/pricing.css +318 -46
  47. package/addons/render/elements/front/items/self/cards/pricing/pricing.js +81 -30
  48. package/addons/render/elements/front/items/self/cards/profile/profile.css +446 -0
  49. package/addons/render/elements/front/items/self/cards/profile/profile.js +186 -0
  50. package/addons/render/elements/front/items/self/cards/share/share.css +445 -0
  51. package/addons/render/elements/front/items/self/cards/share/share.js +316 -0
  52. package/addons/render/elements/front/items/self/cards/stat/stat.css +356 -0
  53. package/addons/render/elements/front/items/self/cards/stat/stat.js +146 -0
  54. package/addons/render/elements/front/items/self/charts/bar/bar.css +263 -0
  55. package/addons/render/elements/front/items/self/charts/bar/bar.js +156 -0
  56. package/addons/render/elements/front/items/self/charts/donut/donut.css +222 -0
  57. package/addons/render/elements/front/items/self/charts/donut/donut.js +164 -0
  58. package/addons/render/elements/front/items/self/charts/line/line.css +229 -0
  59. package/addons/render/elements/front/items/self/charts/line/line.js +249 -0
  60. package/addons/render/elements/front/items/self/charts/sparkline/sparkline.css +102 -0
  61. package/addons/render/elements/front/items/self/charts/sparkline/sparkline.js +164 -0
  62. package/addons/render/elements/front/items/self/core/builder/builder.css +71 -116
  63. package/addons/render/elements/front/items/self/core/builder/builder.js +212 -127
  64. package/addons/render/elements/front/items/self/core/repeater/repeater.css +338 -71
  65. package/addons/render/elements/front/items/self/core/repeater/repeater.js +191 -44
  66. package/addons/render/elements/front/items/self/data/filters/filters.css +541 -0
  67. package/addons/render/elements/front/items/self/data/filters/filters.js +504 -0
  68. package/addons/render/elements/front/items/self/data/table/table.css +588 -0
  69. package/addons/render/elements/front/items/self/data/table/table.js +589 -0
  70. package/addons/render/elements/front/items/self/form/button/button.css +430 -103
  71. package/addons/render/elements/front/items/self/form/button/button.js +109 -101
  72. package/addons/render/elements/front/items/self/form/checkbox/checkbox.css +356 -39
  73. package/addons/render/elements/front/items/self/form/checkbox/checkbox.js +109 -75
  74. package/addons/render/elements/front/items/self/form/color/color.css +255 -61
  75. package/addons/render/elements/front/items/self/form/color/color.js +135 -41
  76. package/addons/render/elements/front/items/self/form/date/date.css +289 -38
  77. package/addons/render/elements/front/items/self/form/date/date.js +108 -24
  78. package/addons/render/elements/front/items/self/form/editor/editor.css +447 -0
  79. package/addons/render/elements/front/items/self/form/editor/editor.js +794 -0
  80. package/addons/render/elements/front/items/self/form/field/field.css +160 -29
  81. package/addons/render/elements/front/items/self/form/field/field.js +36 -16
  82. package/addons/render/elements/front/items/self/form/input/input.css +272 -32
  83. package/addons/render/elements/front/items/self/form/input/input.js +324 -124
  84. package/addons/render/elements/front/items/self/form/radio/radio.css +310 -45
  85. package/addons/render/elements/front/items/self/form/radio/radio.js +99 -80
  86. package/addons/render/elements/front/items/self/form/rating/rating.css +234 -57
  87. package/addons/render/elements/front/items/self/form/rating/rating.js +216 -86
  88. package/addons/render/elements/front/items/self/form/section/section.css +247 -32
  89. package/addons/render/elements/front/items/self/form/section/section.js +53 -16
  90. package/addons/render/elements/front/items/self/form/select/select.css +362 -64
  91. package/addons/render/elements/front/items/self/form/select/select.js +156 -30
  92. package/addons/render/elements/front/items/self/form/slider/slider.css +331 -123
  93. package/addons/render/elements/front/items/self/form/slider/slider.js +124 -26
  94. package/addons/render/elements/front/items/self/form/tags/tags.css +328 -53
  95. package/addons/render/elements/front/items/self/form/tags/tags.js +155 -28
  96. package/addons/render/elements/front/items/self/form/textarea/textarea.css +128 -27
  97. package/addons/render/elements/front/items/self/form/textarea/textarea.js +172 -113
  98. package/addons/render/elements/front/items/self/form/toggle/toggle.css +239 -39
  99. package/addons/render/elements/front/items/self/form/toggle/toggle.js +32 -17
  100. package/addons/render/elements/front/items/self/form/transfer/transfer.css +377 -0
  101. package/addons/render/elements/front/items/self/form/transfer/transfer.js +453 -0
  102. package/addons/render/elements/front/items/self/form/upload/upload.css +408 -0
  103. package/addons/render/elements/front/items/self/form/upload/upload.js +469 -0
  104. package/addons/render/elements/front/items/self/global/accordion/accordion.css +377 -0
  105. package/addons/render/elements/front/items/self/global/accordion/accordion.js +135 -0
  106. package/addons/render/elements/front/items/self/global/code/code.css +207 -44
  107. package/addons/render/elements/front/items/self/global/code/code.js +327 -19
  108. package/addons/render/elements/front/items/self/global/gallery/gallery.css +521 -0
  109. package/addons/render/elements/front/items/self/global/gallery/gallery.js +291 -0
  110. package/addons/render/elements/front/items/self/global/heading/heading.css +151 -49
  111. package/addons/render/elements/front/items/self/global/heading/heading.js +30 -15
  112. package/addons/render/elements/front/items/self/global/markdown/markdown.css +284 -135
  113. package/addons/render/elements/front/items/self/global/markdown/markdown.js +35 -5
  114. package/addons/render/elements/front/items/self/global/menu/menu.css +311 -56
  115. package/addons/render/elements/front/items/self/global/menu/menu.js +95 -47
  116. package/addons/render/elements/front/items/self/global/notice/notice.css +263 -23
  117. package/addons/render/elements/front/items/self/global/notice/notice.js +51 -11
  118. package/addons/render/elements/front/items/self/global/parameters/parameters.css +276 -33
  119. package/addons/render/elements/front/items/self/global/parameters/parameters.js +86 -16
  120. package/addons/render/elements/front/items/self/global/tags/tags.css +215 -29
  121. package/addons/render/elements/front/items/self/global/tags/tags.js +91 -17
  122. package/addons/render/elements/front/items/self/navigation/dock/dock.css +221 -0
  123. package/addons/render/elements/front/items/self/navigation/dock/dock.js +134 -0
  124. package/addons/render/elements/front/items/self/navigation/footer/footer.css +356 -0
  125. package/addons/render/elements/front/items/self/navigation/footer/footer.js +219 -0
  126. package/addons/render/elements/front/items/self/navigation/navbar/navbar.css +736 -76
  127. package/addons/render/elements/front/items/self/navigation/navbar/navbar.js +437 -29
  128. package/addons/render/elements/front/items/self/navigation/sidebar/sidebar.css +327 -196
  129. package/addons/render/elements/front/items/self/navigation/sidebar/sidebar.js +115 -62
  130. package/addons/render/elements/front/items/self/navigation/steps/steps.css +345 -0
  131. package/addons/render/elements/front/items/self/navigation/steps/steps.js +113 -0
  132. package/addons/render/elements/front/items/self/navigation/tabs/tabs.css +362 -33
  133. package/addons/render/elements/front/items/self/navigation/tabs/tabs.js +62 -19
  134. package/addons/render/elements/front/items/self/status/code/code.css +83 -12
  135. package/addons/render/elements/front/items/self/status/code/code.js +15 -4
  136. package/addons/render/elements/front/items/self/status/empty/empty.css +95 -15
  137. package/addons/render/elements/front/items/self/status/empty/empty.js +17 -12
  138. package/addons/render/elements/front/items/self/status/error/error.css +99 -14
  139. package/addons/render/elements/front/items/self/status/error/error.js +21 -11
  140. package/addons/render/elements/front/items/self/status/loading/loading.css +85 -14
  141. package/addons/render/elements/front/items/self/status/loading/loading.js +5 -6
  142. package/addons/render/elements/front/styles/types.css +363 -0
  143. package/instructions.txt +28 -0
  144. package/lib/load.js +1 -0
  145. package/lib/styles/reset.css +89 -76
  146. package/package.json +1 -1
  147. package/addons/render/elements/front/items/self/form/editor-markdown/editor-markdown.css +0 -410
  148. package/addons/render/elements/front/items/self/form/editor-markdown/editor-markdown.js +0 -191
  149. package/addons/render/elements/front/items/self/global/faq/faq.css +0 -98
  150. package/addons/render/elements/front/items/self/global/faq/faq.js +0 -56
@@ -0,0 +1,521 @@
1
+ /* Root */
2
+
3
+ .e-ee00abe
4
+ {
5
+ display: block;
6
+ width: 100%;
7
+ }
8
+
9
+ /* Holder */
10
+
11
+ .e-ee00abe > .holder
12
+ {
13
+ position: relative;
14
+ width: 100%;
15
+ overflow: hidden;
16
+ }
17
+
18
+ .e-ee00abe > .holder.rounded
19
+ {
20
+ border-radius: var(--ot-radius-l);
21
+ }
22
+
23
+ /* ===== BENTO LAYOUT ===== */
24
+
25
+ .e-ee00abe > .holder > .bento
26
+ {
27
+ display: grid;
28
+ grid-template-columns: 2fr 1fr;
29
+ height: 480px;
30
+ width: 100%;
31
+ }
32
+
33
+ .e-ee00abe > .holder.compact > .bento
34
+ {
35
+ height: 360px;
36
+ }
37
+
38
+ .e-ee00abe > .holder.tall > .bento
39
+ {
40
+ height: 560px;
41
+ }
42
+
43
+ .e-ee00abe > .holder > .bento > .bento-main
44
+ {
45
+ overflow: hidden;
46
+ cursor: pointer;
47
+ }
48
+
49
+ .e-ee00abe > .holder > .bento > .bento-main > img
50
+ {
51
+ width: 100%;
52
+ height: 100%;
53
+ object-fit: cover;
54
+ transition: filter 0.3s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
55
+ }
56
+
57
+ .e-ee00abe > .holder > .bento > .bento-main:hover > img
58
+ {
59
+ filter: brightness(0.92);
60
+ transform: scale(1.02);
61
+ }
62
+
63
+ .e-ee00abe > .holder > .bento > .bento-side
64
+ {
65
+ display: grid;
66
+ grid-template-columns: 1fr 1fr;
67
+ grid-template-rows: 1fr 1fr;
68
+ }
69
+
70
+ .e-ee00abe > .holder > .bento > .bento-side > .bento-thumb
71
+ {
72
+ overflow: hidden;
73
+ cursor: pointer;
74
+ }
75
+
76
+ .e-ee00abe > .holder > .bento > .bento-side > .bento-thumb > img
77
+ {
78
+ width: 100%;
79
+ height: 100%;
80
+ object-fit: cover;
81
+ transition: filter 0.3s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
82
+ }
83
+
84
+ .e-ee00abe > .holder > .bento > .bento-side > .bento-thumb:hover > img
85
+ {
86
+ filter: brightness(0.88);
87
+ transform: scale(1.03);
88
+ }
89
+
90
+ /* Show all button */
91
+
92
+ .e-ee00abe > .holder > .bento > .show-all
93
+ {
94
+ position: absolute;
95
+ bottom: 18px;
96
+ right: 18px;
97
+ display: inline-flex;
98
+ align-items: center;
99
+ gap: 8px;
100
+ padding: 10px 20px;
101
+ background: #fff;
102
+ border: none;
103
+ border-radius: 100px;
104
+ font-family: var(--ot-font-primary);
105
+ font-size: 12.5px;
106
+ font-weight: 600;
107
+ color: #1a1a1a;
108
+ cursor: pointer;
109
+ box-shadow: 0 6px 24px rgba(20, 20, 30, 0.14);
110
+ transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s cubic-bezier(0.22, 1, 0.36, 1);
111
+ z-index: 1;
112
+ }
113
+
114
+ .e-ee00abe > .holder > .bento > .show-all:hover
115
+ {
116
+ transform: translateY(-2px);
117
+ box-shadow: 0 12px 32px rgba(20, 20, 30, 0.2);
118
+ }
119
+
120
+ .e-ee00abe > .holder > .bento > .show-all > i
121
+ {
122
+ font-size: 16px;
123
+ }
124
+
125
+ /* ===== GRID LAYOUT ===== */
126
+
127
+ .e-ee00abe > .holder > .grid
128
+ {
129
+ display: grid;
130
+ width: 100%;
131
+ }
132
+
133
+ .e-ee00abe > .holder > .grid > .grid-item
134
+ {
135
+ overflow: hidden;
136
+ cursor: pointer;
137
+ border-radius: var(--ot-radius-m);
138
+ }
139
+
140
+ .e-ee00abe > .holder.rounded > .grid > .grid-item
141
+ {
142
+ border-radius: var(--ot-radius-m);
143
+ }
144
+
145
+ .e-ee00abe > .holder > .grid > .grid-item > img
146
+ {
147
+ width: 100%;
148
+ height: 100%;
149
+ object-fit: cover;
150
+ transition: filter 0.3s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
151
+ }
152
+
153
+ .e-ee00abe > .holder > .grid > .grid-item:hover > img
154
+ {
155
+ filter: brightness(0.92);
156
+ transform: scale(1.04);
157
+ }
158
+
159
+ /* ===== CAROUSEL LAYOUT ===== */
160
+
161
+ .e-ee00abe > .holder > .carousel
162
+ {
163
+ display: flex;
164
+ flex-direction: column;
165
+ gap: var(--ot-spacing-s);
166
+ width: 100%;
167
+ }
168
+
169
+ .e-ee00abe > .holder > .carousel > .carousel-stage
170
+ {
171
+ position: relative;
172
+ width: 100%;
173
+ overflow: hidden;
174
+ border-radius: var(--ot-radius-m);
175
+ background: var(--ot-bg-2);
176
+ }
177
+
178
+ .e-ee00abe > .holder > .carousel > .carousel-stage > img
179
+ {
180
+ width: 100%;
181
+ height: 100%;
182
+ object-fit: cover;
183
+ cursor: zoom-in;
184
+ animation: e-ee00abe-fade 0.3s cubic-bezier(0.22, 1, 0.36, 1);
185
+ }
186
+
187
+ @keyframes e-ee00abe-fade
188
+ {
189
+ from { opacity: 0; }
190
+ to { opacity: 1; }
191
+ }
192
+
193
+ .e-ee00abe > .holder > .carousel > .carousel-stage > .carousel-nav
194
+ {
195
+ position: absolute;
196
+ top: 50%;
197
+ transform: translateY(-50%);
198
+ display: inline-flex;
199
+ align-items: center;
200
+ justify-content: center;
201
+ width: 44px;
202
+ height: 44px;
203
+ background: rgba(255, 255, 255, 0.95);
204
+ border: none;
205
+ border-radius: 50%;
206
+ color: #1a1a1a;
207
+ cursor: pointer;
208
+ box-shadow: 0 4px 16px rgba(20, 20, 30, 0.14);
209
+ transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s cubic-bezier(0.22, 1, 0.36, 1);
210
+ z-index: 1;
211
+ }
212
+
213
+ .e-ee00abe > .holder > .carousel > .carousel-stage > .carousel-prev { left: 16px; }
214
+ .e-ee00abe > .holder > .carousel > .carousel-stage > .carousel-next { right: 16px; }
215
+
216
+ .e-ee00abe > .holder > .carousel > .carousel-stage > .carousel-nav:hover
217
+ {
218
+ box-shadow: 0 8px 24px rgba(20, 20, 30, 0.2);
219
+ }
220
+
221
+ .e-ee00abe > .holder > .carousel > .carousel-stage > .carousel-prev:hover { transform: translateY(-50%) translateX(-2px); }
222
+ .e-ee00abe > .holder > .carousel > .carousel-stage > .carousel-next:hover { transform: translateY(-50%) translateX(2px); }
223
+
224
+ .e-ee00abe > .holder > .carousel > .carousel-stage > .carousel-nav > i
225
+ {
226
+ font-size: 22px;
227
+ }
228
+
229
+ .e-ee00abe > .holder > .carousel > .carousel-stage > .carousel-counter
230
+ {
231
+ position: absolute;
232
+ bottom: 16px;
233
+ right: 16px;
234
+ padding: 6px 12px;
235
+ background: rgba(0, 0, 0, 0.6);
236
+ backdrop-filter: blur(8px);
237
+ border-radius: 100px;
238
+ color: #fff;
239
+ font-family: var(--ot-font-primary);
240
+ font-size: 11px;
241
+ font-weight: 700;
242
+ letter-spacing: 0.04em;
243
+ }
244
+
245
+ /* Thumbnails under carousel */
246
+
247
+ .e-ee00abe > .holder > .carousel > .carousel-thumbs
248
+ {
249
+ display: flex;
250
+ gap: var(--ot-spacing-x);
251
+ overflow-x: auto;
252
+ padding: 2px 0;
253
+ scrollbar-width: none;
254
+ }
255
+
256
+ .e-ee00abe > .holder > .carousel > .carousel-thumbs::-webkit-scrollbar
257
+ {
258
+ display: none;
259
+ }
260
+
261
+ .e-ee00abe > .holder > .carousel > .carousel-thumbs > .carousel-thumb
262
+ {
263
+ flex-shrink: 0;
264
+ width: 80px;
265
+ height: 56px;
266
+ padding: 0;
267
+ border: 2px solid transparent;
268
+ border-radius: var(--ot-radius-s);
269
+ background: transparent;
270
+ overflow: hidden;
271
+ cursor: pointer;
272
+ transition: border-color 0.2s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.2s cubic-bezier(0.22, 1, 0.36, 1);
273
+ opacity: 0.65;
274
+ }
275
+
276
+ .e-ee00abe > .holder > .carousel > .carousel-thumbs > .carousel-thumb:hover
277
+ {
278
+ opacity: 1;
279
+ }
280
+
281
+ .e-ee00abe > .holder > .carousel > .carousel-thumbs > .carousel-thumb.active
282
+ {
283
+ opacity: 1;
284
+ border-color: var(--ot-brand);
285
+ }
286
+
287
+ .e-ee00abe > .holder > .carousel > .carousel-thumbs > .carousel-thumb > img
288
+ {
289
+ width: 100%;
290
+ height: 100%;
291
+ object-fit: cover;
292
+ }
293
+
294
+ /* ===== LIGHTBOX (renders inside $ot.modal) ===== */
295
+
296
+ .lightbox-holder
297
+ {
298
+ position: relative;
299
+ display: flex;
300
+ align-items: center;
301
+ justify-content: center;
302
+ width: 100vw;
303
+ height: 100vh;
304
+ padding: 80px 80px 140px;
305
+ box-sizing: border-box;
306
+ }
307
+
308
+ .lightbox-close
309
+ {
310
+ position: absolute;
311
+ top: 20px;
312
+ right: 20px;
313
+ display: inline-flex;
314
+ align-items: center;
315
+ justify-content: center;
316
+ width: 44px;
317
+ height: 44px;
318
+ background: rgba(255, 255, 255, 0.1);
319
+ backdrop-filter: blur(12px);
320
+ border: 1px solid rgba(255, 255, 255, 0.15);
321
+ border-radius: 50%;
322
+ color: #fff;
323
+ cursor: pointer;
324
+ transition: background 0.2s cubic-bezier(0.22, 1, 0.36, 1), transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
325
+ z-index: 10;
326
+ }
327
+
328
+ .lightbox-close:hover
329
+ {
330
+ background: rgba(255, 255, 255, 0.2);
331
+ transform: rotate(90deg);
332
+ }
333
+
334
+ .lightbox-close > i
335
+ {
336
+ font-size: 22px;
337
+ }
338
+
339
+ .lightbox-counter
340
+ {
341
+ position: absolute;
342
+ top: 28px;
343
+ left: 50%;
344
+ transform: translateX(-50%);
345
+ padding: 8px 16px;
346
+ background: rgba(255, 255, 255, 0.1);
347
+ backdrop-filter: blur(12px);
348
+ border: 1px solid rgba(255, 255, 255, 0.15);
349
+ border-radius: 100px;
350
+ color: #fff;
351
+ font-family: var(--ot-font-primary);
352
+ font-size: 12px;
353
+ font-weight: 700;
354
+ letter-spacing: 0.04em;
355
+ z-index: 10;
356
+ }
357
+
358
+ .lightbox-nav
359
+ {
360
+ position: absolute;
361
+ top: 50%;
362
+ transform: translateY(-50%);
363
+ display: inline-flex;
364
+ align-items: center;
365
+ justify-content: center;
366
+ width: 52px;
367
+ height: 52px;
368
+ background: rgba(255, 255, 255, 0.1);
369
+ backdrop-filter: blur(12px);
370
+ border: 1px solid rgba(255, 255, 255, 0.15);
371
+ border-radius: 50%;
372
+ color: #fff;
373
+ cursor: pointer;
374
+ transition: background 0.2s cubic-bezier(0.22, 1, 0.36, 1), transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
375
+ z-index: 10;
376
+ }
377
+
378
+ .lightbox-prev { left: 32px; }
379
+ .lightbox-next { right: 32px; }
380
+
381
+ .lightbox-nav:hover { background: rgba(255, 255, 255, 0.2); }
382
+ .lightbox-prev:hover { transform: translateY(-50%) translateX(-3px); }
383
+ .lightbox-next:hover { transform: translateY(-50%) translateX(3px); }
384
+
385
+ .lightbox-nav > i
386
+ {
387
+ font-size: 26px;
388
+ }
389
+
390
+ .lightbox-stage
391
+ {
392
+ display: flex;
393
+ flex-direction: column;
394
+ align-items: center;
395
+ gap: var(--ot-spacing-m);
396
+ max-width: 100%;
397
+ max-height: 100%;
398
+ }
399
+
400
+ .lightbox-stage > img
401
+ {
402
+ max-width: 100%;
403
+ max-height: calc(100vh - 220px);
404
+ object-fit: contain;
405
+ border-radius: var(--ot-radius-m);
406
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
407
+ animation: e-ee00abe-lightbox-in 0.3s cubic-bezier(0.22, 1, 0.36, 1);
408
+ }
409
+
410
+ @keyframes e-ee00abe-lightbox-in
411
+ {
412
+ from { opacity: 0; transform: scale(0.96); }
413
+ to { opacity: 1; transform: scale(1); }
414
+ }
415
+
416
+ .lightbox-caption
417
+ {
418
+ font-family: var(--ot-font-primary);
419
+ font-size: 13px;
420
+ color: rgba(255, 255, 255, 0.85);
421
+ text-align: center;
422
+ max-width: 600px;
423
+ line-height: 1.5;
424
+ }
425
+
426
+ .lightbox-thumbs
427
+ {
428
+ position: absolute;
429
+ bottom: 28px;
430
+ left: 50%;
431
+ transform: translateX(-50%);
432
+ display: flex;
433
+ gap: 6px;
434
+ padding: 10px 14px;
435
+ background: rgba(255, 255, 255, 0.08);
436
+ backdrop-filter: blur(16px);
437
+ border: 1px solid rgba(255, 255, 255, 0.12);
438
+ border-radius: 14px;
439
+ max-width: calc(100vw - 64px);
440
+ overflow-x: auto;
441
+ scrollbar-width: none;
442
+ z-index: 10;
443
+ }
444
+
445
+ .lightbox-thumbs::-webkit-scrollbar
446
+ {
447
+ display: none;
448
+ }
449
+
450
+ .lightbox-thumbs > .lightbox-thumb
451
+ {
452
+ flex-shrink: 0;
453
+ width: 56px;
454
+ height: 44px;
455
+ padding: 0;
456
+ border: 2px solid transparent;
457
+ border-radius: var(--ot-radius-s);
458
+ background: transparent;
459
+ overflow: hidden;
460
+ cursor: pointer;
461
+ transition: border-color 0.2s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.2s cubic-bezier(0.22, 1, 0.36, 1);
462
+ opacity: 0.55;
463
+ }
464
+
465
+ .lightbox-thumbs > .lightbox-thumb:hover
466
+ {
467
+ opacity: 0.9;
468
+ }
469
+
470
+ .lightbox-thumbs > .lightbox-thumb.active
471
+ {
472
+ opacity: 1;
473
+ border-color: #fff;
474
+ }
475
+
476
+ .lightbox-thumbs > .lightbox-thumb > img
477
+ {
478
+ width: 100%;
479
+ height: 100%;
480
+ object-fit: cover;
481
+ }
482
+
483
+ /* ===== RESPONSIVE ===== */
484
+
485
+ @media (max-width: 767.98px)
486
+ {
487
+ .e-ee00abe > .holder > .bento
488
+ {
489
+ height: 320px;
490
+ }
491
+
492
+ .e-ee00abe > .holder > .bento > .bento-side
493
+ {
494
+ display: none;
495
+ }
496
+
497
+ .e-ee00abe > .holder > .carousel > .carousel-thumbs > .carousel-thumb
498
+ {
499
+ width: 60px;
500
+ height: 42px;
501
+ }
502
+
503
+ .lightbox-holder
504
+ {
505
+ padding: 60px 16px 120px;
506
+ }
507
+
508
+ .lightbox-prev { left: 12px; }
509
+ .lightbox-next { right: 12px; }
510
+
511
+ .lightbox-nav
512
+ {
513
+ width: 40px;
514
+ height: 40px;
515
+ }
516
+
517
+ .lightbox-nav > i
518
+ {
519
+ font-size: 20px;
520
+ }
521
+ }