tiptapify 0.3.5 → 0.4.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 (137) hide show
  1. package/dist/content.css +28 -0
  2. package/dist/tiptapify.css +1 -1
  3. package/dist/tiptapify.mjs +110770 -65623
  4. package/dist/tiptapify.umd.js +106 -89
  5. package/index.d.ts +34 -0
  6. package/package.json +3 -2
  7. package/src/components/ImageBubbleMenu.vue +5 -33
  8. package/src/components/MenuBubble.test.ts +120 -0
  9. package/src/components/MenuBubble.vue +124 -134
  10. package/src/components/MenuFloating.vue +48 -45
  11. package/src/components/Tiptapify.upload.test.ts +10 -0
  12. package/src/components/Tiptapify.vue +85 -45
  13. package/src/components/Toolbar/Index.vue +10 -0
  14. package/src/components/UI/BubbleRow.vue +41 -0
  15. package/src/components/UI/TiptapifyDialog.test.ts +37 -3
  16. package/src/components/UI/TiptapifyDialog.vue +15 -4
  17. package/src/components/editorExtensions.test.ts +9 -0
  18. package/src/components/editorExtensions.ts +21 -1
  19. package/src/composables/fakeUploadEndpoint.ts +65 -0
  20. package/src/composables/useTiptapifyConfig.ts +19 -0
  21. package/src/composables/useTiptapifyLinkPreview.test.ts +51 -0
  22. package/src/composables/useTiptapifyLinkPreview.ts +60 -0
  23. package/src/composables/useTiptapifyUpload.test.ts +96 -0
  24. package/src/composables/useTiptapifyUpload.ts +126 -0
  25. package/src/extensions/components/ai/Dialog.test.ts +335 -0
  26. package/src/extensions/components/ai/Dialog.vue +607 -310
  27. package/src/extensions/components/ai/backend.test.ts +1 -0
  28. package/src/extensions/components/ai/backend.ts +2 -1
  29. package/src/extensions/components/ai/context.test.ts +149 -0
  30. package/src/extensions/components/ai/context.ts +145 -0
  31. package/src/extensions/components/ai/diff.test.ts +65 -0
  32. package/src/extensions/components/ai/diff.ts +120 -0
  33. package/src/extensions/components/ai/errors.test.ts +45 -0
  34. package/src/extensions/components/ai/errors.ts +67 -0
  35. package/src/extensions/components/ai/result.test.ts +144 -0
  36. package/src/extensions/components/ai/result.ts +101 -0
  37. package/src/extensions/components/ai/thinking.test.ts +45 -0
  38. package/src/extensions/components/ai/thinking.ts +58 -0
  39. package/src/extensions/components/formatExtra/sub/Button.vue +1 -1
  40. package/src/extensions/components/formatExtra/sup/Button.vue +1 -1
  41. package/src/extensions/components/media/iframe/Button.vue +6 -7
  42. package/src/extensions/components/media/iframe/IframeDialog.test.ts +177 -0
  43. package/src/extensions/components/media/iframe/IframeDialog.vue +477 -105
  44. package/src/extensions/components/media/iframe/embed.test.ts +123 -0
  45. package/src/extensions/components/media/iframe/embed.ts +236 -0
  46. package/src/extensions/components/media/iframe/index.test.ts +123 -0
  47. package/src/extensions/components/media/iframe/index.ts +92 -10
  48. package/src/extensions/components/media/image/ImageDialog.vue +430 -132
  49. package/src/extensions/components/media/image/caption.test.ts +66 -1
  50. package/src/extensions/components/media/image/caption.ts +27 -1
  51. package/src/extensions/components/media/image/imageDialog.test.ts +200 -0
  52. package/src/extensions/components/media/image/imageDialog.ts +114 -0
  53. package/src/extensions/components/media/image/index.ts +2 -1
  54. package/src/extensions/components/media/link/Button.test.ts +96 -0
  55. package/src/extensions/components/media/link/Button.vue +6 -2
  56. package/src/extensions/components/media/link/LinkDialog.display.test.ts +363 -0
  57. package/src/extensions/components/media/link/LinkDialog.vue +687 -61
  58. package/src/extensions/components/media/link/index.ts +111 -6
  59. package/src/extensions/components/media/link/link.marks.test.ts +89 -0
  60. package/src/extensions/components/media/link/linkDialog.test.ts +296 -0
  61. package/src/extensions/components/media/link/linkDialog.ts +154 -0
  62. package/src/extensions/components/media/linkCard/PasteCardMenu.test.ts +133 -0
  63. package/src/extensions/components/media/linkCard/PasteCardMenu.vue +168 -0
  64. package/src/extensions/components/media/linkCard/index.test.ts +146 -0
  65. package/src/extensions/components/media/linkCard/index.ts +177 -0
  66. package/src/extensions/components/media/linkCard/linkCardDialog.test.ts +87 -0
  67. package/src/extensions/components/media/linkCard/linkCardDialog.ts +62 -0
  68. package/src/extensions/components/media/linkCard/linkPreview.test.ts +102 -0
  69. package/src/extensions/components/media/linkCard/linkPreview.ts +84 -0
  70. package/src/extensions/components/media/linkCard/makeLinkCard.test.ts +59 -0
  71. package/src/extensions/components/media/linkCard/makeLinkCard.ts +58 -0
  72. package/src/extensions/components/media/linkCard/pasteCard.test.ts +190 -0
  73. package/src/extensions/components/media/linkCard/pasteCard.ts +153 -0
  74. package/src/extensions/components/media/video/Button.vue +2 -1
  75. package/src/extensions/components/media/video/VideoDialog.test.ts +233 -0
  76. package/src/extensions/components/media/video/VideoDialog.vue +748 -59
  77. package/src/extensions/components/media/video/index.test.ts +154 -0
  78. package/src/extensions/components/media/video/index.ts +70 -5
  79. package/src/extensions/components/media/video/providers.test.ts +148 -0
  80. package/src/extensions/components/media/video/providers.ts +241 -0
  81. package/src/extensions/components/media/video/videoFile.test.ts +98 -0
  82. package/src/extensions/components/media/video/videoFile.ts +142 -0
  83. package/src/extensions/components/misc/fullscreen/Button.test.ts +55 -0
  84. package/src/extensions/components/misc/fullscreen/Button.vue +2 -2
  85. package/src/extensions/components/style/StyleColor.test.ts +255 -0
  86. package/src/extensions/components/style/StyleColor.vue +358 -208
  87. package/src/extensions/components/style/color/Button.vue +1 -3
  88. package/src/extensions/components/style/color/colors.test.ts +191 -0
  89. package/src/extensions/components/style/color/colors.ts +168 -0
  90. package/src/extensions/components/style/highlight/Button.vue +1 -3
  91. package/src/i18n/locales/ar.json +226 -23
  92. package/src/i18n/locales/bg.json +225 -22
  93. package/src/i18n/locales/ch.json +226 -23
  94. package/src/i18n/locales/cz.json +226 -23
  95. package/src/i18n/locales/de.json +226 -23
  96. package/src/i18n/locales/el.json +225 -22
  97. package/src/i18n/locales/en.json +225 -22
  98. package/src/i18n/locales/es.json +226 -23
  99. package/src/i18n/locales/et.json +225 -22
  100. package/src/i18n/locales/fi.json +226 -23
  101. package/src/i18n/locales/fr.json +226 -23
  102. package/src/i18n/locales/he.json +225 -22
  103. package/src/i18n/locales/hi.json +225 -22
  104. package/src/i18n/locales/hr.json +225 -22
  105. package/src/i18n/locales/hu.json +226 -23
  106. package/src/i18n/locales/id.json +225 -22
  107. package/src/i18n/locales/it.json +226 -23
  108. package/src/i18n/locales/ja.json +226 -23
  109. package/src/i18n/locales/ko.json +226 -23
  110. package/src/i18n/locales/la.json +226 -23
  111. package/src/i18n/locales/lt.json +226 -23
  112. package/src/i18n/locales/nl.json +226 -23
  113. package/src/i18n/locales/no.json +227 -24
  114. package/src/i18n/locales/pl.json +226 -23
  115. package/src/i18n/locales/pt-BR.json +225 -22
  116. package/src/i18n/locales/pt.json +226 -23
  117. package/src/i18n/locales/ro.json +225 -22
  118. package/src/i18n/locales/ru.json +227 -24
  119. package/src/i18n/locales/se.json +226 -23
  120. package/src/i18n/locales/sk.json +225 -22
  121. package/src/i18n/locales/sl.json +225 -22
  122. package/src/i18n/locales/sr.json +225 -22
  123. package/src/i18n/locales/th.json +226 -23
  124. package/src/i18n/locales/tr.json +226 -23
  125. package/src/i18n/locales/uk.json +227 -24
  126. package/src/i18n/locales/vi.json +226 -23
  127. package/src/index.ts +8 -0
  128. package/src/skins/registry.test.ts +1 -1
  129. package/src/skins/tokens.reachability.test.ts +1 -0
  130. package/src/skins/tokens.ts +3 -3
  131. package/src/types/editor.ts +40 -1
  132. package/src/utils/contentStyles.test.ts +116 -0
  133. package/src/utils/contentStyles.ts +175 -0
  134. package/src/utils/mediaSize.test.ts +22 -0
  135. package/src/utils/mediaSize.ts +27 -0
  136. package/src/utils/validateHref.test.ts +47 -2
  137. package/src/utils/validateHref.ts +47 -7
