@seliseblocks/mailcraft 0.1.0 → 0.2.0

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 (69) hide show
  1. package/DOCS.md +240 -12
  2. package/README.md +11 -3
  3. package/README.md.txt +134 -0
  4. package/dist/mailcraft-editor.bundle.js +51 -39
  5. package/dist/mailcraft-editor.bundle.js.map +3 -3
  6. package/examples/templates/order-confirmed.html +80 -80
  7. package/examples/vanilla.html +242 -23
  8. package/package.json +7 -2
  9. package/src/core/assets.js +10 -15
  10. package/src/core/binder.js +120 -118
  11. package/src/core/blocks.js +14 -1
  12. package/src/core/css-cascade.js +117 -117
  13. package/src/core/editor-core.js +1530 -1492
  14. package/src/core/export.js +142 -55
  15. package/src/core/i18n/ar.js +219 -177
  16. package/src/core/i18n/bg.js +196 -152
  17. package/src/core/i18n/bn.js +218 -176
  18. package/src/core/i18n/ca.js +196 -152
  19. package/src/core/i18n/cs.js +196 -152
  20. package/src/core/i18n/da.js +196 -152
  21. package/src/core/i18n/de-CH.js +196 -152
  22. package/src/core/i18n/de.js +196 -152
  23. package/src/core/i18n/dz.js +221 -179
  24. package/src/core/i18n/el.js +196 -152
  25. package/src/core/i18n/en.js +3 -10
  26. package/src/core/i18n/es.js +196 -152
  27. package/src/core/i18n/et.js +196 -152
  28. package/src/core/i18n/fi.js +196 -152
  29. package/src/core/i18n/fr.js +196 -152
  30. package/src/core/i18n/hr.js +196 -152
  31. package/src/core/i18n/hu.js +196 -152
  32. package/src/core/i18n/index.js +83 -83
  33. package/src/core/i18n/it.js +196 -152
  34. package/src/core/i18n/lt.js +196 -152
  35. package/src/core/i18n/lv.js +196 -152
  36. package/src/core/i18n/nb.js +196 -152
  37. package/src/core/i18n/nl.js +196 -152
  38. package/src/core/i18n/pl.js +196 -152
  39. package/src/core/i18n/pt.js +196 -152
  40. package/src/core/i18n/ro.js +196 -152
  41. package/src/core/i18n/ru.js +196 -152
  42. package/src/core/i18n/sk.js +196 -152
  43. package/src/core/i18n/sl.js +196 -152
  44. package/src/core/i18n/sv.js +196 -152
  45. package/src/core/i18n/tables.js +50 -50
  46. package/src/core/i18n/tr.js +196 -152
  47. package/src/core/i18n/uk.js +196 -152
  48. package/src/core/icons.js +237 -235
  49. package/src/core/ids.js +1 -1
  50. package/src/core/import-html.js +1025 -959
  51. package/src/core/layout-style.js +100 -100
  52. package/src/core/parse.js +10 -10
  53. package/src/core/placeholder.js +15 -15
  54. package/src/core/sanitize.js +141 -141
  55. package/src/core/storage-limits.js +184 -184
  56. package/src/core/storage.js +85 -85
  57. package/src/core/theme.js +1 -1
  58. package/src/core/variables.js +11 -11
  59. package/src/index.js +9 -9
  60. package/src/mailcraft-editor.js +26 -14
  61. package/src/render/block-body.js +49 -6
  62. package/src/render/canvas.js +31 -2
  63. package/src/render/fields.js +602 -588
  64. package/src/render/focus-preserve.js +158 -158
  65. package/src/render/rte.js +241 -212
  66. package/src/render/screenshot.js +132 -132
  67. package/src/render/story.js +415 -415
  68. package/src/render/style.js +8 -0
  69. package/types/index.d.ts +419 -0
