@jjlmoya/utils-audiovisual 1.16.0 → 1.18.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 (234) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -0
  3. package/src/entries.ts +4 -1
  4. package/src/index.ts +1 -0
  5. package/src/pages/[locale]/[slug].astro +28 -12
  6. package/src/tests/locale_completeness.test.ts +2 -36
  7. package/src/tests/shared-test-helpers.ts +56 -0
  8. package/src/tests/tool_exports.test.ts +34 -0
  9. package/src/tests/tool_validation.test.ts +2 -2
  10. package/src/tool/chromaticLens/bibliography.ts +12 -0
  11. package/src/tool/chromaticLens/chromatic-lens-color-palette-extraction-online.css +39 -39
  12. package/src/tool/chromaticLens/entry.ts +2 -0
  13. package/src/tool/chromaticLens/i18n/de.ts +1 -15
  14. package/src/tool/chromaticLens/i18n/en.ts +1 -15
  15. package/src/tool/chromaticLens/i18n/es.ts +1 -13
  16. package/src/tool/chromaticLens/i18n/fr.ts +1 -13
  17. package/src/tool/chromaticLens/i18n/id.ts +1 -15
  18. package/src/tool/chromaticLens/i18n/it.ts +1 -15
  19. package/src/tool/chromaticLens/i18n/ja.ts +1 -15
  20. package/src/tool/chromaticLens/i18n/ko.ts +1 -15
  21. package/src/tool/chromaticLens/i18n/nl.ts +1 -15
  22. package/src/tool/chromaticLens/i18n/pl.ts +1 -15
  23. package/src/tool/chromaticLens/i18n/pt.ts +1 -15
  24. package/src/tool/chromaticLens/i18n/ru.ts +1 -15
  25. package/src/tool/chromaticLens/i18n/sv.ts +1 -15
  26. package/src/tool/chromaticLens/i18n/tr.ts +1 -15
  27. package/src/tool/chromaticLens/i18n/zh.ts +1 -15
  28. package/src/tool/chromaticLens/seo.astro +1 -1
  29. package/src/tool/collageMaker/bibliography.ts +8 -0
  30. package/src/tool/collageMaker/entry.ts +2 -0
  31. package/src/tool/collageMaker/free-online-photo-collage-maker-professional-compositions.css +47 -47
  32. package/src/tool/collageMaker/i18n/de.ts +1 -11
  33. package/src/tool/collageMaker/i18n/en.ts +1 -11
  34. package/src/tool/collageMaker/i18n/es.ts +1 -9
  35. package/src/tool/collageMaker/i18n/fr.ts +1 -9
  36. package/src/tool/collageMaker/i18n/id.ts +1 -11
  37. package/src/tool/collageMaker/i18n/it.ts +1 -11
  38. package/src/tool/collageMaker/i18n/ja.ts +1 -11
  39. package/src/tool/collageMaker/i18n/ko.ts +1 -11
  40. package/src/tool/collageMaker/i18n/nl.ts +1 -11
  41. package/src/tool/collageMaker/i18n/pl.ts +1 -11
  42. package/src/tool/collageMaker/i18n/pt.ts +1 -11
  43. package/src/tool/collageMaker/i18n/ru.ts +1 -11
  44. package/src/tool/collageMaker/i18n/sv.ts +1 -11
  45. package/src/tool/collageMaker/i18n/tr.ts +1 -11
  46. package/src/tool/collageMaker/i18n/zh.ts +1 -11
  47. package/src/tool/collageMaker/seo.astro +1 -1
  48. package/src/tool/depthOfFieldCalculator/bibliography.astro +15 -0
  49. package/src/tool/depthOfFieldCalculator/bibliography.ts +20 -0
  50. package/src/tool/depthOfFieldCalculator/component.astro +341 -0
  51. package/src/tool/depthOfFieldCalculator/depth-of-field-calculator.css +417 -0
  52. package/src/tool/depthOfFieldCalculator/entry.ts +52 -0
  53. package/src/tool/depthOfFieldCalculator/i18n/de.ts +141 -0
  54. package/src/tool/depthOfFieldCalculator/i18n/en.ts +141 -0
  55. package/src/tool/depthOfFieldCalculator/i18n/es.ts +141 -0
  56. package/src/tool/depthOfFieldCalculator/i18n/fr.ts +141 -0
  57. package/src/tool/depthOfFieldCalculator/i18n/id.ts +141 -0
  58. package/src/tool/depthOfFieldCalculator/i18n/it.ts +141 -0
  59. package/src/tool/depthOfFieldCalculator/i18n/ja.ts +141 -0
  60. package/src/tool/depthOfFieldCalculator/i18n/ko.ts +141 -0
  61. package/src/tool/depthOfFieldCalculator/i18n/nl.ts +141 -0
  62. package/src/tool/depthOfFieldCalculator/i18n/pl.ts +141 -0
  63. package/src/tool/depthOfFieldCalculator/i18n/pt.ts +141 -0
  64. package/src/tool/depthOfFieldCalculator/i18n/ru.ts +141 -0
  65. package/src/tool/depthOfFieldCalculator/i18n/sv.ts +141 -0
  66. package/src/tool/depthOfFieldCalculator/i18n/tr.ts +141 -0
  67. package/src/tool/depthOfFieldCalculator/i18n/zh.ts +141 -0
  68. package/src/tool/depthOfFieldCalculator/index.ts +10 -0
  69. package/src/tool/depthOfFieldCalculator/logic.ts +91 -0
  70. package/src/tool/depthOfFieldCalculator/seo.astro +15 -0
  71. package/src/tool/exifCleaner/bibliography.ts +12 -0
  72. package/src/tool/exifCleaner/entry.ts +2 -0
  73. package/src/tool/exifCleaner/exif-metadata-cleaner-remove-gps-photo-privacy.css +36 -36
  74. package/src/tool/exifCleaner/i18n/de.ts +1 -15
  75. package/src/tool/exifCleaner/i18n/en.ts +1 -15
  76. package/src/tool/exifCleaner/i18n/es.ts +1 -15
  77. package/src/tool/exifCleaner/i18n/fr.ts +1 -15
  78. package/src/tool/exifCleaner/i18n/id.ts +1 -15
  79. package/src/tool/exifCleaner/i18n/it.ts +1 -15
  80. package/src/tool/exifCleaner/i18n/ja.ts +1 -15
  81. package/src/tool/exifCleaner/i18n/ko.ts +1 -15
  82. package/src/tool/exifCleaner/i18n/nl.ts +1 -15
  83. package/src/tool/exifCleaner/i18n/pl.ts +1 -15
  84. package/src/tool/exifCleaner/i18n/pt.ts +1 -15
  85. package/src/tool/exifCleaner/i18n/ru.ts +1 -15
  86. package/src/tool/exifCleaner/i18n/sv.ts +1 -15
  87. package/src/tool/exifCleaner/i18n/tr.ts +1 -15
  88. package/src/tool/exifCleaner/i18n/zh.ts +1 -15
  89. package/src/tool/exifCleaner/seo.astro +2 -5
  90. package/src/tool/imageCompressor/bibliography.ts +12 -0
  91. package/src/tool/imageCompressor/entry.ts +2 -0
  92. package/src/tool/imageCompressor/i18n/de.ts +1 -15
  93. package/src/tool/imageCompressor/i18n/en.ts +1 -15
  94. package/src/tool/imageCompressor/i18n/es.ts +1 -13
  95. package/src/tool/imageCompressor/i18n/fr.ts +1 -13
  96. package/src/tool/imageCompressor/i18n/id.ts +1 -15
  97. package/src/tool/imageCompressor/i18n/it.ts +1 -15
  98. package/src/tool/imageCompressor/i18n/ja.ts +1 -15
  99. package/src/tool/imageCompressor/i18n/ko.ts +1 -15
  100. package/src/tool/imageCompressor/i18n/nl.ts +1 -15
  101. package/src/tool/imageCompressor/i18n/pl.ts +1 -15
  102. package/src/tool/imageCompressor/i18n/pt.ts +1 -15
  103. package/src/tool/imageCompressor/i18n/ru.ts +1 -15
  104. package/src/tool/imageCompressor/i18n/sv.ts +1 -15
  105. package/src/tool/imageCompressor/i18n/tr.ts +1 -15
  106. package/src/tool/imageCompressor/i18n/zh.ts +1 -15
  107. package/src/tool/imageCompressor/online-image-compressor-reduce-file-size-no-quality-loss.css +71 -64
  108. package/src/tool/imageCompressor/seo.astro +1 -1
  109. package/src/tool/printQualityCalculator/bibliography.ts +12 -0
  110. package/src/tool/printQualityCalculator/entry.ts +2 -0
  111. package/src/tool/printQualityCalculator/i18n/de.ts +1 -15
  112. package/src/tool/printQualityCalculator/i18n/en.ts +1 -15
  113. package/src/tool/printQualityCalculator/i18n/es.ts +1 -13
  114. package/src/tool/printQualityCalculator/i18n/fr.ts +1 -13
  115. package/src/tool/printQualityCalculator/i18n/id.ts +1 -15
  116. package/src/tool/printQualityCalculator/i18n/it.ts +1 -15
  117. package/src/tool/printQualityCalculator/i18n/ja.ts +1 -15
  118. package/src/tool/printQualityCalculator/i18n/ko.ts +1 -15
  119. package/src/tool/printQualityCalculator/i18n/nl.ts +1 -15
  120. package/src/tool/printQualityCalculator/i18n/pl.ts +1 -15
  121. package/src/tool/printQualityCalculator/i18n/pt.ts +1 -15
  122. package/src/tool/printQualityCalculator/i18n/ru.ts +1 -15
  123. package/src/tool/printQualityCalculator/i18n/sv.ts +1 -15
  124. package/src/tool/printQualityCalculator/i18n/tr.ts +1 -15
  125. package/src/tool/printQualityCalculator/i18n/zh.ts +1 -15
  126. package/src/tool/printQualityCalculator/print-quality-calculator-pixels-to-cm-dpi.css +89 -81
  127. package/src/tool/printQualityCalculator/seo.astro +2 -5
  128. package/src/tool/privacyBlur/bibliography.ts +8 -0
  129. package/src/tool/privacyBlur/entry.ts +2 -0
  130. package/src/tool/privacyBlur/i18n/de.ts +1 -11
  131. package/src/tool/privacyBlur/i18n/en.ts +1 -11
  132. package/src/tool/privacyBlur/i18n/es.ts +1 -9
  133. package/src/tool/privacyBlur/i18n/fr.ts +1 -9
  134. package/src/tool/privacyBlur/i18n/id.ts +1 -11
  135. package/src/tool/privacyBlur/i18n/it.ts +1 -11
  136. package/src/tool/privacyBlur/i18n/ja.ts +1 -11
  137. package/src/tool/privacyBlur/i18n/ko.ts +1 -11
  138. package/src/tool/privacyBlur/i18n/nl.ts +1 -11
  139. package/src/tool/privacyBlur/i18n/pl.ts +1 -11
  140. package/src/tool/privacyBlur/i18n/pt.ts +1 -11
  141. package/src/tool/privacyBlur/i18n/ru.ts +1 -11
  142. package/src/tool/privacyBlur/i18n/sv.ts +1 -11
  143. package/src/tool/privacyBlur/i18n/tr.ts +1 -11
  144. package/src/tool/privacyBlur/i18n/zh.ts +1 -11
  145. package/src/tool/privacyBlur/online-privacy-editor-pixelate-blur-faces-photos.css +36 -36
  146. package/src/tool/privacyBlur/seo.astro +1 -1
  147. package/src/tool/subtitleSync/bibliography.ts +12 -0
  148. package/src/tool/subtitleSync/entry.ts +2 -0
  149. package/src/tool/subtitleSync/i18n/de.ts +1 -13
  150. package/src/tool/subtitleSync/i18n/en.ts +1 -13
  151. package/src/tool/subtitleSync/i18n/es.ts +1 -13
  152. package/src/tool/subtitleSync/i18n/fr.ts +1 -13
  153. package/src/tool/subtitleSync/i18n/id.ts +1 -13
  154. package/src/tool/subtitleSync/i18n/it.ts +1 -13
  155. package/src/tool/subtitleSync/i18n/ja.ts +1 -13
  156. package/src/tool/subtitleSync/i18n/ko.ts +1 -13
  157. package/src/tool/subtitleSync/i18n/nl.ts +1 -13
  158. package/src/tool/subtitleSync/i18n/pl.ts +1 -13
  159. package/src/tool/subtitleSync/i18n/pt.ts +1 -13
  160. package/src/tool/subtitleSync/i18n/ru.ts +1 -13
  161. package/src/tool/subtitleSync/i18n/sv.ts +1 -13
  162. package/src/tool/subtitleSync/i18n/tr.ts +1 -13
  163. package/src/tool/subtitleSync/i18n/zh.ts +1 -13
  164. package/src/tool/subtitleSync/seo.astro +1 -1
  165. package/src/tool/subtitleSync/synchronize-srt-subtitles-online-adjust-timing-free.css +43 -43
  166. package/src/tool/timelapseCalculator/bibliography.ts +20 -0
  167. package/src/tool/timelapseCalculator/entry.ts +2 -0
  168. package/src/tool/timelapseCalculator/i18n/de.ts +1 -21
  169. package/src/tool/timelapseCalculator/i18n/en.ts +1 -21
  170. package/src/tool/timelapseCalculator/i18n/es.ts +1 -21
  171. package/src/tool/timelapseCalculator/i18n/fr.ts +1 -21
  172. package/src/tool/timelapseCalculator/i18n/id.ts +1 -21
  173. package/src/tool/timelapseCalculator/i18n/it.ts +1 -21
  174. package/src/tool/timelapseCalculator/i18n/ja.ts +1 -21
  175. package/src/tool/timelapseCalculator/i18n/ko.ts +1 -21
  176. package/src/tool/timelapseCalculator/i18n/nl.ts +1 -21
  177. package/src/tool/timelapseCalculator/i18n/pl.ts +1 -21
  178. package/src/tool/timelapseCalculator/i18n/pt.ts +1 -21
  179. package/src/tool/timelapseCalculator/i18n/ru.ts +1 -21
  180. package/src/tool/timelapseCalculator/i18n/sv.ts +1 -21
  181. package/src/tool/timelapseCalculator/i18n/tr.ts +1 -21
  182. package/src/tool/timelapseCalculator/i18n/zh.ts +1 -21
  183. package/src/tool/timelapseCalculator/seo.astro +2 -5
  184. package/src/tool/timelapseCalculator/timelapse-hyperlapse-calculator-perfect-intervals.css +44 -42
  185. package/src/tool/tvDistance/bibliography.ts +12 -0
  186. package/src/tool/tvDistance/entry.ts +2 -0
  187. package/src/tool/tvDistance/i18n/de.ts +1 -13
  188. package/src/tool/tvDistance/i18n/en.ts +1 -13
  189. package/src/tool/tvDistance/i18n/es.ts +1 -13
  190. package/src/tool/tvDistance/i18n/fr.ts +1 -13
  191. package/src/tool/tvDistance/i18n/id.ts +1 -13
  192. package/src/tool/tvDistance/i18n/it.ts +1 -13
  193. package/src/tool/tvDistance/i18n/ja.ts +1 -13
  194. package/src/tool/tvDistance/i18n/ko.ts +1 -13
  195. package/src/tool/tvDistance/i18n/nl.ts +1 -13
  196. package/src/tool/tvDistance/i18n/pl.ts +1 -13
  197. package/src/tool/tvDistance/i18n/pt.ts +1 -13
  198. package/src/tool/tvDistance/i18n/ru.ts +1 -13
  199. package/src/tool/tvDistance/i18n/sv.ts +1 -13
  200. package/src/tool/tvDistance/i18n/tr.ts +1 -13
  201. package/src/tool/tvDistance/i18n/zh.ts +1 -13
  202. package/src/tool/tvDistance/seo.astro +1 -1
  203. package/src/tool/tvDistance/tv-viewing-distance-calculator-thx-4k-optimal-screen.css +56 -56
  204. package/src/tool/videoFrameExtractor/bibliography.ts +8 -0
  205. package/src/tool/videoFrameExtractor/entry.ts +2 -0
  206. package/src/tool/videoFrameExtractor/i18n/de.ts +1 -9
  207. package/src/tool/videoFrameExtractor/i18n/en.ts +1 -9
  208. package/src/tool/videoFrameExtractor/i18n/es.ts +1 -9
  209. package/src/tool/videoFrameExtractor/i18n/fr.ts +1 -8
  210. package/src/tool/videoFrameExtractor/i18n/id.ts +1 -9
  211. package/src/tool/videoFrameExtractor/i18n/it.ts +1 -8
  212. package/src/tool/videoFrameExtractor/i18n/ja.ts +1 -9
  213. package/src/tool/videoFrameExtractor/i18n/ko.ts +1 -9
  214. package/src/tool/videoFrameExtractor/i18n/nl.ts +1 -9
  215. package/src/tool/videoFrameExtractor/i18n/pl.ts +1 -9
  216. package/src/tool/videoFrameExtractor/i18n/pt.ts +1 -9
  217. package/src/tool/videoFrameExtractor/i18n/ru.ts +1 -9
  218. package/src/tool/videoFrameExtractor/i18n/sv.ts +1 -9
  219. package/src/tool/videoFrameExtractor/i18n/tr.ts +1 -9
  220. package/src/tool/videoFrameExtractor/i18n/zh.ts +1 -9
  221. package/src/tool/videoFrameExtractor/online-video-frame-extractor-capture-hd-stills.css +55 -55
  222. package/src/tool/videoFrameExtractor/seo.astro +1 -1
  223. package/src/tools.ts +2 -0
  224. package/src/types.ts +0 -2
  225. package/src/tool/chromaticLens/style.css +0 -308
  226. package/src/tool/collageMaker/style.css +0 -386
  227. package/src/tool/exifCleaner/style.css +0 -289
  228. package/src/tool/imageCompressor/style.css +0 -503
  229. package/src/tool/printQualityCalculator/style.css +0 -491
  230. package/src/tool/privacyBlur/style.css +0 -332
  231. package/src/tool/subtitleSync/style.css +0 -325
  232. package/src/tool/timelapseCalculator/style.css +0 -285
  233. package/src/tool/tvDistance/style.css +0 -435
  234. package/src/tool/videoFrameExtractor/style.css +0 -426