@@ -4,7 +4,20 @@
4
4
  "undo": "पूर्ववत् करें"
5
5
  },
6
6
  "ai": {
7
+ "another_version": "दूसरा संस्करण",
7
8
  "append": "अंत में जोड़ें",
9
+ "change_vs_original": "मूल की तुलना में {percent}",
10
+ "changes": "बदलाव",
11
+ "context": {
12
+ "characters": "{n} अक्षर",
13
+ "cursor": "कर्सर की जगह पर",
14
+ "document": "पूरा टेक्स्ट",
15
+ "excerpt": "“{text}”",
16
+ "paragraphs": "{n} अनुच्छेद",
17
+ "selection": "चयनित: {paragraphs}, {characters}"
18
+ },
19
+ "copied": "कॉपी किया गया",
20
+ "copy": "कॉपी करें",
8
21
  "defaultExamples": {
9
22
  "expand": {
10
23
  "prompt": "इस टेक्स्ट को एक अधिक विस्तृत संस्करण में विस्तारित करें।",
@@ -23,19 +36,58 @@
23
36
  "title": "सारांश"
24
37
  }
25
38
  },
39
+ "effort_label": {
40
+ "default": "स्तर: डिफ़ॉल्ट",
41
+ "high": "स्तर: उच्च",
42
+ "low": "स्तर: निम्न",
43
+ "max": "स्तर: अधिकतम",
44
+ "medium": "स्तर: मध्यम",
45
+ "xhigh": "स्तर: बहुत उच्च"
46
+ },
47
+ "effort_levels": {
48
+ "default": "डिफ़ॉल्ट",
49
+ "high": "उच्च",
50
+ "low": "निम्न",
51
+ "max": "अधिकतम",
52
+ "medium": "मध्यम",
53
+ "xhigh": "बहुत उच्च"
54
+ },
26
55
  "error": "AI उत्पादन विफल रहा",
56
+ "errors": {
57
+ "auth": "AI सेवा ने अनुरोध अस्वीकार किया: API कुंजी या पहुँच अधिकार जाँचें।",
58
+ "network": "AI सेवा से संपर्क नहीं हो सका। जाँचें कि वह चल रही है और इस पेज से अनुरोधों की अनुमति देती है (CORS): कारण ब्राउज़र कंसोल में दिखता है।",
59
+ "not_found": "AI सेवा का पता नहीं मिला: एंडपॉइंट का पथ जाँचें।",
60
+ "rate_limit": "AI सेवा को बहुत अधिक अनुरोध। थोड़ा रुककर फिर से कोशिश करें।",
61
+ "request": "AI सेवा अनुरोध को संसाधित नहीं कर सकी।",
62
+ "service_says": "सेवा का उत्तर:",
63
+ "timeout": "AI सेवा ने समय पर उत्तर नहीं दिया। फिर से कोशिश करें।",
64
+ "unavailable": "AI सेवा उपलब्ध नहीं है: शायद वह मॉडल लोड कर रही है या व्यस्त है। बाद में कोशिश करें।"
65
+ },
27
66
  "generate": "उत्पादित करें",
28
67
  "insert": "Insrt करें",
29
- "limit_exceeded": "परिणाम एडिटर की अक्षर सीमा से अधिक है। टेक्स्ट छोटा करें और पुनः लागू करें।",
68
+ "insert_below": "नीचे डालें",
69
+ "limit_exceeded": "परिणाम एडिटर की अक्षर सीमा से लंबा है। छोटा संस्करण माँगें।",
30
70
  "loading": "उत्पादित हो रहा है...",
31
71
  "prompt": "प्रॉम्प्ट",
72
+ "prompt_placeholder": "टेक्स्ट लिखने या संपादित करने के लिए कहें",
32
73
  "quick_prompts": "त्वरित प्रॉम्प्ट",
33
74
  "reasoning_effort": "तर्क प्रयास",
34
- "replace": "बदलें",
75
+ "replace_selection": "चयन बदलें",
35
76
  "result": "परिणाम",
77
+ "send_hint": "Enter — भेजें",
36
78
  "stop": "रोकें",
37
79
  "thinking": "सोच रहा है",
38
- "title": "AI लेखन",
80
+ "thinking_label": {
81
+ "off": "सोच: बंद",
82
+ "on": "सोच: चालू"
83
+ },
84
+ "thinking_now": "सोच रहा है…",
85
+ "thinking_states": {
86
+ "off": "बंद",
87
+ "on": "चालू"
88
+ },
89
+ "thought_for": "{seconds} सेकंड सोचा",
90
+ "title": "सहायक",
39
91
  "unavailable": "इस क्रिया का उपयोग करने के लिए एक AI प्रदाता कॉन्फ़िगर करें"
40
92
  },