@@ -1,152 +1,196 @@
1
- /** Lithuanian (Lietuvių) — `lt`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
2
- export const LT = {
3
- 'action.undoHint': 'Anuliuoti — ⌘Z',
4
- 'action.redoHint': 'Grąžinti — ⌘⇧Z',
5
- 'action.chromeToDark': 'Tamsi',
6
- 'action.chromeToLight': 'Šviesi',
7
- 'action.chromeHint': 'Redaktoriaus tema šviesi / tamsi',
8
- 'action.aiCopy': 'Tekstas',
9
- 'action.aiCopyHint': 'Parašyti tekstą su DI',
10
- 'action.code': 'Kodas',
11
- 'action.codeHint': 'Redaguoti neapdorotą HTML su tiesioginiu peržiūra',
12
- 'action.preview': 'Peržiūra',
13
- 'action.export': 'Eksportuoti',
14
- 'device.desktop': 'Kompiuteris',
15
- 'device.desktopHint': 'Kompiuterio plotis',
16
- 'device.mobile': 'Mobilusis',
17
- 'device.mobileHint': 'Mobiliojo plotis',
18
- 'device.dark': 'Tamsi',
19
- 'device.darkHint': 'Tamsus pašto dėžutės režimas',
20
- 'status.autosaveOn': 'automatinis išsaugojimas įjungtas',
21
- 'status.saved': 'išsaugota {time}',
22
- 'status.saveFailed': 'neišsaugota saugykla pilna',
23
- 'canvas.meta': '{rows} eilučių · {blocks} blokų · {width}px',
24
- 'tab.design': 'Stilius',
25
- 'tab.designHint': 'Stilizuoti pasirinkimą',
26
- 'tab.blocks': 'Blokai',
27
- 'tab.blocksHint': 'Turinio blokai ir kintamieji',
28
- 'tab.rows': 'Sekcijos',
29
- 'tab.rowsHint': 'Sekcijų išdėstymai ir drobės modelis',
30
- 'tab.files': 'Failai',
31
- 'tab.filesHint': 'Išteklių biblioteka',
32
- 'tab.layers': 'Struktūra',
33
- 'tab.layersHint': 'Dokumento struktūra',
34
- 'tab.theme': 'Tema',
35
- 'tab.themeHint': 'Globalūs stiliai',
36
- 'tab.data': 'Kint.',
37
- 'tab.dataHint': 'Jūsų kodo pateikti kintamieji',
38
- 'inspector.blockProperties': 'Bloko savybės',
39
- 'inspector.sectionProperties': 'Sekcijos savybės',
40
- 'inspector.title': 'Inspektorius',
41
- 'inspector.sectionLabel': 'Sekcija',
42
- 'inspector.nothingSelected': 'Nieko nepasirinkta',
43
- 'action.duplicateHint': 'Dubliuoti — ⌘D',
44
- 'action.deleteHint': 'Ištrinti — ⌫',
45
- 'inspector.emptyBody':
46
- 'Pasirinkite eilutę arba bloką drobėje, kad čia jį stilizuotumėte. Vilkite blokus iš skirtuko <strong style="color: var(--ed-text); font-weight: 600;">Blokai</strong>; dukart spustelėkite bet kurį tekstą, kad redaguotumėte jį tiesiogiai.',
47
- 'inspector.shortcuts': 'Sparčieji klavišai',
48
- 'shortcut.undoRedo': '⌘Z / ⌘⇧Z anuliuoti, grąžinti',
49
- 'shortcut.duplicate': '⌘D — dubliuoti pasirinkimą',
50
- 'shortcut.delete': 'ištrinti pasirinkimą',
51
- 'shortcut.export': '⌘Eeksportuoti HTML',
52
- 'shortcut.escape': 'ESCpanaikinti pasirinkimą, uždaryti',
53
- 'blocks.dragHint': 'Vilkite į drobę',
54
- 'blocks.count': '{count} blokų',
55
- 'rows.sectionLayouts': 'Sekcijų išdėstymai',
56
- 'rows.customMarkup': 'Pasirinktinis kodas',
57
- 'rows.htmlRowHint': 'Vilkite, kad įterptumėte, arba spustelėkite, kad pridėtumėte — pilno pločio eilutę, kurią užpildote neapdorotu HTML',
58
- 'rows.rawHtmlSection': 'Neapdoroto HTML sekcija',
59
- 'rows.rawHtmlDesc': 'Pilno pločio sekcija, jūsų pačių kodas, vis dar vilkiama',
60
- 'rows.canvasModel': 'Drobės modelis',
61
- 'rows.modeRowBased': 'Pagrįsta eilutėmis',
62
- 'rows.modeFreeStack': 'Laisvas krūvinys',
63
- 'rows.hintRows':
64
- 'Pagrįsta sekcijomis: pirmiausia numeskite išdėstymą, tada blokus į jo stulpelius — kiekviena sekcija turi savo foną, kraštinę, flex arba tinklelio nustatymus.',
65
- 'rows.hintStack': 'Laisvas krūvinys: be išdėstymų — kiekvienas numestas blokas tampa savo pilno pločio sekcija, sudėta iš eilės.',
66
- 'files.libraryCount': 'Biblioteka{count} failų',
67
- 'files.openManager': 'Atidaryti failų tvarkyklę',
68
- 'files.dragToCanvas': 'Vilkite bet kurį failą tiesiai į drobę, kad jį padėtumėte kaip vaizdo bloką.',
69
- 'layers.structure': 'Struktūra',
70
- 'layers.sectionSingle': 'Sekcija',
71
- 'layers.sectionMulti': 'Sekcija · {count} stulpelių',
72
- 'layers.blockCount': '{count} bl.',
73
- 'theme.globalStyles': 'Globalūs stiliai',
74
- 'vars.title': 'Kintamieji',
75
- 'vars.fromCode': '{count} iš jūsų kodo',
76
- 'vars.declaredNote': 'Deklaruoti jūsų programos — drobė visada rodo žymą, o ne reikšmę.',
77
- 'vars.filterPlaceholder': 'Filtruoti kintamuosius…',
78
- 'vars.insertHint': 'Spustelėkite, kad įterptumėte į pasirinktą tekstą, antraštę ar mygtuką',
79
- 'vars.insert': 'įterpti',
80
- 'vars.noMatch': ' vienas kintamasis neatitinka šio filtro.',
81
- 'vars.noneDeclared': 'Jūsų programa dar nedeklaravo jokių kintamųjų.',
82
- 'vars.rteHint': 'Redaguodami tekstą taip pat galite pasirinkti kintamąjį tiesiai iš įterptos įrankių juostos išskleidžiamojo meniu.',
83
- 'modal.fileManager': 'Failų tvarkyklė',
84
- 'modal.assetsTitle': 'Ištekliai',
85
- 'modal.replaceImage': 'Pakeisti vaizdą',
86
- 'library.searchPlaceholder': 'Ieškoti failų…',
87
- 'action.upload': 'Įkelti',
88
- 'library.clickToPlace': 'Spustelėkite failą, kad jį padėtumėte · arba vilkite failą į drobę',
89
- 'library.clickToReplace': 'Spustelėkite failą, kad pakeistumėte pasirinktą vaizdą',
90
- 'library.storageLabel': '{count} failų · {size}',
91
- 'library.folders': 'Aplankai',
92
- 'library.dropHint': 'Numeskite vaizdo failus čia, kad juos įkeltumėte — arba naudokite mygtuką Įkelti.',
93
- 'library.deleteFileHint': 'Ištrinti failą',
94
- 'library.del': 'TRINT',
95
- 'toast.assetDeleted': '{name} ištrintas',
96
- 'modal.export': 'Eksportuoti',
97
- 'modal.exportTitle': 'Lentelėmis pagrįstas el. laiško HTML',
98
- 'export.copy': 'Kopijuoti',
99
- 'export.copied': 'Nukopijuota',
100
- 'action.download': 'Atsisiųsti',
101
- 'export.meta': '{kb} KB · lentelės + įterpti stiliai · Outlook saugūs pločiai',
102
- 'modal.rawHtmlTitle': 'Neapdorotas HTML, tiesioginė peržiūra',
103
- 'code.statusEdited': 'Kodo rodinys redaguotaperžiūra tiesiogiai, dar netaikyta',
104
- 'code.statusSynced': 'Kodo rodinys sinchronizuota su drobe',
105
- 'action.reload': 'Įkelti naujo',
106
- 'action.reloadHint': 'Įkelti šaltinį naujo drobės',
107
- 'action.applyToCanvas': 'Taikyti drobei',
108
- 'action.applyToCanvasHint': 'Analizuoti šaltinį atgal į redaguojamas eilutes',
109
- 'action.closeWithoutApplyingHint': 'Uždaryti netaikant',
110
- 'code.source': 'Šaltinis',
111
- 'code.livePreview': 'Tiesioginė peržiūra',
112
- 'code.liveHtmlPreviewTitle': 'Tiesioginė HTML peržiūra',
113
- 'code.applyNote':
114
- 'Taikymas analizuoja kiekvieną aukščiausio lygio lentelės eilutę į drobės eilutę, kurią vis dar galite pasirinkti, pertvarkyti ir ištrinti ranka parašytas kodas išlieka nepakitęs.',
115
- 'code.meta': '{kb} KB · {lines} eilučių',
116
- 'toast.sourceReloaded': 'Šaltinis įkeltas naujo iš drobės',
117
- 'toast.sourceAppliedOne': 'Šaltinis pritaikytas — 1 eilutė drobėje',
118
- 'toast.sourceAppliedMany': 'Šaltinis pritaikytas — {rows} eilučių drobėje',
119
- 'toast.parseError': 'Nepavyko išanalizuoti šio HTML',
120
- 'modal.copyAssist': 'Teksto asistentas',
121
- 'modal.draftCopyTitle': 'Parašyti tekstą šiai kampanijai',
122
- 'ai.goal': 'Tikslas',
123
- 'ai.tone': 'Tonas',
124
- 'ai.briefLabel': 'Apie šis el. laiškas?',
125
- 'ai.briefPlaceholder': 'pvz., Rudens kolekcija, 15 % prenumeratoriams, nemokamas pristatymas nuo 150 €',
126
- 'ai.generate': 'Generuoti tekstą',
127
- 'ai.writing': 'Rašoma…',
128
- 'ai.kindHeadline': 'Antraštė',
129
- 'ai.kindBody': 'Pagrindinis tekstas',
130
- 'ai.kindButton': 'Mygtuko tekstas',
131
- 'ai.actionInsertHeading': 'Įterpti kaip antraštę',
132
- 'ai.actionInsertText': 'Įterpti kaip teksto bloką',
133
- 'ai.actionInsertButton': 'Įterpti kaip mygtuką',
134
- 'toast.headingAdded': 'Antraštė pridėta',
135
- 'toast.textBlockAdded': 'Teksto blokas pridėtas',
136
- 'toast.buttonAdded': 'Mygtukas pridėtas',
137
- 'preview.kickerMobile': 'Peržiūramobilusis 375px',
138
- 'preview.kickerDark': 'Peržiūra tamsi pašto dėžutė',
139
- 'preview.kickerDesktop': 'Peržiūra kompiuteris {width}px',
140
- 'action.close': 'Uždaryti',
141
- 'toast.duplicated': 'Sudubliuota',
142
- 'toast.fileUploadedOne': 'Įkeltas 1 failas',
143
- 'toast.fileUploadedMany': 'Įkelta failų: {count}',
144
- 'toast.imageReplaced': 'Vaizdas pakeistas',
145
- 'toast.imageAdded': 'Vaizdas pridėtas į drobę',
146
- 'toast.htmlCopied': 'HTML nukopijuotas į iškarpinę',
147
- 'toast.templateLoaded': '{name} įkeltas',
148
- 'toast.snippetDefaultLabel': 'Iškarpa',
149
- 'toast.snippetInserted': '{name} įterptas',
150
- 'toast.snippetCopied': '{name} nukopijuotas — pasirinkite teksto bloką, kad jį įterptumėte',
151
- };
152
-
1
+ /** Lithuanian (Lietuvių) — `lt`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
2
+ export const LT = {
3
+ 'action.undoHint': 'Anuliuoti — ⌘Z',
4
+ 'action.redoHint': 'Grąžinti — ⌘⇧Z',
5
+ 'action.chromeToDark': 'Tamsi',
6
+ 'action.chromeToLight': 'Šviesi',
7
+ 'action.chromeHint': 'Redaktoriaus tema šviesi / tamsi',
8
+ 'action.chromeHintToDark': 'Tamsi tema',
9
+ 'action.chromeHintToLight': 'Šviesi tema',
10
+ 'action.aiDraft': 'Juodraštis',
11
+ 'action.aiDraftHint': 'Parašyti el. laiško turinį su DI',
12
+ 'action.code': 'Kodas',
13
+ 'action.codeHint': 'Redaguoti neapdorotą HTML su tiesioginiu peržiūra',
14
+ 'action.preview': 'Peržiūra',
15
+ 'action.previewHint': 'Peržiūrėti el. laišką',
16
+ 'action.export': 'Eksportuoti',
17
+ 'action.exportHint': 'Eksportuoti savo el. laišką',
18
+ 'device.desktop': 'Kompiuteris',
19
+ 'device.desktopHint': 'Kompiuterio plotis',
20
+ 'device.mobile': 'Mobilusis',
21
+ 'device.mobileHint': 'Mobiliojo plotis',
22
+ 'status.autosaveOn': 'automatinis išsaugojimas įjungtas',
23
+ 'status.saved': 'išsaugota {time}',
24
+ 'status.saveFailed': 'neišsaugota — saugykla pilna',
25
+ 'canvas.meta': '{rows} eilučių · {blocks} blokų · {width}px',
26
+ 'tab.design': 'Stilius',
27
+ 'tab.designHint': 'Stilizuoti pasirinkimą',
28
+ 'tab.blocks': 'Blokai',
29
+ 'tab.blocksHint': 'Turinio blokai ir kintamieji',
30
+ 'tab.rows': 'Sekcijos',
31
+ 'tab.rowsHint': 'Sekcijų išdėstymai ir drobės modelis',
32
+ 'tab.files': 'Failai',
33
+ 'tab.filesHint': 'Išteklių biblioteka',
34
+ 'tab.layers': 'Struktūra',
35
+ 'tab.layersHint': 'Dokumento struktūra',
36
+ 'tab.settings': 'Nustatymai',
37
+ 'tab.settingsHint': 'El. laiško nustatymai',
38
+ 'tab.data': 'Kint.',
39
+ 'tab.dataHint': 'Jūsų kodo pateikti kintamieji',
40
+ 'inspector.blockProperties': 'Bloko savybės',
41
+ 'inspector.sectionProperties': 'Sekcijos savybės',
42
+ 'inspector.title': 'Inspektorius',
43
+ 'inspector.sectionLabel': 'Sekcija',
44
+ 'inspector.nothingSelected': 'Nieko nepasirinkta',
45
+ 'action.duplicateHint': 'Dubliuoti — ⌘D',
46
+ 'action.deleteHint': 'Ištrinti ',
47
+ 'inspector.emptyBody':
48
+ 'Pasirinkite eilutę arba bloką drobėje, kad čia jį stilizuotumėte. Vilkite blokus iš skirtuko <strong style="color: var(--ed-text); font-weight: 600;">Blokai</strong>; dukart spustelėkite bet kurį tekstą, kad redaguotumėte jį tiesiogiai.',
49
+ 'inspector.shortcuts': 'Sparčieji klavišai',
50
+ 'shortcut.undoRedo': '⌘Z / ⌘⇧Z anuliuoti, grąžinti',
51
+ 'shortcut.duplicate': '⌘Ddubliuoti pasirinkimą',
52
+ 'shortcut.delete': 'ištrinti pasirinkimą',
53
+ 'shortcut.export': '⌘E eksportuoti HTML',
54
+ 'shortcut.escape': 'ESC — panaikinti pasirinkimą, uždaryti',
55
+ 'blocks.dragHint': 'Vilkite į drobę',
56
+ 'blocks.count': '{count} blokų',
57
+ 'rows.sectionLayouts': 'Sekcijų išdėstymai',
58
+ 'rows.customMarkup': 'Pasirinktinis kodas',
59
+ 'rows.htmlRowHint': 'Vilkite, kad įterptumėte, arba spustelėkite, kad pridėtumėte — pilno pločio eilutę, kurią užpildote neapdorotu HTML',
60
+ 'rows.rawHtmlSection': 'Neapdoroto HTML sekcija',
61
+ 'rows.rawHtmlDesc': 'Pilno pločio sekcija, jūsų pačių kodas, vis dar vilkiama',
62
+ 'rows.canvasModel': 'Drobės modelis',
63
+ 'rows.modeRowBased': 'Pagrįsta eilutėmis',
64
+ 'rows.modeFreeStack': 'Laisvas krūvinys',
65
+ 'rows.hintRows':
66
+ 'Pagrįsta sekcijomis: pirmiausia numeskite išdėstymą, tada blokus į jo stulpelius kiekviena sekcija turi savo foną, kraštinę, flex arba tinklelio nustatymus.',
67
+ 'rows.hintStack': 'Laisvas krūvinys: be išdėstymų — kiekvienas numestas blokas tampa savo pilno pločio sekcija, sudėta iš eilės.',
68
+ 'files.libraryCount': 'Biblioteka {count} failų',
69
+ 'files.openManager': 'Atidaryti failų tvarkyklę',
70
+ 'files.dragToCanvas': 'Vilkite bet kurį failą tiesiai į drobę, kad jį padėtumėte kaip vaizdo bloką.',
71
+ 'layers.structure': 'Struktūra',
72
+ 'layers.sectionSingle': 'Sekcija',
73
+ 'layers.sectionMulti': 'Sekcija · {count} stulpelių',
74
+ 'layers.column': '{index} stulpelis',
75
+ 'layers.blockCount': '{count} bl.',
76
+ 'vars.title': 'Kintamieji',
77
+ 'vars.fromCode': '{count} iš jūsų kodo',
78
+ 'vars.declaredNote': 'Deklaruoti jūsų programos drobė visada rodo žymą, o ne reikšmę.',
79
+ 'vars.filterPlaceholder': 'Filtruoti kintamuosius…',
80
+ 'vars.insertHint': 'Spustelėkite, kad įterptumėte į pasirinktą tekstą, antraštę ar mygtuką',
81
+ 'vars.insert': 'įterpti',
82
+ 'vars.noMatch': ' vienas kintamasis neatitinka šio filtro.',
83
+ 'vars.noneDeclared': 'Jūsų programa dar nedeklaravo jokių kintamųjų.',
84
+ 'vars.rteHint': 'Redaguodami tekstą taip pat galite pasirinkti kintamąjį tiesiai iš įterptos įrankių juostos išskleidžiamojo meniu.',
85
+ 'modal.fileManager': 'Failų tvarkyklė',
86
+ 'modal.assetsTitle': 'Ištekliai',
87
+ 'modal.replaceImage': 'Pakeisti vaizdą',
88
+ 'library.searchPlaceholder': 'Ieškoti failų…',
89
+ 'action.upload': 'Įkelti',
90
+ 'library.clickToPlace': 'Spustelėkite failą, kad jį padėtumėte · arba vilkite failą į drobę',
91
+ 'library.clickToReplace': 'Spustelėkite failą, kad pakeistumėte pasirinktą vaizdą',
92
+ 'library.storageLabel': '{count} failų · {size}',
93
+ 'library.folders': 'Aplankai',
94
+ 'library.dropHint': 'Numeskite vaizdo failus čia, kad juos įkeltumėte — arba naudokite mygtuką Įkelti.',
95
+ 'library.deleteFileHint': 'Ištrinti failą',
96
+ 'library.del': 'TRINT',
97
+ 'toast.assetDeleted': '{name} ištrintas',
98
+ 'library.allFiles': 'Visi failai',
99
+ 'library.loadMore': 'Įkelti daugiau',
100
+ 'library.empty': 'Čia dar nėra failų.',
101
+ 'storage.loading': 'Įkeliami failai…',
102
+ 'storage.uploading': 'Įkeliama {count}…',
103
+ 'storage.errLoadFailed': 'Nepavyko įkelti failų bibliotekos{reason}',
104
+ 'storage.errNoLimits': 'Įkėlimai išjungti: ši programa nenustatė jokių įkėlimo ribų.',
105
+ 'storage.errNoAccept': 'Įkėlimai išjungti: neleidžiamas nė vienas failo formatas.',
106
+ 'storage.errNoMaxBytes': 'Įkėlimai išjungti: nenustatytas didžiausias failo dydis.',
107
+ 'storage.errTooLarge': '{name} yra {size} — riba yra {max}.',
108
+ 'storage.errFormat': '{name} yra {type} failas, kuris čia neleidžiamas.',
109
+ 'storage.errSvg': '{name} yra SVG, kurio ši programa nepriima.',
110
+ 'storage.errDimensions': '{name} yra {w}×{ht}px — riba yra {maxW}×{maxH}px.',
111
+ 'storage.errTooMany': 'Vienu metu galima įkelti tik {max} failų.',
112
+ 'storage.errUnreadable': '{name} nėra nuskaitomas paveikslėlis.',
113
+ 'storage.errUploadFailed': 'Nepavyko įkelti {name} — {reason}',
114
+ 'storage.errDeleteFailed': 'Nepavyko ištrinti {name}{reason}',
115
+ 'modal.export': 'Eksportuoti',
116
+ 'modal.exportTitle': 'Lentelėmis pagrįstas el. laiško HTML',
117
+ 'export.copy': 'Kopijuoti',
118
+ 'export.copied': 'Nukopijuota',
119
+ 'action.download': 'Atsisiųsti',
120
+ 'export.meta': '{kb} KB · lentelės + įterpti stiliai · Outlook saugūs pločiai',
121
+ 'modal.rawHtmlTitle': 'Neapdorotas HTML, tiesioginė peržiūra',
122
+ 'code.statusEdited': 'Kodo rodinys — redaguota — peržiūra tiesiogiai, dar netaikyta',
123
+ 'code.statusSynced': 'Kodo rodinys — sinchronizuota su drobe',
124
+ 'action.reload': 'Įkelti naujo',
125
+ 'action.reloadHint': 'Įkelti šaltinį naujo drobės',
126
+ 'action.applyToCanvas': 'Taikyti drobei',
127
+ 'action.applyToCanvasHint': 'Analizuoti šaltinį atgal į redaguojamas eilutes',
128
+ 'action.closeWithoutApplyingHint': 'Uždaryti netaikant',
129
+ 'code.source': 'Šaltinis',
130
+ 'code.livePreview': 'Tiesioginė peržiūra',
131
+ 'code.liveHtmlPreviewTitle': 'Tiesioginė HTML peržiūra',
132
+ 'code.applyNote':
133
+ 'Taikymas analizuoja kiekvieną aukščiausio lygio lentelės eilutę į drobės eilutę, kurią vis dar galite pasirinkti, pertvarkyti ir ištrinti — ranka parašytas kodas išlieka nepakitęs.',
134
+ 'code.meta': '{kb} KB · {lines} eilučių',
135
+ 'toast.sourceReloaded': 'Šaltinis įkeltas iš naujo iš drobės',
136
+ 'toast.sourceAppliedOne': 'Šaltinis pritaikytas — 1 eilutė drobėje',
137
+ 'toast.sourceAppliedMany': 'Šaltinis pritaikytas {rows} eilučių drobėje',
138
+ 'toast.parseError': 'Nepavyko išanalizuoti šio HTML',
139
+ 'modal.aiDraft': 'DI rašymo asistentas',
140
+ 'modal.aiDraftTitle': 'Parašykite el. laišką su DI',
141
+ 'ai.disclosure': 'DI kuria pasiūlymus pagal jūsų aprašą. Prieš siųsdami peržiūrėkite ir suredaguokite rezultatą.',
142
+ 'ai.goal': 'Tikslas',
143
+ 'ai.tone': 'Tonas',
144
+ 'ai.briefLabel': 'Apie ką šis el. laiškas?',
145
+ 'ai.briefPlaceholder': 'pvz., Rudens kolekcija, 15 % prenumeratoriams, nemokamas pristatymas nuo 150 €',
146
+ 'ai.generate': 'Generuoti tekstą',
147
+ 'ai.writing': 'Rašoma…',
148
+ 'ai.kindHeadline': 'Antraštė',
149
+ 'ai.kindBody': 'Pagrindinis tekstas',
150
+ 'ai.kindButton': 'Mygtuko tekstas',
151
+ 'ai.actionInsertHeading': 'Įterpti kaip antraštę',
152
+ 'ai.actionInsertText': 'Įterpti kaip teksto bloką',
153
+ 'ai.actionInsertButton': 'Įterpti kaip mygtuką',
154
+ 'toast.headingAdded': 'Antraštė pridėta',
155
+ 'toast.textBlockAdded': 'Teksto blokas pridėtas',
156
+ 'toast.buttonAdded': 'Mygtukas pridėtas',
157
+ 'preview.kickerMobile': 'Peržiūra — mobilusis 375px',
158
+ 'preview.kickerDesktop': 'Peržiūra — kompiuteris {width}px',
159
+ 'action.close': 'Uždaryti',
160
+ 'toast.duplicated': 'Sudubliuota',
161
+ 'toast.fileUploadedOne': 'Įkeltas 1 failas',
162
+ 'toast.fileUploadedMany': 'Įkelta failų: {count}',
163
+ 'toast.imageReplaced': 'Vaizdas pakeistas',
164
+ 'toast.imageAdded': 'Vaizdas pridėtas į drobę',
165
+ 'toast.htmlCopied': 'HTML nukopijuotas į iškarpinę',
166
+ 'toast.templateLoaded': '{name} įkeltas',
167
+ 'toast.snippetDefaultLabel': 'Iškarpa',
168
+ 'toast.snippetInserted': '{name} įterptas',
169
+ 'toast.snippetCopied': '{name} nukopijuotas — pasirinkite teksto bloką, kad jį įterptumėte',
170
+ 'rte.textStyle': 'Teksto stilius',
171
+ 'rte.mergeTags': 'Sujungimo laukai',
172
+ 'rte.noMergeTags': 'Sujungimo laukų nėra',
173
+ 'rte.textColor': 'Teksto spalva',
174
+ 'rte.highlightColor': 'Paryškinimo spalva',
175
+ 'rte.removeHighlight': 'Pašalinti paryškinimą',
176
+ 'rte.clearFormatting': 'Išvalyti formatavimą',
177
+ 'action.downloadPng': 'Atsisiųsti PNG',
178
+ 'action.screenshot': 'Ekrano kopija',
179
+ 'action.screenshotHint': 'Peržiūrėti visą šabloną kaip paveikslėlį ir jį atsisiųsti',
180
+ 'toast.pngSaved': 'Ekrano kopija atsisiųsta',
181
+ 'toast.pngFailed': 'Ekrano kopija nepavyko — nepavyko įkelti išorinio paveikslėlio',
182
+ 'toast.pngCopied': 'Ekrano kopija nukopijuota į iškarpinę',
183
+ 'toast.pngCopyFailed': 'Ši naršyklė nepriėmė paveikslėlio į iškarpinę',
184
+ 'story.kicker': 'Ekrano kopija',
185
+ 'story.rendering': 'Kuriama ekrano kopija',
186
+ 'story.renderingHint': 'Kiekvienas blokas piešiamas 2× — ilgame šablone tai užtrunka akimirką.',
187
+ 'story.failed': 'Ekrano kopija nepavyko',
188
+ 'story.failedHint': 'Nepavyko įkelti šablono paveikslėlio fiksavimui.',
189
+ 'story.retry': 'Bandyti dar kartą',
190
+ 'story.play': 'Paleisti',
191
+ 'story.pause': 'Pristabdyti',
192
+ 'story.replay': 'Paleisti iš naujo',
193
+ 'story.copy': 'Kopijuoti',
194
+ 'story.meta': '{w}×{h} · ekranas {i} iš {n}',
195
+ 'footer.poweredBy': 'Veikia su SELISE Blocks © 2026',
196
+ };