@@ -1,4 +1,4 @@
1
- :global(.cm-root) {
1
+ .cm-root {
2
2
  --cm-bg: #fff;
3
3
  --cm-bg-muted: #f8fafc;
4
4
  --cm-border: #e2e8f0;
@@ -14,7 +14,7 @@
14
14
  padding: 1rem;
15
15
  }
16
16
 
17
- :global(.theme-dark .cm-root) {
17
+ .theme-dark .cm-root {
18
18
  --cm-bg: #1e293b;
19
19
  --cm-bg-muted: #0f172a;
20
20
  --cm-border: #334155;
@@ -25,7 +25,7 @@
25
25
  --cm-shadow: rgba(0,0,0,0.4);
26
26
  }
27
27
 
28
- :global(.cm-card) {
28
+ .cm-card {
29
29
  background: var(--cm-bg);
30
30
  border: 1px solid var(--cm-border);
31
31
  border-radius: var(--cm-radius);
@@ -33,7 +33,7 @@
33
33
  overflow: hidden;
34
34
  }
35
35
 
36
- :global(.cm-top-row) {
36
+ .cm-top-row {
37
37
  display: grid;
38
38
  grid-template-columns: 300px 1fr;
39
39
  gap: 0;
@@ -45,7 +45,7 @@
45
45
  }
46
46
  }
47
47
 
48
- :global(.cm-left-col) {
48
+ .cm-left-col {
49
49
  padding: 1.25rem;
50
50
  border-right: 1px solid var(--cm-border);
51
51
  display: flex;
@@ -60,7 +60,7 @@
60
60
  }
61
61
  }
62
62
 
63
- :global(.cm-drop-zone) {
63
+ .cm-drop-zone {
64
64
  position: relative;
65
65
  background: var(--cm-bg-muted);
66
66
  border: 2px dashed var(--cm-border);
@@ -76,7 +76,7 @@
76
76
  color: var(--cm-primary);
77
77
  }
78
78
 
79
- :global(.cm-drop-zone input[type="file"]) {
79
+ .cm-drop-zone input[type="file"] {
80
80
  position: absolute;
81
81
  inset: 0;
82
82
  opacity: 0;
@@ -85,32 +85,32 @@
85
85
  height: 100%;
86
86
  }
87
87
 
88
- :global(.cm-drop-zone:hover),
89
- :global(.cm-drop-zone-over) {
88
+ .cm-drop-zone:hover,
89
+ .cm-drop-zone-over {
90
90
  border-color: var(--cm-primary);
91
91
  background: var(--cm-primary-light);
92
92
  }
93
93
 
94
- :global(.cm-drop-title) {
94
+ .cm-drop-title {
95
95
  font-size: 0.9rem;
96
96
  font-weight: 700;
97
97
  color: var(--cm-text);
98
98
  margin: 0;
99
99
  }
100
100
 
101
- :global(.cm-drop-sub) {
101
+ .cm-drop-sub {
102
102
  font-size: 0.75rem;
103
103
  color: var(--cm-text-muted);
104
104
  margin: 0;
105
105
  }
106
106
 
107
- :global(.cm-drop-link) {
107
+ .cm-drop-link {
108
108
  color: var(--cm-primary);
109
109
  font-weight: 600;
110
110
  cursor: pointer;
111
111
  }
112
112
 
113
- :global(.cm-section-label) {
113
+ .cm-section-label {
114
114
  display: block;
115
115
  font-size: 0.65rem;
116
116
  font-weight: 700;
@@ -119,13 +119,13 @@
119
119
  color: var(--cm-text-muted);
120
120
  }
121
121
 
122
- :global(.cm-section-header) {
122
+ .cm-section-header {
123
123
  display: flex;
124
124
  justify-content: space-between;
125
125
  align-items: center;
126
126
  }
127
127
 
128
- :global(.cm-badge) {
128
+ .cm-badge {
129
129
  background: var(--cm-primary-light);
130
130
  color: var(--cm-primary);
131
131
  font-size: 0.65rem;
@@ -134,14 +134,14 @@
134
134
  border-radius: 9999px;
135
135
  }
136
136
 
137
- :global(.cm-thumbs) {
137
+ .cm-thumbs {
138
138
  display: grid;
139
139
  grid-template-columns: repeat(auto-fill, minmax(48px, 1fr));
140
140
  gap: 0.35rem;
141
141
  margin-top: 0.5rem;
142
142
  }
143
143
 
144
- :global(.cm-thumb) {
144
+ .cm-thumb {
145
145
  position: relative;
146
146
  aspect-ratio: 1;
147
147
  border-radius: 0.4rem;
@@ -150,18 +150,18 @@
150
150
  transition: border-color 0.15s;
151
151
  }
152
152
 
153
- :global(.cm-thumb:hover) {
153
+ .cm-thumb:hover {
154
154
  border-color: var(--cm-primary);
155
155
  }
156
156
 
157
- :global(.cm-thumb img) {
157
+ .cm-thumb img {
158
158
  width: 100%;
159
159
  height: 100%;
160
160
  object-fit: cover;
161
161
  display: block;
162
162
  }
163
163
 
164
- :global(.cm-thumb-num) {
164
+ .cm-thumb-num {
165
165
  position: absolute;
166
166
  bottom: 2px;
167
167
  left: 3px;
@@ -172,7 +172,7 @@
172
172
  line-height: 1;
173
173
  }
174
174
 
175
- :global(.cm-thumb-del) {
175
+ .cm-thumb-del {
176
176
  position: absolute;
177
177
  top: 2px;
178
178
  right: 2px;
@@ -190,15 +190,15 @@
190
190
  transition: background 0.15s;
191
191
  }
192
192
 
193
- :global(.cm-thumb:hover .cm-thumb-del) {
193
+ .cm-thumb:hover .cm-thumb-del {
194
194
  display: flex;
195
195
  }
196
196
 
197
- :global(.cm-thumb-del:hover) {
197
+ .cm-thumb-del:hover {
198
198
  background: #dc2626;
199
199
  }
200
200
 
201
- :global(.cm-preview-col) {
201
+ .cm-preview-col {
202
202
  padding: 1.25rem;
203
203
  display: flex;
204
204
  flex-direction: column;
@@ -206,7 +206,7 @@
206
206
  min-height: 260px;
207
207
  }
208
208
 
209
- :global(.cm-preview-placeholder) {
209
+ .cm-preview-placeholder {
210
210
  flex: 1;
211
211
  background: var(--cm-bg-muted);
212
212
  border: 2px dashed var(--cm-border);
@@ -219,12 +219,12 @@
219
219
  color: var(--cm-text-muted);
220
220
  }
221
221
 
222
- :global(.cm-preview-placeholder p) {
222
+ .cm-preview-placeholder p {
223
223
  font-size: 0.8rem;
224
224
  margin: 0;
225
225
  }
226
226
 
227
- :global(.cm-canvas) {
227
+ .cm-canvas {
228
228
  width: 100%;
229
229
  height: auto;
230
230
  border-radius: 0.75rem;
@@ -232,7 +232,7 @@
232
232
  display: block;
233
233
  }
234
234
 
235
- :global(.cm-dims-badge) {
235
+ .cm-dims-badge {
236
236
  font-size: 0.65rem;
237
237
  font-weight: 600;
238
238
  color: var(--cm-text-muted);
@@ -242,7 +242,7 @@
242
242
  padding: 0.15rem 0.5rem;
243
243
  }
244
244
 
245
- :global(.cm-section-divider) {
245
+ .cm-section-divider {
246
246
  border-top: 1px solid var(--cm-border);
247
247
  padding: 1rem 1.25rem;
248
248
  display: flex;
@@ -250,13 +250,13 @@
250
250
  gap: 0.75rem;
251
251
  }
252
252
 
253
- :global(.cm-layouts) {
253
+ .cm-layouts {
254
254
  display: grid;
255
255
  grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
256
256
  gap: 0.4rem;
257
257
  }
258
258
 
259
- :global(.cm-layout-btn) {
259
+ .cm-layout-btn {
260
260
  display: flex;
261
261
  flex-direction: column;
262
262
  align-items: center;
@@ -271,31 +271,31 @@
271
271
  position: relative;
272
272
  }
273
273
 
274
- :global(.cm-layout-btn span) {
274
+ .cm-layout-btn span {
275
275
  font-size: 0.55rem;
276
276
  font-weight: 600;
277
277
  text-align: center;
278
278
  line-height: 1.2;
279
279
  }
280
280
 
281
- :global(.cm-layout-btn:hover:not(:disabled)) {
281
+ .cm-layout-btn:hover:not(:disabled) {
282
282
  border-color: var(--cm-primary);
283
283
  color: var(--cm-primary);
284
284
  background: var(--cm-primary-light);
285
285
  }
286
286
 
287
- :global(.cm-layout-btn-active) {
287
+ .cm-layout-btn-active {
288
288
  border-color: var(--cm-primary);
289
289
  background: var(--cm-primary-light);
290
290
  color: var(--cm-primary);
291
291
  }
292
292
 
293
- :global(.cm-layout-btn-disabled) {
293
+ .cm-layout-btn-disabled {
294
294
  opacity: 0.45;
295
295
  cursor: not-allowed;
296
296
  }
297
297
 
298
- :global(.cm-layout-need) {
298
+ .cm-layout-need {
299
299
  position: absolute;
300
300
  top: 2px;
301
301
  right: 4px;
@@ -309,37 +309,37 @@
309
309
  line-height: 1.4;
310
310
  }
311
311
 
312
- :global(.cm-settings-inline) {
312
+ .cm-settings-inline {
313
313
  display: flex;
314
314
  flex-wrap: wrap;
315
315
  align-items: flex-end;
316
316
  gap: 1rem;
317
317
  }
318
318
 
319
- :global(.cm-setting) {
319
+ .cm-setting {
320
320
  display: flex;
321
321
  flex-direction: column;
322
322
  gap: 0.3rem;
323
323
  }
324
324
 
325
- :global(.cm-setting-label) {
325
+ .cm-setting-label {
326
326
  font-size: 0.7rem;
327
327
  font-weight: 600;
328
328
  color: var(--cm-text-muted);
329
329
  }
330
330
 
331
- :global(.cm-slider) {
331
+ .cm-slider {
332
332
  accent-color: var(--cm-primary);
333
333
  width: 120px;
334
334
  }
335
335
 
336
- :global(.cm-color-row) {
336
+ .cm-color-row {
337
337
  display: flex;
338
338
  align-items: center;
339
339
  gap: 0.5rem;
340
340
  }
341
341
 
342
- :global(.cm-color-swatch) {
342
+ .cm-color-swatch {
343
343
  width: 32px;
344
344
  height: 32px;
345
345
  border: 2px solid var(--cm-border);
@@ -349,14 +349,14 @@
349
349
  background: transparent;
350
350
  }
351
351
 
352
- :global(.cm-color-code) {
352
+ .cm-color-code {
353
353
  font-size: 0.7rem;
354
354
  font-weight: 600;
355
355
  color: var(--cm-text-muted);
356
356
  font-variant-numeric: tabular-nums;
357
357
  }
358
358
 
359
- :global(.cm-download-btn) {
359
+ .cm-download-btn {
360
360
  display: flex;
361
361
  align-items: center;
362
362
  gap: 0.4rem;
@@ -374,13 +374,13 @@
374
374
  margin-left: auto;
375
375
  }
376
376
 
377
- :global(.cm-download-btn:disabled) {
377
+ .cm-download-btn:disabled {
378
378
  opacity: 0.4;
379
379
  cursor: not-allowed;
380
380
  box-shadow: none;
381
381
  }
382
382
 
383
- :global(.cm-download-btn:not(:disabled):hover) {
383
+ .cm-download-btn:not(:disabled):hover {
384
384
  transform: translateY(-1px);
385
385
  box-shadow: 0 6px 18px rgba(99,102,241,0.4);
386
- }
386
+ }
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
3
4
 
@@ -21,8 +22,6 @@ const ui: CollageMakerUI = {
21
22
  errorMin: "Sie benötigen mindestens 2 Bilder",
22
23
  errorMax: "Maximal 9 Bilder erlaubt",
23
24
  errorLoad: "Fehler beim Laden der Bilder",
24
- faqTitle: "Häufig gestellte Fragen",
25
- bibliographyTitle: "Referenzen"
26
25
  };
27
26
 
28
27
  const faq: CollageMakerLocaleContent['faq'] = [
@@ -55,13 +54,6 @@ const howTo: CollageMakerLocaleContent['howTo'] = [
55
54
  },
56
55
  ];
57
56
 
58
- const bibliography: CollageMakerLocaleContent['bibliography'] = [
59
- {
60
- name: "Fotografische Komposition: Die Kunst der Collage",
61
- url: "https://en.wikipedia.org/wiki/Collage",
62
- },
63
- ];
64
-
65
57
  const seo: CollageMakerLocaleContent['seo'] = [
66
58
  {
67
59
  type: 'summary',
@@ -224,9 +216,7 @@ export const content: CollageMakerLocaleContent = {
224
216
  description,
225
217
  ui,
226
218
  seo,
227
- faqTitle: "Häufig gestellte Fragen",
228
219
  faq,
229
- bibliographyTitle: "Referenzen",
230
220
  bibliography,
231
221
  howTo,
232
222
  schemas: [faqSchema as any, howToSchema as any, appSchema],
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
3
4
 
@@ -21,8 +22,6 @@ const ui: CollageMakerUI = {
21
22
  errorMin: "You need at least 2 images",
22
23
  errorMax: "Maximum 9 images allowed",
23
24
  errorLoad: "Error loading images",
24
- faqTitle: "Frequently Asked Questions",
25
- bibliographyTitle: "References"
26
25
  };
27
26
 
28
27
  const faq: CollageMakerLocaleContent['faq'] = [
@@ -55,13 +54,6 @@ const howTo: CollageMakerLocaleContent['howTo'] = [
55
54
  },
56
55
  ];
57
56
 
58
- const bibliography: CollageMakerLocaleContent['bibliography'] = [
59
- {
60
- name: "Photographic Composition: The Art of Collage",
61
- url: "https://en.wikipedia.org/wiki/Collage",
62
- },
63
- ];
64
-
65
57
  const seo: CollageMakerLocaleContent['seo'] = [
66
58
  {
67
59
  type: 'summary',
@@ -224,9 +216,7 @@ export const content: CollageMakerLocaleContent = {
224
216
  description,
225
217
  ui,
226
218
  seo,
227
- faqTitle: "Frequently Asked Questions",
228
219
  faq,
229
- bibliographyTitle: "References",
230
220
  bibliography,
231
221
  howTo,
232
222
  schemas: [faqSchema as any, howToSchema as any, appSchema],
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
3
4
 
@@ -53,13 +54,6 @@ const howTo: CollageMakerLocaleContent['howTo'] = [
53
54
  },
54
55
  ];
55
56
 
56
- const bibliography: CollageMakerLocaleContent['bibliography'] = [
57
- {
58
- name: "Composición Fotográfica: El Arte del Collage",
59
- url: "https://es.wikipedia.org/wiki/Collage",
60
- },
61
- ];
62
-
63
57
  const seo: CollageMakerLocaleContent['seo'] = [
64
58
  {
65
59
  type: 'summary',
@@ -223,9 +217,7 @@ export const content: CollageMakerLocaleContent = {
223
217
  ui,
224
218
  seo,
225
219
  faq,
226
- faqTitle: 'Preguntas frecuentes sobre creación de collages',
227
220
  bibliography,
228
- bibliographyTitle: 'Recursos técnicos sobre composición visual',
229
221
  howTo,
230
222
  schemas: [faqSchema as any, howToSchema as any, appSchema],
231
223
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
3
4
 
@@ -53,13 +54,6 @@ const howTo: CollageMakerLocaleContent['howTo'] = [
53
54
  },
54
55
  ];
55
56
 
56
- const bibliography: CollageMakerLocaleContent['bibliography'] = [
57
- {
58
- name: "Composition Photographique : L'Art du Collage",
59
- url: "https://fr.wikipedia.org/wiki/Collage",
60
- },
61
- ];
62
-
63
57
  const seo: CollageMakerLocaleContent['seo'] = [
64
58
  {
65
59
  type: 'summary',
@@ -222,10 +216,8 @@ export const content: CollageMakerLocaleContent = {
222
216
  description,
223
217
  ui,
224
218
  seo,
225
- faqTitle: "Frequently Asked Questions",
226
219
  faq,
227
220
  bibliography,
228
- bibliographyTitle: "References",
229
221
  howTo,
230
222
  schemas: [faqSchema as any, howToSchema as any, appSchema],
231
223
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
3
4
 
@@ -21,8 +22,6 @@ const ui: CollageMakerUI = {
21
22
  errorMin: "Anda butuh setidaknya 2 gambar",
22
23
  errorMax: "Maksimal 9 gambar diizinkan",
23
24
  errorLoad: "Kesalahan memuat gambar",
24
- faqTitle: "Pertanyaan yang Sering Diajukan",
25
- bibliographyTitle: "Referensi"
26
25
  };
27
26
 
28
27
  const faq: CollageMakerLocaleContent['faq'] = [
@@ -55,13 +54,6 @@ const howTo: CollageMakerLocaleContent['howTo'] = [
55
54
  },
56
55
  ];
57
56
 
58
- const bibliography: CollageMakerLocaleContent['bibliography'] = [
59
- {
60
- name: "Komposisi Fotografi: Seni Kolase",
61
- url: "https://id.wikipedia.org/wiki/Kolase",
62
- },
63
- ];
64
-
65
57
  const seo: CollageMakerLocaleContent['seo'] = [
66
58
  {
67
59
  type: 'summary',
@@ -224,9 +216,7 @@ export const content: CollageMakerLocaleContent = {
224
216
  description,
225
217
  ui,
226
218
  seo,
227
- faqTitle: "Pertanyaan yang Sering Diajukan",
228
219
  faq,
229
- bibliographyTitle: "Referensi",
230
220
  bibliography,
231
221
  howTo,
232
222
  schemas: [faqSchema as any, howToSchema as any, appSchema],
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
3
4
 
@@ -21,8 +22,6 @@ const ui: CollageMakerUI = {
21
22
  errorMin: "Hai bisogno di almeno 2 immagini",
22
23
  errorMax: "Massimo 9 immagini consentite",
23
24
  errorLoad: "Errore durante il caricamento delle immagini",
24
- faqTitle: "Domande Frequenti",
25
- bibliographyTitle: "Riferimenti"
26
25
  };
27
26
 
28
27
  const faq: CollageMakerLocaleContent['faq'] = [
@@ -55,13 +54,6 @@ const howTo: CollageMakerLocaleContent['howTo'] = [
55
54
  },
56
55
  ];
57
56
 
58
- const bibliography: CollageMakerLocaleContent['bibliography'] = [
59
- {
60
- name: "Composizione Fotografica: L'Arte del Collage",
61
- url: "https://it.wikipedia.org/wiki/Collage",
62
- },
63
- ];
64
-
65
57
  const seo: CollageMakerLocaleContent['seo'] = [
66
58
  {
67
59
  type: 'summary',
@@ -224,9 +216,7 @@ export const content: CollageMakerLocaleContent = {
224
216
  description,
225
217
  ui,
226
218
  seo,
227
- faqTitle: "Domande Frequenti",
228
219
  faq,
229
- bibliographyTitle: "Riferimenti",
230
220
  bibliography,
231
221
  howTo,
232
222
  schemas: [faqSchema as any, howToSchema as any, appSchema],
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
3
4
 
@@ -21,8 +22,6 @@ const ui: CollageMakerUI = {
21
22
  errorMin: "少なくとも2枚の画像が必要です",
22
23
  errorMax: "最大9枚まで許可されています",
23
24
  errorLoad: "画像の読み込み中にエラーが発生しました",
24
- faqTitle: "よくある質問",
25
- bibliographyTitle: "リファレンス"
26
25
  };
27
26
 
28
27
  const faq: CollageMakerLocaleContent['faq'] = [
@@ -55,13 +54,6 @@ const howTo: CollageMakerLocaleContent['howTo'] = [
55
54
  },
56
55
  ];
57
56
 
58
- const bibliography: CollageMakerLocaleContent['bibliography'] = [
59
- {
60
- name: "写真の構図:コラージュの芸術",
61
- url: "https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%A9%E3%83%BC%E3%82%B8%E3%83%A5",
62
- },
63
- ];
64
-
65
57
  const seo: CollageMakerLocaleContent['seo'] = [
66
58
  {
67
59
  type: 'summary',
@@ -224,9 +216,7 @@ export const content: CollageMakerLocaleContent = {
224
216
  description,
225
217
  ui,
226
218
  seo,
227
- faqTitle: "よくある質問",
228
219
  faq,
229
- bibliographyTitle: "リファレンス",
230
220
  bibliography,
231
221
  howTo,
232
222
  schemas: [faqSchema as any, howToSchema as any, appSchema],
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
3
4
 
@@ -21,8 +22,6 @@ const ui: CollageMakerUI = {
21
22
  errorMin: "최소 2개의 이미지가 필요합니다",
22
23
  errorMax: "최대 9개까지만 허용됩니다",
23
24
  errorLoad: "이미지를 로드하는 중 오류가 발생했습니다",
24
- faqTitle: "자주 묻는 질문",
25
- bibliographyTitle: "참고 문헌"
26
25
  };
27
26
 
28
27
  const faq: CollageMakerLocaleContent['faq'] = [
@@ -55,13 +54,6 @@ const howTo: CollageMakerLocaleContent['howTo'] = [
55
54
  },
56
55
  ];
57
56
 
58
- const bibliography: CollageMakerLocaleContent['bibliography'] = [
59
- {
60
- name: "사진 구도: 콜라주의 예술",
61
- url: "https://ko.wikipedia.org/wiki/%EC%BD%9C%EB%9D%BC%EC%A3%BC",
62
- },
63
- ];
64
-
65
57
  const seo: CollageMakerLocaleContent['seo'] = [
66
58
  {
67
59
  type: 'summary',
@@ -224,9 +216,7 @@ export const content: CollageMakerLocaleContent = {
224
216
  description,
225
217
  ui,
226
218
  seo,
227
- faqTitle: "자주 묻는 질문",
228
219
  faq,
229
- bibliographyTitle: "참고 문헌",
230
220
  bibliography,
231
221
  howTo,
232
222
  schemas: [faqSchema as any, howToSchema as any, appSchema],
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
3
4
 
@@ -21,8 +22,6 @@ const ui: CollageMakerUI = {
21
22
  errorMin: "Je hebt minimaal 2 afbeeldingen nodig",
22
23
  errorMax: "Maximaal 9 afbeeldingen toegestaan",
23
24
  errorLoad: "Fout bij het laden van afbeeldingen",
24
- faqTitle: "Veelgestelde Vragen",
25
- bibliographyTitle: "Referenties"
26
25
  };
27
26
 
28
27
  const faq: CollageMakerLocaleContent['faq'] = [
@@ -55,13 +54,6 @@ const howTo: CollageMakerLocaleContent['howTo'] = [
55
54
  },
56
55
  ];
57
56
 
58
- const bibliography: CollageMakerLocaleContent['bibliography'] = [
59
- {
60
- name: "Fotografische Compositie: De Kunst van Collage",
61
- url: "https://nl.wikipedia.org/wiki/Collage",
62
- },
63
- ];
64
-
65
57
  const seo: CollageMakerLocaleContent['seo'] = [
66
58
  {
67
59
  type: 'summary',
@@ -224,9 +216,7 @@ export const content: CollageMakerLocaleContent = {
224
216
  description,
225
217
  ui,
226
218
  seo,
227
- faqTitle: "Veelgestelde Vragen",
228
219
  faq,
229
- bibliographyTitle: "Referenties",
230
220
  bibliography,
231
221
  howTo,
232
222
  schemas: [faqSchema as any, howToSchema as any, appSchema],
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
3
4
 
@@ -21,8 +22,6 @@ const ui: CollageMakerUI = {
21
22
  errorMin: "Potrzebujesz co najmniej 2 obrazów",
22
23
  errorMax: "Dozwolone maksymalnie 9 obrazów",
23
24
  errorLoad: "Błąd podczas ładowania obrazów",
24
- faqTitle: "Często Zadawane Pytania",
25
- bibliographyTitle: "Referencje"
26
25
  };
27
26
 
28
27
  const faq: CollageMakerLocaleContent['faq'] = [
@@ -55,13 +54,6 @@ const howTo: CollageMakerLocaleContent['howTo'] = [
55
54
  },
56
55
  ];
57
56
 
58
- const bibliography: CollageMakerLocaleContent['bibliography'] = [
59
- {
60
- name: "Kompozycja fotograficzna: Sztuka kolażu",
61
- url: "https://pl.wikipedia.org/wiki/Kola%C5%BC",
62
- },
63
- ];
64
-
65
57
  const seo: CollageMakerLocaleContent['seo'] = [
66
58
  {
67
59
  type: 'summary',
@@ -224,9 +216,7 @@ export const content: CollageMakerLocaleContent = {
224
216
  description,
225
217
  ui,
226
218
  seo,
227
- faqTitle: "Często Zadawane Pytania",
228
219
  faq,
229
- bibliographyTitle: "Referencje",
230
220
  bibliography,
231
221
  howTo,
232
222
  schemas: [faqSchema as any, howToSchema as any, appSchema],