41
93
  "alignment": "संरेखण",
@@ -51,50 +103,163 @@
51
103
  "defaultValue": "निर्दिष्ट मान",
52
104
  "dialog": {
53
105
  "apply": "लागू करें",
106
+ "cancel": "रद्द करें",
54
107
  "clear": "साफ़ करें",
55
108
  "close": "बंद करें",
56
109
  "iframe": {
57
- "dialog_title": "iframe जोड़ें/संपादित करें",
58
- "frameborder": "iframe बॉर्डर",
110
+ "advanced": "उन्नत",
111
+ "allow": "अनुमतियाँ (allow)",
112
+ "allow_hint": "उदाहरण: autoplay; fullscreen; clipboard-write",
113
+ "apply_failed": "एम्बेड यहाँ नहीं डाला जा सकता।",
114
+ "border": "बॉर्डर दिखाएँ",
115
+ "code_invalid": "पते वाले एक ही iframe का कोड पेस्ट करें। स्क्रिप्ट या अन्य टैग वाले कोड समर्थित नहीं हैं।",
116
+ "code_parsed": "कोड पहचाना गया: {fields}।",
59
117
  "height": "ऊँचाई",
118
+ "input": "लिंक या एम्बेड कोड",
119
+ "input_hint": "साइट के शेयर या एम्बेड मेनू से पता या iframe कोड पेस्ट करें।",
120
+ "keep_ratio": "अनुपात बनाए रखें",
121
+ "lazy": "स्क्रॉल करके दिखने पर लोड करें",
60
122
  "name": "नाम",
61
- "src": "स्रोत",
62
- "src_invalid": "इनपुट एक अमान्य URL है",
63
- "title": "शीर्षक",
123
+ "parsed_allow": "अनुमतियाँ",
124
+ "parsed_fullscreen": "फ़ुलस्क्रीन",
125
+ "parsed_loading": "विलंबित लोडिंग",
126
+ "parsed_name": "नाम",
127
+ "parsed_sandbox": "sandbox",
128
+ "parsed_size": "आकार {width} × {height}",
129
+ "parsed_src": "पता",
130
+ "parsed_title": "शीर्षक",
131
+ "preview": "एम्बेड पूर्वावलोकन",
132
+ "preview_empty": "पता मान्य होने पर पूर्वावलोकन दिखाई देगा।",
133
+ "sandbox": "सैंडबॉक्स (sandbox)",
134
+ "sandbox_hint": "खाली: कोई प्रतिबंध नहीं। उदाहरण: allow-scripts allow-same-origin",
135
+ "size": "आकार",
136
+ "size_custom": "कस्टम",
137
+ "size_invalid": "आकार पिक्सेल में दर्ज करें।",
138
+ "size_responsive": "रिस्पॉन्सिव",
139
+ "size_responsive_hint": "{ratio} अनुपात में टेक्स्ट की चौड़ाई भरता है।",
140
+ "src_invalid": "एम्बेड के लिए https:// या http:// से शुरू होने वाला वेब पता चाहिए।",
141
+ "src_protocol": "पते में प्रोटोकॉल जोड़ें: https:// या http://।",
142
+ "src_required": "लिंक या एम्बेड कोड पेस्ट करें।",
143
+ "title_edit": "एम्बेड संपादित करें",
144
+ "title_insert": "सामग्री एम्बेड करें",
145
+ "title_missing": "स्क्रीन रीडर एम्बेड को उसके शीर्षक से पढ़ते हैं। बताएँ कि इसमें क्या दिखाया गया है।",
146
+ "title_text": "स्क्रीन रीडर के लिए शीर्षक",
64
147
  "width": "चौड़ाई"
65
148
  },
66
149
  "image": {
67
- "alt": "वैकल्पिक",
150
+ "alt_missing": "वैकल्पिक टेक्स्ट के बिना स्क्रीन रीडर और सर्च इंजन चित्र को नहीं पढ़ सकते।",
151
+ "alt_text": "स्क्रीन रीडर के लिए वैकल्पिक टेक्स्ट",
152
+ "apply_error": "चित्र यहाँ सहेजा नहीं जा सका।",
68
153
  "caption": "कैप्शन",
69
154
  "caption_placeholder": "कैप्शन जोड़ें…",
70
- "dialog_title": "चित्र जोड़ें/संपादित करें",
71
155
  "height": "ऊँचाई",
72
156
  "keep_ratio": "अनुपात बनाए रखें",
157
+ "original_size": "मूल {width} × {height}",
158
+ "position": "स्थिति",
159
+ "position_center": "बीच में",
160
+ "position_left": "बाएँ",
161
+ "position_right": "दाएँ",
162
+ "remove_error": "चित्र हटाया नहीं जा सका।",
163
+ "size": "आकार",
164
+ "size_custom": "कस्टम",
165
+ "size_original": "मूल",
166
+ "size_text": "टेक्स्ट की चौड़ाई",
167
+ "source_upload": "अपलोड",
168
+ "source_url": "URL से",
73
169
  "src": "स्रोत",
74
- "title": "चित्र जोड़ें/संपादित करें",
170
+ "title_edit": "चित्र संपादित करें",
171
+ "title_insert": "चित्र डालें",
172
+ "upload_cancel": "अपलोड रद्द करें",
173
+ "upload_error": "चित्र अपलोड नहीं किया जा सका।",
174
+ "upload_file": "चित्र फ़ाइल",
75
175
  "width": "चौड़ाई"
76
176
  },
177
+ "insert": "डालें",
77
178
  "link": {
179
+ "advanced": "उन्नत",
180
+ "apply_error": "लिंक लागू नहीं किया जा सका।",
78
181
  "class": "CSS क्लास",
79
182
  "href": "लिंक पता",
80
- "href_error": "अमान्य लिंक पता",
81
- "rel": "Rel",
82
- "target": "कहाँ खोलें...",
83
- "target_blank": "नई विंडो",
84
- "target_self": "वर्तमान विंडो",
85
- "title": "लिंक जोड़ें/संपादित करें"
183
+ "href_invalid": "लिंक का पता दर्ज करें, जैसे https://example.com, #एंकर या /पेज।",
184
+ "new_tab": "नए टैब में खोलें",
185
+ "protocol_missing": "कोई प्रोटोकॉल नहीं। जोड़ें:",
186
+ "rel": "rel एट्रिब्यूट",
187
+ "rel_hint": "कोई भी मान: Enter, स्पेस या कॉमा उसे जोड़ता है।",
188
+ "rel_new_tab_hint": "नए टैब में खुलने वाले लिंक को noopener और noreferrer भी मिलते हैं।",
189
+ "remove": "लिंक हटाएँ",
190
+ "text": "टेक्स्ट",
191
+ "text_hint": "पते को टेक्स्ट के रूप में उपयोग करने के लिए खाली छोड़ें।",
192
+ "title_edit": "लिंक संपादित करें",
193
+ "title_insert": "लिंक डालें"
194
+ },
195
+ "linkCard": {
196
+ "apply_failed": "कार्ड यहाँ नहीं डाला जा सकता।",
197
+ "description": "विवरण",
198
+ "display": "इस रूप में दिखाएँ",
199
+ "display_card": "कार्ड",
200
+ "display_link": "लिंक",
201
+ "fetch_failed": "पेज का डेटा लोड नहीं किया जा सका: {error}। आप फ़ील्ड स्वयं भर सकते हैं।",
202
+ "href_invalid": "किसी पेज का पूरा पता दर्ज करें, जैसे https://example.com/page।",
203
+ "image": "चित्र",
204
+ "image_choose": "चित्र चुनें",
205
+ "image_failed": "चित्र अपलोड नहीं किया जा सका। फिर से प्रयास करें।",
206
+ "image_remove": "चित्र हटाएँ",
207
+ "image_replace": "बदलें",
208
+ "layout": "प्रदर्शन",
209
+ "layout_compact": "संक्षिप्त",
210
+ "layout_large": "बड़ा",
211
+ "layout_text": "चित्र के बिना",
212
+ "loading": "पेज का डेटा लोड हो रहा है…",
213
+ "page_title": "शीर्षक",
214
+ "paste_dismiss": "लिंक रखें",
215
+ "paste_error": "इस पेज का कोई पूर्वदर्शन नहीं है।",
216
+ "protocol_missing": "पता https:// या http:// से शुरू करें।",
217
+ "refresh": "डेटा रीफ़्रेश करें",
218
+ "site_name": "साइट का नाम",
219
+ "title_edit": "लिंक कार्ड संपादित करें",
220
+ "title_insert": "लिंक कार्ड डालें"
86
221
  },
87
222
  "preview": {
88
223
  "title": "पूर्वदृश्य"
89
224
  },
225
+ "remove": "हटाएँ",
226
+ "save": "सहेजें",
90
227
  "source": {
91
228
  "prettify": "सजाएँ",
92
229
  "title": "स्रोत कोड देखें"
93
230
  },
94
231
  "video": {
232
+ "apply_failed": "वीडियो यहाँ नहीं डाला जा सकता।",
233
+ "autoplay": "बिना आवाज़ के अपने-आप चलाएँ",
234
+ "controls": "नियंत्रण दिखाएँ",
95
235
  "height": "ऊँचाई",
96
- "src": "स्रोत",
97
- "title": "वीडियो जोड़ें/संपादित करें",
236
+ "keep_ratio": "अनुपात बनाए रखें",
237
+ "loop": "लूप",
238
+ "poster": "पोस्टर",
239
+ "poster_choose": "चित्र चुनें",
240
+ "poster_hint": "वैकल्पिक। वीडियो शुरू होने तक दिखाई देता है।",
241
+ "poster_url": "पोस्टर चित्र का URL",
242
+ "preview": "वीडियो पूर्वदर्शन",
243
+ "preview_empty": "लिंक पहचाने जाने पर पूर्वदर्शन दिखाई देगा।",
244
+ "size": "आकार",
245
+ "size_custom": "कस्टम",
246
+ "size_invalid": "आकार पिक्सेल में दर्ज करें।",
247
+ "size_responsive": "रिस्पॉन्सिव",
248
+ "size_responsive_embed": "रिस्पॉन्सिव 16:9",
249
+ "source_upload": "अपलोड",
250
+ "source_url": "URL से",
251
+ "start": "शुरुआत",
252
+ "start_invalid": "समय m:ss या h:mm:ss के रूप में दर्ज करें।",
253
+ "title_edit": "वीडियो संपादित करें",
254
+ "title_insert": "वीडियो डालें",
255
+ "upload_choose": "वीडियो फ़ाइल चुनें",
256
+ "upload_failed": "फ़ाइल अपलोड नहीं की जा सकी। फिर से प्रयास करें।",
257
+ "upload_progress": "{loaded} / {total} MB",
258
+ "upload_replace": "बदलें",
259
+ "url": "वीडियो लिंक",
260
+ "url_file_protocol": "फ़ाइल के लिंक में प्रोटोकॉल जोड़ें: https:// या http://।",
261
+ "url_required": "YouTube, Vimeo या वीडियो फ़ाइल का लिंक चिपकाएँ।",
262
+ "url_unsupported": "YouTube या Vimeo का लिंक, या वीडियो फ़ाइल (.mp4, .webm, .ogg, .mov) का लिंक इस्तेमाल करें। दूसरी साइटों के लिए एम्बेड कोड इस्तेमाल करें।",
98
263
  "width": "चौड़ाई"
99
264
  }
100
265
  },
