@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
@@ -7,10 +7,25 @@ declare const _default: {
7
7
  'plugin.carousel.upload': string;
8
8
  'plugin.carousel.back': string;
9
9
  'plugin.carousel.dropzoneText': string;
10
+ 'plugin.carousel.dropzoneUrlPrefix': string;
11
+ 'plugin.carousel.dropzoneUrl': string;
12
+ 'plugin.carousel.dropzoneHtmlPrefix': string;
13
+ 'plugin.carousel.dropzoneHtml': string;
14
+ 'plugin.carousel.urlEditorTitle': string;
15
+ 'plugin.carousel.urlEditorLabel': string;
16
+ 'plugin.carousel.urlEditorPlaceholder': string;
17
+ 'plugin.carousel.htmlEditorTitle': string;
18
+ 'plugin.carousel.htmlEditorLabel': string;
19
+ 'plugin.carousel.htmlEditorPlaceholder': string;
20
+ 'plugin.carousel.sourceSubmit': string;
21
+ 'plugin.carousel.sourceCancel': string;
22
+ 'plugin.carousel.invalidUrl': string;
23
+ 'plugin.carousel.invalidHtml': string;
10
24
  'plugin.carousel.empty': string;
11
25
  'plugin.carousel.emptyReadonly': string;
12
26
  'plugin.carousel.html': string;
13
27
  'plugin.carousel.source': string;
28
+ 'plugin.carousel.embeddedSource': string;
14
29
  'plugin.carousel.alt': string;
15
30
  'plugin.carousel.poster': string;
16
31
  'plugin.carousel.caption': string;
@@ -7,10 +7,25 @@ export default {
7
7
  'plugin.carousel.upload': 'Upload',
8
8
  'plugin.carousel.back': 'Back',
9
9
  'plugin.carousel.dropzoneText': 'images or videos from your device or drag and drop them here',
10
+ 'plugin.carousel.dropzoneUrlPrefix': 'or',
11
+ 'plugin.carousel.dropzoneUrl': 'insert by URL',
12
+ 'plugin.carousel.dropzoneHtmlPrefix': 'or',
13
+ 'plugin.carousel.dropzoneHtml': 'insert HTML',
14
+ 'plugin.carousel.urlEditorTitle': 'Add media by URL',
15
+ 'plugin.carousel.urlEditorLabel': 'Media URL',
16
+ 'plugin.carousel.urlEditorPlaceholder': 'https://example.com/image.jpg',
17
+ 'plugin.carousel.htmlEditorTitle': 'Add HTML slide',
18
+ 'plugin.carousel.htmlEditorLabel': 'Slide HTML',
19
+ 'plugin.carousel.htmlEditorPlaceholder': '<article>...</article>',
20
+ 'plugin.carousel.sourceSubmit': 'Add',
21
+ 'plugin.carousel.sourceCancel': 'Cancel',
22
+ 'plugin.carousel.invalidUrl': 'Enter a valid media URL.',
23
+ 'plugin.carousel.invalidHtml': 'Enter valid slide HTML.',
10
24
  'plugin.carousel.empty': 'Add the first slide',
11
25
  'plugin.carousel.emptyReadonly': 'No slides',
12
26
  'plugin.carousel.html': 'HTML',
13
27
  'plugin.carousel.source': 'Source URL',
28
+ 'plugin.carousel.embeddedSource': 'Local file — paste a URL to replace it',
14
29
  'plugin.carousel.alt': 'Alternative text',
15
30
  'plugin.carousel.poster': 'Poster URL',
16
31
  'plugin.carousel.caption': 'Caption',
@@ -22,9 +37,9 @@ export default {
22
37
  'plugin.carousel.movePreviousShort': 'Earlier',
23
38
  'plugin.carousel.moveNextShort': 'Later',
24
39
  'plugin.carousel.remove': 'Remove',
25
- 'plugin.carousel.removeSlide': 'Remove slide',
26
- 'plugin.carousel.deleteAll': 'Remove all slides',
27
- 'plugin.carousel.video': 'Video slide',
40
+ 'plugin.carousel.removeSlide': 'Remove slide',
41
+ 'plugin.carousel.deleteAll': 'Remove all slides',
42
+ 'plugin.carousel.video': 'Video slide',
28
43
  'plugin.carousel.settings': 'Settings',
29
44
  'plugin.carousel.currentSlide': 'Current slide',
30
45
  'plugin.carousel.behavior': 'Behavior',
@@ -7,10 +7,25 @@ declare const _default: {
7
7
  'plugin.carousel.upload': string;
8
8
  'plugin.carousel.back': string;
9
9
  'plugin.carousel.dropzoneText': string;
10
+ 'plugin.carousel.dropzoneUrlPrefix': string;
11
+ 'plugin.carousel.dropzoneUrl': string;
12
+ 'plugin.carousel.dropzoneHtmlPrefix': string;
13
+ 'plugin.carousel.dropzoneHtml': string;
14
+ 'plugin.carousel.urlEditorTitle': string;
15
+ 'plugin.carousel.urlEditorLabel': string;
16
+ 'plugin.carousel.urlEditorPlaceholder': string;
17
+ 'plugin.carousel.htmlEditorTitle': string;
18
+ 'plugin.carousel.htmlEditorLabel': string;
19
+ 'plugin.carousel.htmlEditorPlaceholder': string;
20
+ 'plugin.carousel.sourceSubmit': string;
21
+ 'plugin.carousel.sourceCancel': string;
22
+ 'plugin.carousel.invalidUrl': string;
23
+ 'plugin.carousel.invalidHtml': string;
10
24
  'plugin.carousel.empty': string;
11
25
  'plugin.carousel.emptyReadonly': string;
12
26
  'plugin.carousel.html': string;
13
27
  'plugin.carousel.source': string;
28
+ 'plugin.carousel.embeddedSource': string;
14
29
  'plugin.carousel.alt': string;
15
30
  'plugin.carousel.poster': string;
16
31
  'plugin.carousel.caption': string;
@@ -7,10 +7,25 @@ export default {
7
7
  'plugin.carousel.upload': 'Загрузить',
8
8
  'plugin.carousel.back': 'Назад',
9
9
  'plugin.carousel.dropzoneText': 'изображения или видео с устройства либо перетащите их сюда',
10
+ 'plugin.carousel.dropzoneUrlPrefix': 'или',
11
+ 'plugin.carousel.dropzoneUrl': 'вставьте по URL',
12
+ 'plugin.carousel.dropzoneHtmlPrefix': 'или',
13
+ 'plugin.carousel.dropzoneHtml': 'вставьте HTML',
14
+ 'plugin.carousel.urlEditorTitle': 'Добавление медиафайла по URL',
15
+ 'plugin.carousel.urlEditorLabel': 'URL медиафайла',
16
+ 'plugin.carousel.urlEditorPlaceholder': 'https://example.com/image.jpg',
17
+ 'plugin.carousel.htmlEditorTitle': 'Добавление HTML-слайда',
18
+ 'plugin.carousel.htmlEditorLabel': 'HTML-код слайда',
19
+ 'plugin.carousel.htmlEditorPlaceholder': '<article>...</article>',
20
+ 'plugin.carousel.sourceSubmit': 'Добавить',
21
+ 'plugin.carousel.sourceCancel': 'Отмена',
22
+ 'plugin.carousel.invalidUrl': 'Введите корректный URL медиафайла.',
23
+ 'plugin.carousel.invalidHtml': 'Введите корректный HTML-код слайда.',
10
24
  'plugin.carousel.empty': 'Добавьте первый слайд',
11
25
  'plugin.carousel.emptyReadonly': 'Слайдов нет',
12
26
  'plugin.carousel.html': 'HTML',
13
27
  'plugin.carousel.source': 'URL источника',
28
+ 'plugin.carousel.embeddedSource': 'Локальный файл — вставьте URL для замены',
14
29
  'plugin.carousel.alt': 'Альтернативный текст',
15
30
  'plugin.carousel.poster': 'URL постера',
16
31
  'plugin.carousel.caption': 'Подпись',
@@ -22,9 +37,9 @@ export default {
22
37
  'plugin.carousel.movePreviousShort': 'Раньше',
23
38
  'plugin.carousel.moveNextShort': 'Позже',
24
39
  'plugin.carousel.remove': 'Удалить',
25
- 'plugin.carousel.removeSlide': 'Удалить слайд',
26
- 'plugin.carousel.deleteAll': 'Удалить все слайды',
27
- 'plugin.carousel.video': 'Видеослайд',
40
+ 'plugin.carousel.removeSlide': 'Удалить слайд',
41
+ 'plugin.carousel.deleteAll': 'Удалить все слайды',
42
+ 'plugin.carousel.video': 'Видеослайд',
28
43
  'plugin.carousel.settings': 'Настройки',
29
44
  'plugin.carousel.currentSlide': 'Текущий слайд',
30
45
  'plugin.carousel.behavior': 'Поведение',
@@ -1,11 +1,10 @@
1
1
  import { sanitizeHtml } from '../../core/sanitize.js'
2
- import { resolvePath } from '../../shared/resolvePath.js'
3
2
  import { BlockPluginAbstract } from '../BlockPluginAbstract.js'
4
3
  import { validateChecklistData } from '../../shared/blockDataValidators.js'
5
4
  import { mapTextFields } from './mapTextFields.js'
6
5
  import { normalizeTextValue } from '../../shared/textFormat.js'
7
6
 
8
- const editorStyles = resolvePath('./checklist.css', import.meta.url)
7
+ const editorStyles = new URL('./checklist.css', import.meta.url).href
9
8
 
10
9
  // Tabler icon: list-check
11
10
  const ICON = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3.5 5.5l1.5 1.5l2.5-2.5"/><path d="M3.5 11.5l1.5 1.5l2.5-2.5"/><path d="M3.5 17.5l1.5 1.5l2.5-2.5"/><path d="M11 6h9"/><path d="M11 12h9"/><path d="M11 18h9"/></svg>'
@@ -1,10 +1,9 @@
1
- import { resolvePath } from '../../shared/resolvePath.js'
2
1
  import { getHighlightRuntime, loadHighlightRuntime } from '../../shared/highlightRuntime.js'
3
2
  import { BlockPluginAbstract } from '../BlockPluginAbstract.js'
4
3
  import { validateCodeData } from '../../shared/blockDataValidators.js'
5
4
  import { READ_ONLY_INTERACTIVE_ATTRIBUTE } from '../../core/constants.js'
6
5
 
7
- const editorStyles = resolvePath('./code.css', import.meta.url)
6
+ const editorStyles = new URL('./code.css', import.meta.url).href
8
7
 
9
8
  /** @type {WeakMap<HTMLElement, {code: string, language: string, editMode: boolean, context: import('../../core/types').BlockMutationContext, copyResetTimer: ReturnType<typeof setTimeout> | null}>} */
10
9
  const codeStateMap = new WeakMap()
@@ -1,11 +1,10 @@
1
1
  import { sanitizeHtml } from '../../core/sanitize.js'
2
- import { resolvePath } from '../../shared/resolvePath.js'
3
2
  import { BlockPluginAbstract } from '../BlockPluginAbstract.js'
4
3
  import { validateColumnsData } from '../../shared/blockDataValidators.js'
5
4
  import { normalizeTextValue } from '../../shared/textFormat.js'
6
5
  import { mapColumnsTextFields } from '../../shared/mapTextFields.js'
7
6
 
8
- const editorStyles = resolvePath('./columns.css', import.meta.url)
7
+ const editorStyles = new URL('./columns.css', import.meta.url).href
9
8
 
10
9
  // Tabler icon: columns-2
11
10
  const ICON = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3m0 1a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z"/><path d="M12 3v18"/></svg>'
@@ -2,11 +2,10 @@
2
2
  // Delimiter — horizontal rule / section break
3
3
  // =============================================================================
4
4
 
5
- import { resolvePath } from '../../shared/resolvePath.js'
6
5
  import { BlockPluginAbstract } from '../BlockPluginAbstract.js'
7
6
  import { validateDelimiterData } from '../../shared/blockDataValidators.js'
8
7
 
9
- const editorStyles = resolvePath('./delimiter.css', import.meta.url)
8
+ const editorStyles = new URL('./delimiter.css', import.meta.url).href
10
9
 
11
10
  // Tabler icon: separator-horizontal (three dots)
12
11
  const ICON = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h2"/><path d="M17 12h2"/><path d="M11 12h2"/></svg>'
@@ -1,13 +1,12 @@
1
1
  import { sanitizeHtml } from '../../core/sanitize.js'
2
2
  import { SERVICES, buildPlayer } from './player.js'
3
- import { resolvePath } from '../../shared/resolvePath.js'
4
3
  import { BlockPluginAbstract } from '../BlockPluginAbstract.js'
5
4
  import { validateEmbedData } from '../../shared/blockDataValidators.js'
6
5
  import { sanitizeUrl } from '../../shared/sanitize/sanitizeUrl.js'
7
6
  import { normalizeTextValue } from '../../shared/textFormat.js'
8
7
  import { READ_ONLY_INTERACTIVE_ATTRIBUTE } from '../../core/constants.js'
9
8
 
10
- const editorStyles = resolvePath('./embed.css', import.meta.url)
9
+ const editorStyles = new URL('./embed.css', import.meta.url).href
11
10
 
12
11
  // Tabler: device-tv (toolbox)
13
12
  const ICON = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v9a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2l0 -9"/><path d="M16 3l-4 4l-4 -4"/></svg>'
@@ -1,4 +1,5 @@
1
1
  .oe-gallery {
2
+ position: relative;
2
3
  border-radius: 0.5rem;
3
4
  overflow-anchor: none;
4
5
  text-align: center;
@@ -615,7 +616,7 @@
615
616
  border-radius: 8px;
616
617
  box-shadow: var(--oe-toolbar-shadow, 0 8px 24px rgba(0, 0, 0, 0.4));
617
618
  padding: 10px;
618
- z-index: 100;
619
+ z-index: var(--oe-plugin-panel-z-index, 1100);
619
620
  }
620
621
 
621
622
  .oe-gallery__dropdown--open .oe-gallery__dropdown-panel {
@@ -805,6 +806,10 @@
805
806
  color: var(--oe-text-1, #1a1a1a);
806
807
  }
807
808
 
809
+ .oe-theme-light .oe-gallery__action-btn:hover {
810
+ color: var(--oe-text-on-accent, #fff);
811
+ }
812
+
808
813
  .oe-theme-light .oe-gallery__action-btn--active {
809
814
  color: var(--oe-accent, #4357b4);
810
815
  }