@shelamkoff/rector 1.0.0 → 1.0.2

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 (94) hide show
  1. package/README.md +25 -23
  2. package/dist/core/clipboard/Clipboard.d.ts +2 -0
  3. package/dist/core/clipboard/Clipboard.js +52 -24
  4. package/dist/core/index.js +195 -194
  5. package/dist/core/locale/en.d.ts +1 -0
  6. package/dist/core/locale/en.js +1 -0
  7. package/dist/core/locale/ru.d.ts +1 -0
  8. package/dist/core/locale/ru.js +1 -0
  9. package/dist/core/themes/light.css +1 -1
  10. package/dist/core/themes/variables.css +72 -10
  11. package/dist/inline-plugins/mention/index.js +1 -2
  12. package/dist/locale/en.d.ts +41 -0
  13. package/dist/locale/ru.d.ts +41 -0
  14. package/dist/plugins/attaches/attaches.css +16 -14
  15. package/dist/plugins/attaches/index.js +997 -921
  16. package/dist/plugins/attaches/locale/en.d.ts +9 -0
  17. package/dist/plugins/attaches/locale/en.js +11 -2
  18. package/dist/plugins/attaches/locale/ru.d.ts +9 -0
  19. package/dist/plugins/attaches/locale/ru.js +11 -2
  20. package/dist/plugins/carousel/carousel.css +213 -49
  21. package/dist/plugins/carousel/index.js +918 -859
  22. package/dist/plugins/carousel/locale/en.d.ts +15 -0
  23. package/dist/plugins/carousel/locale/en.js +18 -3
  24. package/dist/plugins/carousel/locale/ru.d.ts +15 -0
  25. package/dist/plugins/carousel/locale/ru.js +18 -3
  26. package/dist/plugins/checklist/index.js +1 -2
  27. package/dist/plugins/code/index.js +1 -2
  28. package/dist/plugins/columns/index.js +1 -2
  29. package/dist/plugins/delimiter/index.js +1 -2
  30. package/dist/plugins/embed/index.js +1 -2
  31. package/dist/plugins/gallery/gallery.css +6 -1
  32. package/dist/plugins/gallery/index.js +375 -355
  33. package/dist/plugins/gallery/locale/en.d.ts +8 -0
  34. package/dist/plugins/gallery/locale/en.js +11 -3
  35. package/dist/plugins/gallery/locale/ru.d.ts +8 -0
  36. package/dist/plugins/gallery/locale/ru.js +11 -3
  37. package/dist/plugins/gallery/view-empty.d.ts +2 -0
  38. package/dist/plugins/gallery/view-empty.js +21 -15
  39. package/dist/plugins/gallery/view-filled.d.ts +2 -2
  40. package/dist/plugins/gallery/view-filled.js +61 -56
  41. package/dist/plugins/heading/index.js +1 -2
  42. package/dist/plugins/image/image.css +7 -2
  43. package/dist/plugins/image/index.js +365 -346
  44. package/dist/plugins/image/locale/en.d.ts +8 -0
  45. package/dist/plugins/image/locale/en.js +11 -3
  46. package/dist/plugins/image/locale/ru.d.ts +8 -0
  47. package/dist/plugins/image/locale/ru.js +11 -3
  48. package/dist/plugins/image/view-empty.d.ts +2 -0
  49. package/dist/plugins/image/view-empty.js +21 -15
  50. package/dist/plugins/image/view-filled.d.ts +2 -2
  51. package/dist/plugins/image/view-filled.js +77 -72
  52. package/dist/plugins/link-preview/index.js +1 -2
  53. package/dist/plugins/list/index.js +1 -2
  54. package/dist/plugins/paragraph/index.js +1 -2
  55. package/dist/plugins/person/index.js +1 -2
  56. package/dist/plugins/poll/index.js +1 -2
  57. package/dist/plugins/quote/index.js +1 -2
  58. package/dist/plugins/raw/index.js +1 -2
  59. package/dist/plugins/shared/dropzone.d.ts +6 -0
  60. package/dist/plugins/shared/dropzone.js +47 -36
  61. package/dist/plugins/shared/layer.d.ts +13 -0
  62. package/dist/plugins/shared/layer.js +45 -0
  63. package/dist/plugins/shared/sourceEditor.css +165 -0
  64. package/dist/plugins/shared/sourceEditor.d.ts +97 -0
  65. package/dist/plugins/shared/sourceEditor.js +260 -0
  66. package/dist/plugins/spoiler/index.js +1 -2
  67. package/dist/plugins/table/index.js +1 -2
  68. package/dist/plugins/toggle/index.js +1 -2
  69. package/dist/plugins/warning/index.js +1 -2
  70. package/dist/renderer/index.js +1 -2
  71. package/dist/renderer/renderers/attaches/index.js +1 -2
  72. package/dist/renderer/renderers/carousel/index.js +24 -24
  73. package/dist/renderer/renderers/carousel/styles.css +8 -2
  74. package/dist/renderer/renderers/checklist/index.js +1 -2
  75. package/dist/renderer/renderers/code/index.js +1 -2
  76. package/dist/renderer/renderers/columns/index.js +1 -2
  77. package/dist/renderer/renderers/delimiter/index.js +1 -2
  78. package/dist/renderer/renderers/embed/index.js +1 -2
  79. package/dist/renderer/renderers/gallery/index.js +1 -2
  80. package/dist/renderer/renderers/heading/index.js +1 -2
  81. package/dist/renderer/renderers/image/index.js +1 -2
  82. package/dist/renderer/renderers/link-preview/index.js +1 -2
  83. package/dist/renderer/renderers/list/index.js +1 -2
  84. package/dist/renderer/renderers/paragraph/index.js +1 -2
  85. package/dist/renderer/renderers/person/index.js +1 -2
  86. package/dist/renderer/renderers/poll/index.js +1 -2
  87. package/dist/renderer/renderers/quote/index.js +1 -2
  88. package/dist/renderer/renderers/spoiler/index.js +1 -2
  89. package/dist/renderer/renderers/table/index.js +1 -2
  90. package/dist/renderer/renderers/toggle/index.js +1 -2
  91. package/dist/renderer/renderers/warning/index.js +1 -2
  92. package/package.json +27 -29
  93. package/dist/shared/resolvePath.d.ts +0 -8
  94. package/dist/shared/resolvePath.js +0 -10