@@ -171,7 +336,7 @@
171
336
  "search": "इमोजी खोजें...",
172
337
  "title": "इमोजी"
173
338
  },
174
- "iframe": "iframe",
339
+ "iframe": "एम्बेड",
175
340
  "image": "चित्र",
176
341
  "image_toolbar": {
177
342
  "align_left": "Align left",
@@ -213,9 +378,47 @@
213
378
  "style": {
214
379
  "color": {
215
380
  "custom": "कस्टम रंग",
381
+ "default": "डिफ़ॉल्ट",
382
+ "eyedropper": "स्क्रीन से रंग चुनें",
383
+ "hex": "हेक्स रंग",
384
+ "hex_invalid": "रंग #rgb या #rrggbb के रूप में दर्ज करें।",
216
385
  "highlight": "हाईलाइट रंग",
217
- "text": "टेक्स्ट रंग",
218
- "unset": "रंग हटाएँ"
386
+ "names": {
387
+ "amber": "एम्बर",
388
+ "black": "काला",
389
+ "blue": "नीला",
390
+ "dark_amber": "गहरा एम्बर",
391
+ "dark_blue": "गहरा नीला",
392
+ "dark_green": "गहरा हरा",
393
+ "dark_grey": "गहरा स्लेटी",
394
+ "dark_orange": "गहरा नारंगी",
395
+ "dark_pink": "गहरा गुलाबी",
396
+ "dark_purple": "गहरा बैंगनी",
397
+ "dark_red": "गहरा लाल",
398
+ "dark_teal": "गहरा टील",
399
+ "green": "हरा",
400
+ "grey": "स्लेटी",
401
+ "light_amber": "हल्का एम्बर",
402
+ "light_blue": "हल्का नीला",
403
+ "light_green": "हल्का हरा",
404
+ "light_grey": "हल्का स्लेटी",
405
+ "light_orange": "हल्का नारंगी",
406
+ "light_pink": "हल्का गुलाबी",
407
+ "light_purple": "हल्का बैंगनी",
408
+ "light_red": "हल्का लाल",
409
+ "light_teal": "हल्का टील",
410
+ "medium_grey": "मध्यम स्लेटी",
411
+ "orange": "नारंगी",
412
+ "pale_grey": "फीका स्लेटी",
413
+ "pink": "गुलाबी",
414
+ "purple": "बैंगनी",
415
+ "red": "लाल",
416
+ "teal": "टील",
417
+ "white": "सफ़ेद"
418
+ },
419
+ "no_highlight": "कोई हाइलाइट नहीं",
420
+ "recent": "हाल के",
421
+ "text": "टेक्स्ट रंग"
219
422
  },
220
423
  "fontFamily": "फ़ॉन्ट परिवार",
221
424
  "fontSize": "फ़ॉन्ट आकार",
@@ -4,7 +4,20 @@
4
4
  "undo": "Poništi"
5
5
  },
6
6
  "ai": {
7
+ "another_version": "Druga verzija",
7
8
  "append": "Dodaj na kraj",
9
+ "change_vs_original": "{percent} u odnosu na izvornik",
10
+ "changes": "Promjene",
11
+ "context": {
12
+ "characters": "{n} zn.",
13
+ "cursor": "Na položaju pokazivača",
14
+ "document": "Cijeli tekst",
15
+ "excerpt": "„{text}“",
16
+ "paragraphs": "{n} odl.",
17
+ "selection": "Odabrano: {paragraphs}, {characters}"
18
+ },
19
+ "copied": "Kopirano",
20
+ "copy": "Kopiraj",
8
21
  "defaultExamples": {
9
22
  "expand": {
10
23
  "prompt": "Proširite ovaj tekst u detaljniju verziju.",
@@ -23,19 +36,58 @@
23
36
  "title": "Sažetak"
24
37
  }
25
38
  },
39
+ "effort_label": {
40
+ "default": "Razina: zadana",
41
+ "high": "Razina: visoka",
42
+ "low": "Razina: niska",
43
+ "max": "Razina: najveća",
44
+ "medium": "Razina: srednja",
45
+ "xhigh": "Razina: vrlo visoka"
46
+ },
47
+ "effort_levels": {
48
+ "default": "Zadana",
49
+ "high": "Visoka",
50
+ "low": "Niska",
51
+ "max": "Najveća",
52
+ "medium": "Srednja",
53
+ "xhigh": "Vrlo visoka"
54
+ },
26
55
  "error": "Generiranje AI nije uspjelo",
56
+ "errors": {
57
+ "auth": "AI usluga odbila je zahtjev: provjerite API ključ ili prava pristupa.",
58
+ "network": "Nije moguće pristupiti AI usluzi. Provjerite radi li i dopušta li zahtjeve s ove stranice (CORS): uzrok prikazuje konzola preglednika.",
59
+ "not_found": "Adresa AI usluge nije pronađena: provjerite putanju krajnje točke.",
60
+ "rate_limit": "Previše zahtjeva prema AI usluzi. Pričekajte trenutak i pokušajte ponovno.",
61
+ "request": "AI usluga nije mogla obraditi zahtjev.",
62
+ "service_says": "Odgovor usluge:",
63
+ "timeout": "AI usluga nije odgovorila na vrijeme. Pokušajte ponovno.",
64
+ "unavailable": "AI usluga nije dostupna: možda učitava model ili je zauzeta. Pokušajte kasnije."
65
+ },
27
66
  "generate": "Generiraj",
28
67
  "insert": "Umetni",
29
- "limit_exceeded": "Rezultat premašuje limit znakova u uređivaču. Skratite tekst i ponovno primijenite.",
68
+ "insert_below": "Umetni ispod",
69
+ "limit_exceeded": "Rezultat premašuje ograničenje znakova uređivača. Zatražite kraću verziju.",
30
70
  "loading": "Generiranje...",
31
71
  "prompt": "Uputstvo",
72
+ "prompt_placeholder": "Zatražite pisanje ili uređivanje teksta",
32
73
  "quick_prompts": "Brza uputstva",
33
74
  "reasoning_effort": "Napori razmišljanja",
34
- "replace": "Zamijeni",
75
+ "replace_selection": "Zamijeni odabrano",
35
76
  "result": "Rezultat",
77
+ "send_hint": "Enter — pošalji",
36
78
  "stop": "Zaustavi",
37
79
  "thinking": "Razmišljanje",
38
- "title": "AI pisanje",
80
+ "thinking_label": {
81
+ "off": "Razmišljanje: isključeno",
82
+ "on": "Razmišljanje: uključeno"
83
+ },
84
+ "thinking_now": "Razmišlja…",
85
+ "thinking_states": {
86
+ "off": "Isključeno",
87
+ "on": "Uključeno"
88
+ },
89
+ "thought_for": "Razmišljanje: {seconds} s",
90
+ "title": "Asistent",
39
91
  "unavailable": "Podesite AI pružatelja za korištenje ove akcije"
40
92
  },
41
93
  "alignment": "Poravnaj",
@@ -51,50 +103,163 @@
51
103
  "defaultValue": "Zadana vrijednost",
52
104
  "dialog": {
53
105
  "apply": "Primijeni",
106
+ "cancel": "Odustani",
54
107
  "clear": "Očisti",
55
108
  "close": "Zatvori",
56
109
  "iframe": {
57
- "dialog_title": "Dodaj/uređuj iframe",
58
- "frameborder": "Okvir iframe",
110
+ "advanced": "Napredno",
111
+ "allow": "Dopuštenja (allow)",
112
+ "allow_hint": "Na primjer: autoplay; fullscreen; clipboard-write",
113
+ "apply_failed": "Ugrađeni sadržaj ne može se umetnuti ovdje.",
114
+ "border": "Prikaži obrub",
115
+ "code_invalid": "Zalijepite kôd jednog iframe elementa s adresom. Kôdovi sa skriptama ili drugim oznakama nisu podržani.",
116
+ "code_parsed": "Kôd prepoznat: {fields}.",
59
117
  "height": "Visina",
118
+ "input": "Poveznica ili kôd za ugradnju",
119
+ "input_hint": "Zalijepite adresu ili iframe kôd iz izbornika Dijeli ili Ugradi na web-mjestu.",
120
+ "keep_ratio": "Očuvaj omjer",
121
+ "lazy": "Učitaj pri pomicanju do njega",
60
122
  "name": "Ime",
61
- "src": "Izvor",
62
- "src_invalid": "Ulaz nije ispravan URL",
63
- "title": "Naslov",
123
+ "parsed_allow": "dopuštenja",
124
+ "parsed_fullscreen": "cijeli zaslon",
125
+ "parsed_loading": "odgođeno učitavanje",
126
+ "parsed_name": "ime",
127
+ "parsed_sandbox": "sandbox",
128
+ "parsed_size": "veličina {width} × {height}",
129
+ "parsed_src": "adresa",
130
+ "parsed_title": "naslov",
131
+ "preview": "Pregled ugrađenog sadržaja",
132
+ "preview_empty": "Pregled se prikazuje kada je adresa ispravna.",
133
+ "sandbox": "Sandbox",
134
+ "sandbox_hint": "Prazno: bez ograničenja. Na primjer: allow-scripts allow-same-origin",
135
+ "size": "Veličina",
136
+ "size_custom": "Prilagođena",
137
+ "size_invalid": "Unesite veličinu u pikselima.",
138
+ "size_responsive": "Prilagodljiva",
139
+ "size_responsive_hint": "Ispunjava širinu teksta u omjeru {ratio}.",
140
+ "src_invalid": "Za ugradnju je potrebna web-adresa koja počinje s https:// ili http://.",
141
+ "src_protocol": "Dodajte protokol adresi: https:// ili http://.",
142
+ "src_required": "Zalijepite poveznicu ili kôd za ugradnju.",
143
+ "title_edit": "Uredi ugrađeni sadržaj",
144
+ "title_insert": "Ugradi sadržaj",
145
+ "title_missing": "Čitači zaslona najavljuju ugrađeni sadržaj prema naslovu. Opišite što prikazuje.",
146
+ "title_text": "Naslov za čitače zaslona",
64
147
  "width": "Širina"
65
148
  },
66
149
  "image": {
67
- "alt": "Alternativni opis",
150
+ "alt_missing": "Čitači zaslona i tražilice ne mogu pročitati sliku bez alternativnog teksta.",
151
+ "alt_text": "Alternativni tekst za čitače zaslona",
152
+ "apply_error": "Sliku nije moguće spremiti ovdje.",
68
153
  "caption": "Opis slike",
69
154
  "caption_placeholder": "Dodajte opis slike…",
70
- "dialog_title": "Dodaj/uređuj sliku",
71
155
  "height": "Visina",
72
156
  "keep_ratio": "Očuvaj omjer",
157
+ "original_size": "Izvornik {width} × {height}",
158
+ "position": "Položaj",
159
+ "position_center": "Sredina",
160
+ "position_left": "Lijevo",
161
+ "position_right": "Desno",
162
+ "remove_error": "Sliku nije moguće ukloniti.",
163
+ "size": "Veličina",
164
+ "size_custom": "Prilagođena",
165
+ "size_original": "Izvorna",
166
+ "size_text": "Širina teksta",
167
+ "source_upload": "Prijenos",
168
+ "source_url": "Putem URL-a",
73
169
  "src": "Izvor",
74
- "title": "Dodaj/uređuj sliku",
170
+ "title_edit": "Uredi sliku",
171
+ "title_insert": "Umetni sliku",
172
+ "upload_cancel": "Odustani od prijenosa",
173
+ "upload_error": "Sliku nije moguće prenijeti.",
174
+ "upload_file": "Datoteka slike",
75
175
  "width": "Širina"
76
176
  },
177
+ "insert": "Umetni",
77
178
  "link": {
179
+ "advanced": "Napredno",
180
+ "apply_error": "Poveznicu nije moguće primijeniti.",
78
181
  "class": "CSS klasa",
79
182
  "href": "Adresa poveznice",
80
- "href_error": "Neispravna adresa poveznice",
81
- "rel": "Rel",
82
- "target": "Otvori u...",
83
- "target_blank": "Novi prozor",
84
- "target_self": "Trenutni prozor",
85
- "title": "Dodaj/uređuj poveznicu"
183
+ "href_invalid": "Unesite adresu poveznice, na primjer https://example.com, #sidro ili /stranica.",
184
+ "new_tab": "Otvori u novoj kartici",
185
+ "protocol_missing": "Nema protokola. Dodaj:",
186
+ "rel": "Atributi rel",
187
+ "rel_hint": "Bilo koja vrijednost: dodaje se tipkom Enter, razmakom ili zarezom.",
188
+ "rel_new_tab_hint": "Poveznica koja se otvara u novoj kartici dobiva i noopener i noreferrer.",
189
+ "remove": "Ukloni poveznicu",
190
+ "text": "Tekst",
191
+ "text_hint": "Ostavite prazno da se adresa koristi kao tekst.",
192
+ "title_edit": "Uredi poveznicu",
193
+ "title_insert": "Umetni poveznicu"
194
+ },
195
+ "linkCard": {
196
+ "apply_failed": "Karticu nije moguće umetnuti ovdje.",
197
+ "description": "Opis",
198
+ "display": "Prikaži kao",
199
+ "display_card": "Kartica",
200
+ "display_link": "Poveznica",
201
+ "fetch_failed": "Podatke stranice nije moguće učitati: {error}. Polja možete ispuniti ručno.",
202
+ "href_invalid": "Unesite punu adresu stranice, na primjer https://example.com/page.",
203
+ "image": "Slika",
204
+ "image_choose": "Odaberi sliku",
205
+ "image_failed": "Sliku nije moguće prenijeti. Pokušajte ponovno.",
206
+ "image_remove": "Ukloni sliku",
207
+ "image_replace": "Zamijeni",
208
+ "layout": "Prikaz",
209
+ "layout_compact": "Kompaktna",
210
+ "layout_large": "Velika",
211
+ "layout_text": "Bez slike",
212
+ "loading": "Učitavanje podataka stranice…",
213
+ "page_title": "Naslov",
214
+ "paste_dismiss": "Zadrži poveznicu",
215
+ "paste_error": "Nema pregleda za ovu stranicu.",
216
+ "protocol_missing": "Započnite adresu s https:// ili http://.",
217
+ "refresh": "Osvježi podatke",
218
+ "site_name": "Naziv web-mjesta",
219
+ "title_edit": "Uredi karticu poveznice",
220
+ "title_insert": "Umetni karticu poveznice"
86
221
  },
87
222
  "preview": {
88
223
  "title": "Pregled"
89
224
  },
225
+ "remove": "Ukloni",
226
+ "save": "Spremi",
90
227
  "source": {
91
228
  "prettify": "Obradi",
92
229
  "title": "Pogledaj izvorni kod"
93
230
  },
94
231
  "video": {
232
+ "apply_failed": "Video nije moguće umetnuti ovdje.",
233
+ "autoplay": "Automatska reprodukcija bez zvuka",
234
+ "controls": "Prikaži kontrole",
95
235
  "height": "Visina",
96
- "src": "Izvor",
97
- "title": "Dodaj/uređuj video",
236
+ "keep_ratio": "Očuvaj omjer",
237
+ "loop": "Ponavljanje",
238
+ "poster": "Naslovna slika",
239
+ "poster_choose": "Odaberi sliku",
240
+ "poster_hint": "Neobavezno. Prikazuje se dok video ne počne.",
241
+ "poster_url": "URL naslovne slike",
242
+ "preview": "Pregled videa",
243
+ "preview_empty": "Pregled se prikazuje kad se poveznica prepozna.",
244
+ "size": "Veličina",
245
+ "size_custom": "Prilagođena",
246
+ "size_invalid": "Unesite veličinu u pikselima.",
247
+ "size_responsive": "Prilagodljiva",
248
+ "size_responsive_embed": "Prilagodljiva 16:9",
249
+ "source_upload": "Prijenos",
250
+ "source_url": "Putem URL-a",
251
+ "start": "Počni od",
252
+ "start_invalid": "Unesite vrijeme u obliku m:ss ili h:mm:ss.",
253
+ "title_edit": "Uredi video",
254
+ "title_insert": "Umetni video",
255
+ "upload_choose": "Odaberite videodatoteku",
256
+ "upload_failed": "Datoteku nije moguće prenijeti. Pokušajte ponovno.",
257
+ "upload_progress": "{loaded} od {total} MB",
258
+ "upload_replace": "Zamijeni",
259
+ "url": "Poveznica na video",
260
+ "url_file_protocol": "Dodajte protokol poveznici na datoteku: https:// ili http://.",
261
+ "url_required": "Zalijepite poveznicu na YouTube, Vimeo ili video datoteku.",
262
+ "url_unsupported": "Upotrijebite poveznicu na YouTube ili Vimeo ili poveznicu na video datoteku (.mp4, .webm, .ogg, .mov). Za druge stranice upotrijebite kod za ugradnju.",
98
263
  "width": "Širina"
99
264
  }
100
265
  },
@@ -171,7 +336,7 @@
171
336
  "search": "Pretraži emojije...",
172
337
  "title": "Emoji"
173
338
  },
174
- "iframe": "iframe",
339
+ "iframe": "Ugrađeni sadržaj",
175
340
  "image": "Slika",
176
341
  "image_toolbar": {
177
342
  "align_left": "Align left",
@@ -213,9 +378,47 @@
213
378
  "style": {
214
379
  "color": {
215
380
  "custom": "Prilagođena boja",
381
+ "default": "Zadano",
382
+ "eyedropper": "Uzmi boju sa zaslona",
383
+ "hex": "Heksadecimalna boja",
384
+ "hex_invalid": "Unesite boju u obliku #rgb ili #rrggbb.",
216
385
  "highlight": "Boja istaknuća",
217
- "text": "Boja teksta",
218
- "unset": "Poništi boju"
386
+ "names": {
387
+ "amber": "Jantarna",
388
+ "black": "Crna",
389
+ "blue": "Plava",
390
+ "dark_amber": "Tamnojantarna",
391
+ "dark_blue": "Tamnoplava",
392
+ "dark_green": "Tamnozelena",
393
+ "dark_grey": "Tamnosiva",
394
+ "dark_orange": "Tamnonarančasta",
395
+ "dark_pink": "Tamnoružičasta",
396
+ "dark_purple": "Tamnoljubičasta",
397
+ "dark_red": "Tamnocrvena",
398
+ "dark_teal": "Tamnoplavozelena",
399
+ "green": "Zelena",
400
+ "grey": "Siva",
401
+ "light_amber": "Svijetlojantarna",
402
+ "light_blue": "Svijetloplava",
403
+ "light_green": "Svijetlozelena",
404
+ "light_grey": "Svijetlosiva",
405
+ "light_orange": "Svijetlonarančasta",
406
+ "light_pink": "Svijetloružičasta",
407
+ "light_purple": "Svijetloljubičasta",
408
+ "light_red": "Svijetlocrvena",
409
+ "light_teal": "Svijetloplavozelena",
410
+ "medium_grey": "Srednje siva",
411
+ "orange": "Narančasta",
412
+ "pale_grey": "Blijedosiva",
413
+ "pink": "Ružičasta",
414
+ "purple": "Ljubičasta",
415
+ "red": "Crvena",
416
+ "teal": "Plavozelena",
417
+ "white": "Bijela"
418
+ },
419
+ "no_highlight": "Bez isticanja",
420
+ "recent": "Nedavne",
421
+ "text": "Boja teksta"
219
422
  },
220
423
  "fontFamily": "Obitelj fonta",
221
424
  "fontSize": "Veličina fonta",