@@ -3,6 +3,15 @@ declare const _default: {
3
3
  'plugin.attaches.upload': string;
4
4
  'plugin.attaches.dropzoneUpload': string;
5
5
  'plugin.attaches.dropzoneText': string;
6
+ 'plugin.attaches.dropzoneUrlPrefix': string;
7
+ 'plugin.attaches.dropzoneUrl': string;
8
+ 'plugin.attaches.urlEditorTitle': string;
9
+ 'plugin.attaches.urlEditorLabel': string;
10
+ 'plugin.attaches.urlEditorPlaceholder': string;
11
+ 'plugin.attaches.sourceSubmit': string;
12
+ 'plugin.attaches.sourceCancel': string;
13
+ 'plugin.attaches.invalidUrl': string;
14
+ 'plugin.attaches.urlFileName': string;
6
15
  'plugin.attaches.emptyReadonly': string;
7
16
  'plugin.attaches.addFiles': string;
8
17
  'plugin.attaches.delete': string;
@@ -3,12 +3,21 @@ export default {
3
3
  'plugin.attaches.upload': 'Upload',
4
4
  'plugin.attaches.dropzoneUpload': 'Upload',
5
5
  'plugin.attaches.dropzoneText': 'files from your device or drag and drop them here',
6
+ 'plugin.attaches.dropzoneUrlPrefix': 'or',
7
+ 'plugin.attaches.dropzoneUrl': 'insert by URL',
8
+ 'plugin.attaches.urlEditorTitle': 'Add file by URL',
9
+ 'plugin.attaches.urlEditorLabel': 'File URL',
10
+ 'plugin.attaches.urlEditorPlaceholder': 'https://example.com/file.pdf',
11
+ 'plugin.attaches.sourceSubmit': 'Add',
12
+ 'plugin.attaches.sourceCancel': 'Cancel',
13
+ 'plugin.attaches.invalidUrl': 'Enter a valid file URL.',
14
+ 'plugin.attaches.urlFileName': 'Remote file',
6
15
  'plugin.attaches.emptyReadonly': 'No files',
7
16
  'plugin.attaches.addFiles': 'Add files',
8
17
  'plugin.attaches.delete': 'Delete',
9
18
  'plugin.attaches.deleteAll': 'Delete all',
10
- 'plugin.attaches.filesCount': { one: 'file', other: 'files' },
11
- 'plugin.attaches.toggleGroup': 'Show or hide files',
19
+ 'plugin.attaches.filesCount': { one: 'file', other: 'files' },
20
+ 'plugin.attaches.toggleGroup': 'Show or hide files',
12
21
  'plugin.attaches.settings': 'Settings',
13
22
  'plugin.attaches.template': 'Template',
14
23
  'plugin.attaches.variantA': 'Card',
@@ -3,6 +3,15 @@ declare const _default: {
3
3
  'plugin.attaches.upload': string;
4
4
  'plugin.attaches.dropzoneUpload': string;
5
5
  'plugin.attaches.dropzoneText': string;
6
+ 'plugin.attaches.dropzoneUrlPrefix': string;
7
+ 'plugin.attaches.dropzoneUrl': string;
8
+ 'plugin.attaches.urlEditorTitle': string;
9
+ 'plugin.attaches.urlEditorLabel': string;
10
+ 'plugin.attaches.urlEditorPlaceholder': string;
11
+ 'plugin.attaches.sourceSubmit': string;
12
+ 'plugin.attaches.sourceCancel': string;
13
+ 'plugin.attaches.invalidUrl': string;
14
+ 'plugin.attaches.urlFileName': string;
6
15
  'plugin.attaches.emptyReadonly': string;
7
16
  'plugin.attaches.addFiles': string;
8
17
  'plugin.attaches.delete': string;
@@ -3,12 +3,21 @@ export default {
3
3
  'plugin.attaches.upload': 'Загрузить',
4
4
  'plugin.attaches.dropzoneUpload': 'Загрузите',
5
5
  'plugin.attaches.dropzoneText': 'файлы с устройства или перетащите их сюда',
6
+ 'plugin.attaches.dropzoneUrlPrefix': 'или',
7
+ 'plugin.attaches.dropzoneUrl': 'вставьте по URL',
8
+ 'plugin.attaches.urlEditorTitle': 'Добавление файла по URL',
9
+ 'plugin.attaches.urlEditorLabel': 'URL файла',
10
+ 'plugin.attaches.urlEditorPlaceholder': 'https://example.com/file.pdf',
11
+ 'plugin.attaches.sourceSubmit': 'Добавить',
12
+ 'plugin.attaches.sourceCancel': 'Отмена',
13
+ 'plugin.attaches.invalidUrl': 'Введите корректный URL файла.',
14
+ 'plugin.attaches.urlFileName': 'Удалённый файл',
6
15
  'plugin.attaches.emptyReadonly': 'Файлов нет',
7
16
  'plugin.attaches.addFiles': 'Добавить файлы',
8
17
  'plugin.attaches.delete': 'Удалить',
9
18
  'plugin.attaches.deleteAll': 'Удалить все',
10
- 'plugin.attaches.filesCount': { one: 'вложение', few: 'вложения', many: 'вложений', other: 'вложения' },
11
- 'plugin.attaches.toggleGroup': 'Показать или скрыть файлы',
19
+ 'plugin.attaches.filesCount': { one: 'вложение', few: 'вложения', many: 'вложений', other: 'вложения' },
20
+ 'plugin.attaches.toggleGroup': 'Показать или скрыть файлы',
12
21
  'plugin.attaches.settings': 'Настройки',
13
22
  'plugin.attaches.template': 'Шаблон',
14
23
  'plugin.attaches.variantA': 'Карточка',
@@ -1,4 +1,5 @@
1
1
  .oe-carousel-block {
2
+ position: relative;
2
3
  border-radius: 0.5rem;
3
4
  overflow-anchor: none;
4
5
  text-align: center;
@@ -46,16 +47,20 @@
46
47
  background: var(--oe-surface-2, #111114);
47
48
  isolation: isolate;
48
49
  }
49
- .oe-carousel-block__media { display: grid; place-items: center; min-width: 0; min-height: 0; }
50
+ .oe-carousel-block__media { display: grid; place-items: center; width: 100%; min-width: 0; min-height: 0; }
50
51
  .oe-carousel-block__media > img,
51
52
  .oe-carousel-block__media > video {
52
53
  display: block;
53
54
  width: 100%;
55
+ height: auto;
56
+ max-height: none;
57
+ object-fit: contain;
58
+ }
59
+ .oe-carousel-block__stage--fixed-ratio .oe-carousel-block__media > img,
60
+ .oe-carousel-block__stage--fixed-ratio .oe-carousel-block__media > video {
54
61
  height: 100%;
55
- min-height: 18rem;
56
- max-height: 38rem;
62
+ max-height: 100%;
57
63
  object-fit: contain;
58
- background: var(--oe-surface-2, #111114);
59
64
  }
60
65
  .oe-carousel-block__html {
61
66
  box-sizing: border-box;
@@ -123,50 +128,209 @@
123
128
  .oe-carousel-block__actions-view { display: inline-flex; align-items: center; }
124
129
  .oe-carousel-block__actions-view[hidden] { display: none; }
125
130
  .oe-carousel-block__action-btn {
126
- position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 0.3125rem;
127
- padding: 0.3125rem 0.5rem; border: 0; border-radius: 0.375rem;
128
- background: transparent; color: var(--oe-text-1, #fff);
129
- font: inherit; font-size: 0.6875rem; font-weight: 500; line-height: 1; white-space: nowrap; cursor: pointer;
131
+ position: relative;
132
+ display: inline-flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ gap: 0.3125rem;
136
+ padding: 0.3125rem 0.5rem;
137
+ color: var(--oe-text-1, #fff);
138
+ background: transparent;
139
+ border: 0;
140
+ border-radius: 0.375rem;
141
+ font: inherit;
142
+ font-size: 0.6875rem;
143
+ font-weight: 500;
144
+ line-height: 1;
145
+ white-space: nowrap;
146
+ cursor: pointer;
147
+ isolation: isolate;
148
+ transition: color 0.15s;
149
+ }
150
+ .oe-carousel-block__action-btn::before {
151
+ content: '';
152
+ position: absolute;
153
+ inset: 0;
154
+ z-index: -1;
155
+ background: var(--oe-accent, #4357b4);
156
+ border-radius: 0.375rem;
157
+ backface-visibility: hidden;
158
+ transform: scale(0);
159
+ transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
160
+ }
161
+ .oe-carousel-block__action-btn:hover::before {
162
+ transform: scale(1);
130
163
  }
131
- .oe-carousel-block__action-btn:hover { background: var(--oe-accent-alpha, rgba(67,87,180,0.18)); }
132
164
  .oe-carousel-block__action-btn--danger { color: var(--oe-danger, #f87171); }
133
- .oe-carousel-block__action-btn--danger:hover { background: rgba(248,113,113,0.16); }
165
+ .oe-carousel-block__action-btn--danger::before { background: var(--oe-danger, #f87171); }
166
+ .oe-carousel-block__action-btn--danger:hover { color: var(--oe-text-on-accent, #fff); }
134
167
  .oe-carousel-block__actions-sep { width: 1px; height: 1.125rem; margin: 0 0.0625rem; background: var(--oe-border, #1a1a1f); }
135
- .oe-carousel-block__dropdown { position: relative; display: inline-flex; }
168
+ .oe-carousel-block__dropdown {
169
+ position: relative;
170
+ display: flex;
171
+ align-items: center;
172
+ }
136
173
  .oe-carousel-block__dropdown-panel {
137
- display: none; position: absolute; left: 50%; bottom: calc(100% + 0.5rem); z-index: 100;
138
- box-sizing: border-box; width: min(25rem, calc(100vw - 2rem)); max-height: min(70vh, 24rem); padding: 0.75rem;
139
- overflow: auto; transform: translateX(-50%);
140
- border: 1px solid var(--oe-toolbar-border, var(--oe-border, #2e2e35)); border-radius: 0.625rem;
141
- background: var(--oe-toolbar-bg, var(--oe-card, #111)); color: var(--oe-text-1, #fff);
142
- box-shadow: var(--oe-toolbar-shadow, 0 12px 32px rgba(0,0,0,0.45)); text-align: left;
143
- }
144
- .oe-carousel-block__dropdown--open .oe-carousel-block__dropdown-panel { display: grid; gap: 0.65rem; }
145
- .oe-carousel-block__settings { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem 0.625rem; }
174
+ display: block;
175
+ visibility: hidden;
176
+ opacity: 0;
177
+ pointer-events: none;
178
+ position: absolute;
179
+ left: 0;
180
+ bottom: calc(100% + 8px);
181
+ z-index: var(--oe-plugin-panel-z-index, 1100);
182
+ box-sizing: border-box;
183
+ width: min(25rem, calc(100vw - 2rem));
184
+ max-height: 24rem;
185
+ padding: 12px;
186
+ overflow-y: auto;
187
+ color: var(--oe-text-1, #fff);
188
+ background: var(--oe-card, #111);
189
+ border: 1px solid var(--oe-border-hover, #2a2a2a);
190
+ border-radius: 8px;
191
+ box-shadow: var(--oe-toolbar-shadow, 0 8px 24px rgba(0,0,0,0.4));
192
+ text-align: left;
193
+ }
194
+ .oe-carousel-block__dropdown--open .oe-carousel-block__dropdown-panel {
195
+ visibility: visible;
196
+ opacity: 1;
197
+ pointer-events: auto;
198
+ }
146
199
  .oe-carousel-block__settings-title {
147
- grid-column: 1 / -1;
148
- color: var(--oe-text-3, #6e6e78); font-size: 0.625rem; font-weight: 700;
149
- letter-spacing: 0.08em; text-transform: uppercase;
200
+ margin: 10px 0 6px;
201
+ color: var(--oe-text-3, #6e6e78);
202
+ font-size: 10px;
203
+ font-weight: 500;
204
+ letter-spacing: 0.05em;
205
+ text-transform: uppercase;
206
+ }
207
+ .oe-carousel-block__settings-title:first-child {
208
+ margin-top: 0;
209
+ }
210
+ .oe-carousel-block__field {
211
+ display: flex;
212
+ align-items: center;
213
+ gap: 6px;
214
+ margin-bottom: 6px;
215
+ color: var(--oe-text-2, #9898a0);
216
+ font-size: 11px;
217
+ font-weight: 500;
218
+ white-space: nowrap;
219
+ }
220
+ .oe-carousel-block__field > span {
221
+ min-width: 5rem;
222
+ flex-shrink: 0;
150
223
  }
151
- .oe-carousel-block__field { display: grid; gap: 0.25rem; color: var(--oe-text-3, #6e6e78); font-size: 0.6875rem; }
152
- .oe-carousel-block__field--full { grid-column: 1 / -1; }
153
224
  .oe-carousel-block__field input,
154
225
  .oe-carousel-block__field textarea {
155
- box-sizing: border-box; width: 100%; padding: 0.45rem 0.5rem;
156
- border: 1px solid var(--oe-border, #2e2e35); border-radius: 0.375rem;
157
- background: var(--oe-surface, #0e0e10); color: var(--oe-text-1, #fff); font: inherit;
158
- }
159
- .oe-carousel-block__field textarea { min-height: 5rem; resize: vertical; }
160
- .oe-carousel-block__switches { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.45rem 0.75rem; }
161
- .oe-carousel-block__switch { display: flex; align-items: center; gap: 0.4rem; color: var(--oe-text-2, #c4c4c4); font-size: 0.75rem; }
162
- .oe-carousel-block__slide-actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 0.375rem; }
226
+ box-sizing: border-box;
227
+ width: 100%;
228
+ min-width: 0;
229
+ height: 22px;
230
+ padding: 0 8px;
231
+ color: var(--oe-text-1, #e8e8ec);
232
+ background: var(--oe-input-bg, #2c2c33);
233
+ border: 0;
234
+ border-radius: 4px;
235
+ outline: none;
236
+ font: inherit;
237
+ font-size: 11px;
238
+ transition: background 0.12s;
239
+ }
240
+ .oe-carousel-block__field input:hover,
241
+ .oe-carousel-block__field input:focus,
242
+ .oe-carousel-block__field textarea:hover,
243
+ .oe-carousel-block__field textarea:focus {
244
+ background: var(--oe-input-bg-hover, #353540);
245
+ }
246
+ .oe-carousel-block__field--multiline {
247
+ display: grid;
248
+ gap: 6px;
249
+ white-space: normal;
250
+ }
251
+ .oe-carousel-block__field--multiline > span {
252
+ min-width: 0;
253
+ }
254
+ .oe-carousel-block__field textarea {
255
+ min-height: 5rem;
256
+ padding: 6px 8px;
257
+ resize: vertical;
258
+ }
259
+ .oe-carousel-block__switches {
260
+ display: block;
261
+ margin-bottom: 10px;
262
+ }
263
+ .oe-carousel-block__switch {
264
+ display: flex;
265
+ align-items: center;
266
+ justify-content: space-between;
267
+ margin-bottom: 6px;
268
+ color: var(--oe-text-2, #9898a0);
269
+ font-size: 11px;
270
+ font-weight: 500;
271
+ }
272
+ .oe-carousel-block__switch:last-child {
273
+ margin-bottom: 0;
274
+ }
275
+ .oe-carousel-block__switch input {
276
+ position: relative;
277
+ order: 2;
278
+ flex: 0 0 auto;
279
+ appearance: none;
280
+ width: 28px;
281
+ height: 16px;
282
+ margin: 0;
283
+ padding: 0;
284
+ background: var(--oe-border-hover, #2a2a2a);
285
+ border: 0;
286
+ border-radius: 8px;
287
+ outline: none;
288
+ cursor: pointer;
289
+ transition: background 0.2s;
290
+ }
291
+ .oe-carousel-block__switch input::after {
292
+ content: '';
293
+ position: absolute;
294
+ top: 2px;
295
+ left: 2px;
296
+ width: 12px;
297
+ height: 12px;
298
+ background: var(--oe-text-3, #908c8c);
299
+ border-radius: 50%;
300
+ transition: transform 0.2s, background 0.2s;
301
+ }
302
+ .oe-carousel-block__switch input:checked {
303
+ background: var(--oe-accent, #4357b4);
304
+ }
305
+ .oe-carousel-block__switch input:checked::after {
306
+ background: #fff;
307
+ transform: translateX(12px);
308
+ }
309
+ .oe-carousel-block__slide-actions {
310
+ display: grid;
311
+ grid-template-columns: 1fr 1fr;
312
+ gap: 6px;
313
+ margin-top: 10px;
314
+ }
163
315
  .oe-carousel-block__settings-button {
164
- display: inline-flex; align-items: center; justify-content: center; gap: 0.25rem;
165
- min-height: 2rem; padding: 0.35rem 0.5rem; border: 1px solid var(--oe-border, #2e2e35);
166
- border-radius: 0.375rem; background: var(--oe-surface-2, #17171a); color: var(--oe-text-2, #c4c4c4);
167
- font: inherit; font-size: 0.6875rem; cursor: pointer;
316
+ display: inline-flex;
317
+ align-items: center;
318
+ justify-content: center;
319
+ gap: 4px;
320
+ min-height: 26px;
321
+ padding: 3px 8px;
322
+ color: var(--oe-text-2, #9898a0);
323
+ background: var(--oe-input-bg, #2c2c33);
324
+ border: 0;
325
+ border-radius: 4px;
326
+ font: inherit;
327
+ font-size: 11px;
328
+ cursor: pointer;
329
+ }
330
+ .oe-carousel-block__settings-button:hover:not(:disabled) {
331
+ color: var(--oe-text-1, #fff);
332
+ background: var(--oe-input-bg-hover, #353540);
168
333
  }
169
- .oe-carousel-block__settings-button:hover:not(:disabled) { color: var(--oe-text-1, #fff); border-color: var(--oe-border-hover, #3a3a44); }
170
334
  .oe-carousel-block__settings-button:disabled { opacity: 0.38; cursor: default; }
171
335
  .oe-carousel-block__settings-button--danger { grid-column: 1 / -1; color: var(--oe-danger, #f87171); }
172
336
 
@@ -180,19 +344,19 @@
180
344
 
181
345
  .oe-theme-light .oe-carousel-block__actions { background: var(--oe-surface, #fafafa); border-color: var(--oe-border, #e0e0e0); }
182
346
  .oe-theme-light .oe-carousel-block__action-btn { color: var(--oe-text-1, #1a1a1a); }
183
- .oe-theme-light .oe-carousel-block__select-action,
184
- .oe-theme-light .oe-carousel-block__settings-button { background: var(--oe-surface-2, #f2f2f2); }
347
+ .oe-theme-light .oe-carousel-block__action-btn:hover { color: var(--oe-text-on-accent, #fff); }
348
+ .oe-theme-light .oe-carousel-block__dropdown-panel {
349
+ background: var(--oe-card, #fff);
350
+ border-color: var(--oe-border-hover, #d4d4d4);
351
+ box-shadow: var(--oe-toolbar-shadow, 0 8px 24px rgba(0,0,0,0.1));
352
+ }
353
+ .oe-theme-light .oe-carousel-block__select-action { background: var(--oe-surface-2, #f2f2f2); }
185
354
 
186
355
  @media (max-width: 720px) {
187
356
  .oe-carousel-block__stage,
188
- .oe-carousel-block__media > img,
189
- .oe-carousel-block__media > video,
190
357
  .oe-carousel-block__html { min-height: 13rem; }
191
- .oe-carousel-block__dropdown-panel { left: 0; transform: none; }
192
- .oe-carousel-block__settings { grid-template-columns: 1fr; }
193
- .oe-carousel-block__field--full,
194
- .oe-carousel-block__settings-title,
195
- .oe-carousel-block__slide-actions,
196
- .oe-carousel-block__switches { grid-column: 1; }
197
- .oe-carousel-block__switches { grid-template-columns: 1fr; }
358
+ .oe-carousel-block__dropdown-panel {
359
+ right: 0;
360
+ left: auto;
361
+ }
198
362
  }