@nodaro/shared 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (665) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +32 -0
  3. package/dist/index.cjs +12506 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +12269 -0
  6. package/dist/index.d.ts +12269 -0
  7. package/dist/index.js +11831 -0
  8. package/dist/index.js.map +1 -0
  9. package/package.json +54 -0
  10. package/src/__tests__/__snapshots__/prompt-builder-segments.test.ts.snap +65 -0
  11. package/src/__tests__/ai-avatar-pricing.test.ts +321 -0
  12. package/src/__tests__/apply-video-negative-prompt.test.ts +76 -0
  13. package/src/__tests__/attach-columns.test.ts +28 -0
  14. package/src/__tests__/audio-crossfade-curves.test.ts +33 -0
  15. package/src/__tests__/build-model-menu.test.ts +58 -0
  16. package/src/__tests__/character-aspect-defaults.test.ts +142 -0
  17. package/src/__tests__/character-mention-slug.test.ts +199 -0
  18. package/src/__tests__/character-reference-photo-kinds.test.ts +32 -0
  19. package/src/__tests__/character-usage-mode.test.ts +147 -0
  20. package/src/__tests__/character-variant-assets.test.ts +142 -0
  21. package/src/__tests__/character-voice.test.ts +130 -0
  22. package/src/__tests__/cinematic-avatar-pricing.test.ts +119 -0
  23. package/src/__tests__/combine-transitions.test.ts +137 -0
  24. package/src/__tests__/component-types.test.ts +87 -0
  25. package/src/__tests__/condition-variables.test.ts +98 -0
  26. package/src/__tests__/credit-identifiers.test.ts +811 -0
  27. package/src/__tests__/default-video-provider.test.ts +63 -0
  28. package/src/__tests__/entity-image-handle.test.ts +43 -0
  29. package/src/__tests__/entity-variants.test.ts +33 -0
  30. package/src/__tests__/fal-lip-sync-sets.test.ts +31 -0
  31. package/src/__tests__/featured-entities.test.ts +33 -0
  32. package/src/__tests__/film-pricing.test.ts +64 -0
  33. package/src/__tests__/filter-condition.test.ts +285 -0
  34. package/src/__tests__/freecut-protocol.test.ts +35 -0
  35. package/src/__tests__/generate-text-items.test.ts +19 -0
  36. package/src/__tests__/generated-results.test.ts +50 -0
  37. package/src/__tests__/graph-utils.test.ts +618 -0
  38. package/src/__tests__/group-aggregation.test.ts +83 -0
  39. package/src/__tests__/i18n-locale-completeness.test.ts +156 -0
  40. package/src/__tests__/image-critic-node.test.ts +86 -0
  41. package/src/__tests__/image-mask-mode.test.ts +16 -0
  42. package/src/__tests__/image-ref-limit.test.ts +78 -0
  43. package/src/__tests__/inpaint-region.test.ts +24 -0
  44. package/src/__tests__/input-field-map-parity.test.ts +30 -0
  45. package/src/__tests__/json-evaluator.test.ts +289 -0
  46. package/src/__tests__/json-path.test.ts +64 -0
  47. package/src/__tests__/lip-sync-pricing.test.ts +142 -0
  48. package/src/__tests__/list-merge.test.ts +96 -0
  49. package/src/__tests__/list-sort.test.ts +134 -0
  50. package/src/__tests__/llm-models.test.ts +445 -0
  51. package/src/__tests__/location-mention-slug.test.ts +246 -0
  52. package/src/__tests__/locations-coverage-critic-schema.test.ts +92 -0
  53. package/src/__tests__/loop-delimiter.test.ts +39 -0
  54. package/src/__tests__/lottie-slots.test.ts +245 -0
  55. package/src/__tests__/model-catalog-flux2-resolutions.test.ts +21 -0
  56. package/src/__tests__/model-constants-location.test.ts +20 -0
  57. package/src/__tests__/model-constants.test.ts +122 -0
  58. package/src/__tests__/model-tree.test.ts +86 -0
  59. package/src/__tests__/no-internal-imports.test.ts +25 -0
  60. package/src/__tests__/node-default-mappings.test.ts +175 -0
  61. package/src/__tests__/node-mappable-fields.test.ts +7 -0
  62. package/src/__tests__/node-preset-export.test.ts +46 -0
  63. package/src/__tests__/node-preset-extract.test.ts +166 -0
  64. package/src/__tests__/node-refs-canonical.test.ts +54 -0
  65. package/src/__tests__/node-refs-combine.test.ts +54 -0
  66. package/src/__tests__/node-refs.test.ts +187 -0
  67. package/src/__tests__/node-runtime-keys.test.ts +99 -0
  68. package/src/__tests__/object-aspect-defaults.test.ts +59 -0
  69. package/src/__tests__/parameter-node-value.test.ts +137 -0
  70. package/src/__tests__/pinterest-url.test.ts +35 -0
  71. package/src/__tests__/pipeline-chat.test.ts +110 -0
  72. package/src/__tests__/pipeline-validation.test.ts +98 -0
  73. package/src/__tests__/presentation-utils.test.ts +1137 -0
  74. package/src/__tests__/producer-types.test.ts +47 -0
  75. package/src/__tests__/prompt-length-limits.test.ts +156 -0
  76. package/src/__tests__/provider-directive-defaults.test.ts +46 -0
  77. package/src/__tests__/reduce-strategy-registry.test.ts +43 -0
  78. package/src/__tests__/reference-board-templates.test.ts +33 -0
  79. package/src/__tests__/reference-roles.test.ts +36 -0
  80. package/src/__tests__/resolve-field-mappings.test.ts +110 -0
  81. package/src/__tests__/resolve-pipeline-model.test.ts +76 -0
  82. package/src/__tests__/scene-node-types.test.ts +80 -0
  83. package/src/__tests__/scraper-actors.test.ts +67 -0
  84. package/src/__tests__/seedance-2-catalog.test.ts +18 -0
  85. package/src/__tests__/seedance-2-credit-id.test.ts +23 -0
  86. package/src/__tests__/seedance-aspects.test.ts +52 -0
  87. package/src/__tests__/selector.test.ts +1151 -0
  88. package/src/__tests__/settled-with-limit.test.ts +214 -0
  89. package/src/__tests__/social-media-specs.test.ts +129 -0
  90. package/src/__tests__/sub-workflow-validation.test.ts +88 -0
  91. package/src/__tests__/switchx-pricing.test.ts +28 -0
  92. package/src/__tests__/to-connected-references.test.ts +153 -0
  93. package/src/__tests__/utilities.test.ts +541 -0
  94. package/src/__tests__/video-analysis-pricing.test.ts +58 -0
  95. package/src/__tests__/video-analysis.test.ts +63 -0
  96. package/src/__tests__/video-audio-capability.test.ts +204 -0
  97. package/src/__tests__/video-gen-providers.test.ts +28 -0
  98. package/src/__tests__/video-mode-aliases.test.ts +150 -0
  99. package/src/__tests__/video-ref-limits.test.ts +72 -0
  100. package/src/__tests__/video-utils.test.ts +303 -0
  101. package/src/__tests__/voice-changer-models.test.ts +33 -0
  102. package/src/__tests__/workflow-export-strip.test.ts +46 -0
  103. package/src/ai-avatar-pricing.ts +213 -0
  104. package/src/ancestor-refs.ts +48 -0
  105. package/src/animals.ts +231 -0
  106. package/src/audio-crossfade-curves.ts +73 -0
  107. package/src/audio-fx-presets.ts +64 -0
  108. package/src/avatar-payload-validators.ts +214 -0
  109. package/src/caption-styles.ts +31 -0
  110. package/src/character-aspect-defaults.ts +102 -0
  111. package/src/character-facets.ts +37 -0
  112. package/src/character-mention-slug.ts +166 -0
  113. package/src/character-usage-mode.ts +109 -0
  114. package/src/character-variant-assets.ts +121 -0
  115. package/src/character-voice.ts +151 -0
  116. package/src/cinematic-avatar-pricing.ts +111 -0
  117. package/src/clone-utils.ts +46 -0
  118. package/src/combine-transitions.ts +482 -0
  119. package/src/community.ts +112 -0
  120. package/src/component-types.ts +127 -0
  121. package/src/condition-variables.ts +65 -0
  122. package/src/credit-estimators/index.ts +15 -0
  123. package/src/credit-estimators/video-utils.ts +165 -0
  124. package/src/credit-identifiers.ts +304 -0
  125. package/src/entity-approval-types.ts +31 -0
  126. package/src/entity-aspect-defaults.ts +82 -0
  127. package/src/entity-asset-types.ts +296 -0
  128. package/src/entity-image-handle.ts +36 -0
  129. package/src/extra-refs.ts +139 -0
  130. package/src/featured-entities.ts +136 -0
  131. package/src/film-pricing.ts +117 -0
  132. package/src/filter-condition.ts +250 -0
  133. package/src/flux2-pricing.ts +18 -0
  134. package/src/freecut-protocol.ts +52 -0
  135. package/src/furniture.ts +167 -0
  136. package/src/generate-text-items.ts +15 -0
  137. package/src/generated-results.ts +63 -0
  138. package/src/group-aggregation.ts +75 -0
  139. package/src/hint-graph-types.ts +18 -0
  140. package/src/i18n/action-fx.ar.ts +89 -0
  141. package/src/i18n/action-fx.de.ts +89 -0
  142. package/src/i18n/action-fx.es.ts +89 -0
  143. package/src/i18n/action-fx.fr.ts +89 -0
  144. package/src/i18n/action-fx.he.ts +89 -0
  145. package/src/i18n/action-fx.hi.ts +89 -0
  146. package/src/i18n/action-fx.ja.ts +89 -0
  147. package/src/i18n/action-fx.ko.ts +89 -0
  148. package/src/i18n/action-fx.pt-BR.ts +89 -0
  149. package/src/i18n/action-fx.ru.ts +89 -0
  150. package/src/i18n/action-fx.zh-CN.ts +89 -0
  151. package/src/i18n/aesthetic.ar.ts +170 -0
  152. package/src/i18n/aesthetic.de.ts +48 -0
  153. package/src/i18n/aesthetic.es.ts +169 -0
  154. package/src/i18n/aesthetic.fr.ts +52 -0
  155. package/src/i18n/aesthetic.he.ts +169 -0
  156. package/src/i18n/aesthetic.hi.ts +55 -0
  157. package/src/i18n/aesthetic.ja.ts +165 -0
  158. package/src/i18n/aesthetic.ko.ts +169 -0
  159. package/src/i18n/aesthetic.pt-BR.ts +148 -0
  160. package/src/i18n/aesthetic.ru.ts +155 -0
  161. package/src/i18n/aesthetic.zh-CN.ts +172 -0
  162. package/src/i18n/animals.ar.ts +145 -0
  163. package/src/i18n/animals.de.ts +144 -0
  164. package/src/i18n/animals.es.ts +158 -0
  165. package/src/i18n/animals.fr.ts +144 -0
  166. package/src/i18n/animals.he.ts +155 -0
  167. package/src/i18n/animals.hi.ts +157 -0
  168. package/src/i18n/animals.ja.ts +159 -0
  169. package/src/i18n/animals.ko.ts +159 -0
  170. package/src/i18n/animals.pt-BR.ts +157 -0
  171. package/src/i18n/animals.ru.ts +155 -0
  172. package/src/i18n/animals.zh-CN.ts +155 -0
  173. package/src/i18n/atmosphere.ar.ts +49 -0
  174. package/src/i18n/atmosphere.de.ts +47 -0
  175. package/src/i18n/atmosphere.es.ts +50 -0
  176. package/src/i18n/atmosphere.fr.ts +47 -0
  177. package/src/i18n/atmosphere.he.ts +47 -0
  178. package/src/i18n/atmosphere.hi.ts +49 -0
  179. package/src/i18n/atmosphere.ja.ts +49 -0
  180. package/src/i18n/atmosphere.ko.ts +49 -0
  181. package/src/i18n/atmosphere.pt-BR.ts +49 -0
  182. package/src/i18n/atmosphere.ru.ts +47 -0
  183. package/src/i18n/atmosphere.zh-CN.ts +152 -0
  184. package/src/i18n/backdrop.ar.ts +53 -0
  185. package/src/i18n/backdrop.de.ts +46 -0
  186. package/src/i18n/backdrop.es.ts +54 -0
  187. package/src/i18n/backdrop.fr.ts +52 -0
  188. package/src/i18n/backdrop.he.ts +51 -0
  189. package/src/i18n/backdrop.hi.ts +59 -0
  190. package/src/i18n/backdrop.ja.ts +61 -0
  191. package/src/i18n/backdrop.ko.ts +59 -0
  192. package/src/i18n/backdrop.pt-BR.ts +59 -0
  193. package/src/i18n/backdrop.ru.ts +57 -0
  194. package/src/i18n/backdrop.zh-CN.ts +57 -0
  195. package/src/i18n/camera-format.ar.ts +40 -0
  196. package/src/i18n/camera-format.de.ts +37 -0
  197. package/src/i18n/camera-format.es.ts +41 -0
  198. package/src/i18n/camera-format.fr.ts +37 -0
  199. package/src/i18n/camera-format.he.ts +37 -0
  200. package/src/i18n/camera-format.hi.ts +42 -0
  201. package/src/i18n/camera-format.ja.ts +37 -0
  202. package/src/i18n/camera-format.ko.ts +37 -0
  203. package/src/i18n/camera-format.pt-BR.ts +46 -0
  204. package/src/i18n/camera-format.ru.ts +42 -0
  205. package/src/i18n/camera-format.zh-CN.ts +42 -0
  206. package/src/i18n/camera-motions.ar.ts +86 -0
  207. package/src/i18n/camera-motions.de.ts +74 -0
  208. package/src/i18n/camera-motions.es.ts +86 -0
  209. package/src/i18n/camera-motions.fr.ts +86 -0
  210. package/src/i18n/camera-motions.he.ts +86 -0
  211. package/src/i18n/camera-motions.hi.ts +99 -0
  212. package/src/i18n/camera-motions.ja.ts +99 -0
  213. package/src/i18n/camera-motions.ko.ts +99 -0
  214. package/src/i18n/camera-motions.pt-BR.ts +99 -0
  215. package/src/i18n/camera-motions.ru.ts +99 -0
  216. package/src/i18n/camera-motions.zh-CN.ts +99 -0
  217. package/src/i18n/character-fx.ar.ts +72 -0
  218. package/src/i18n/character-fx.de.ts +72 -0
  219. package/src/i18n/character-fx.es.ts +72 -0
  220. package/src/i18n/character-fx.fr.ts +72 -0
  221. package/src/i18n/character-fx.he.ts +72 -0
  222. package/src/i18n/character-fx.hi.ts +72 -0
  223. package/src/i18n/character-fx.ja.ts +72 -0
  224. package/src/i18n/character-fx.ko.ts +72 -0
  225. package/src/i18n/character-fx.pt-BR.ts +72 -0
  226. package/src/i18n/character-fx.ru.ts +72 -0
  227. package/src/i18n/character-fx.zh-CN.ts +72 -0
  228. package/src/i18n/color-look.ar.ts +50 -0
  229. package/src/i18n/color-look.de.ts +47 -0
  230. package/src/i18n/color-look.es.ts +50 -0
  231. package/src/i18n/color-look.fr.ts +50 -0
  232. package/src/i18n/color-look.he.ts +49 -0
  233. package/src/i18n/color-look.hi.ts +52 -0
  234. package/src/i18n/color-look.ja.ts +54 -0
  235. package/src/i18n/color-look.ko.ts +54 -0
  236. package/src/i18n/color-look.pt-BR.ts +54 -0
  237. package/src/i18n/color-look.ru.ts +52 -0
  238. package/src/i18n/color-look.zh-CN.ts +53 -0
  239. package/src/i18n/composition-effects.ar.ts +26 -0
  240. package/src/i18n/composition-effects.de.ts +25 -0
  241. package/src/i18n/composition-effects.es.ts +27 -0
  242. package/src/i18n/composition-effects.fr.ts +25 -0
  243. package/src/i18n/composition-effects.he.ts +25 -0
  244. package/src/i18n/composition-effects.hi.ts +27 -0
  245. package/src/i18n/composition-effects.ja.ts +27 -0
  246. package/src/i18n/composition-effects.ko.ts +27 -0
  247. package/src/i18n/composition-effects.pt-BR.ts +25 -0
  248. package/src/i18n/composition-effects.ru.ts +82 -0
  249. package/src/i18n/composition-effects.zh-CN.ts +25 -0
  250. package/src/i18n/era.ar.ts +37 -0
  251. package/src/i18n/era.de.ts +34 -0
  252. package/src/i18n/era.es.ts +37 -0
  253. package/src/i18n/era.fr.ts +37 -0
  254. package/src/i18n/era.he.ts +36 -0
  255. package/src/i18n/era.hi.ts +39 -0
  256. package/src/i18n/era.ja.ts +41 -0
  257. package/src/i18n/era.ko.ts +39 -0
  258. package/src/i18n/era.pt-BR.ts +41 -0
  259. package/src/i18n/era.ru.ts +121 -0
  260. package/src/i18n/era.zh-CN.ts +39 -0
  261. package/src/i18n/exposure-settings.ar.ts +28 -0
  262. package/src/i18n/exposure-settings.de.ts +26 -0
  263. package/src/i18n/exposure-settings.es.ts +28 -0
  264. package/src/i18n/exposure-settings.fr.ts +29 -0
  265. package/src/i18n/exposure-settings.he.ts +28 -0
  266. package/src/i18n/exposure-settings.hi.ts +31 -0
  267. package/src/i18n/exposure-settings.ja.ts +31 -0
  268. package/src/i18n/exposure-settings.ko.ts +31 -0
  269. package/src/i18n/exposure-settings.pt-BR.ts +31 -0
  270. package/src/i18n/exposure-settings.ru.ts +31 -0
  271. package/src/i18n/exposure-settings.zh-CN.ts +31 -0
  272. package/src/i18n/framing.ar.ts +78 -0
  273. package/src/i18n/framing.de.ts +73 -0
  274. package/src/i18n/framing.es.ts +78 -0
  275. package/src/i18n/framing.fr.ts +78 -0
  276. package/src/i18n/framing.he.ts +77 -0
  277. package/src/i18n/framing.hi.ts +82 -0
  278. package/src/i18n/framing.ja.ts +84 -0
  279. package/src/i18n/framing.ko.ts +82 -0
  280. package/src/i18n/framing.pt-BR.ts +84 -0
  281. package/src/i18n/framing.ru.ts +82 -0
  282. package/src/i18n/framing.zh-CN.ts +82 -0
  283. package/src/i18n/furniture.ar.ts +92 -0
  284. package/src/i18n/furniture.de.ts +93 -0
  285. package/src/i18n/furniture.es.ts +101 -0
  286. package/src/i18n/furniture.fr.ts +93 -0
  287. package/src/i18n/furniture.he.ts +101 -0
  288. package/src/i18n/furniture.hi.ts +101 -0
  289. package/src/i18n/furniture.ja.ts +101 -0
  290. package/src/i18n/furniture.ko.ts +101 -0
  291. package/src/i18n/furniture.pt-BR.ts +101 -0
  292. package/src/i18n/furniture.ru.ts +101 -0
  293. package/src/i18n/furniture.zh-CN.ts +101 -0
  294. package/src/i18n/held-prop.ar.ts +74 -0
  295. package/src/i18n/held-prop.de.ts +65 -0
  296. package/src/i18n/held-prop.es.ts +83 -0
  297. package/src/i18n/held-prop.fr.ts +74 -0
  298. package/src/i18n/held-prop.he.ts +73 -0
  299. package/src/i18n/held-prop.hi.ts +82 -0
  300. package/src/i18n/held-prop.ja.ts +84 -0
  301. package/src/i18n/held-prop.ko.ts +84 -0
  302. package/src/i18n/held-prop.pt-BR.ts +84 -0
  303. package/src/i18n/held-prop.ru.ts +82 -0
  304. package/src/i18n/held-prop.zh-CN.ts +82 -0
  305. package/src/i18n/index.ts +208 -0
  306. package/src/i18n/instrumentation.ar.ts +195 -0
  307. package/src/i18n/instrumentation.de.ts +195 -0
  308. package/src/i18n/instrumentation.es.ts +195 -0
  309. package/src/i18n/instrumentation.fr.ts +195 -0
  310. package/src/i18n/instrumentation.he.ts +195 -0
  311. package/src/i18n/instrumentation.hi.ts +195 -0
  312. package/src/i18n/instrumentation.ja.ts +195 -0
  313. package/src/i18n/instrumentation.ko.ts +195 -0
  314. package/src/i18n/instrumentation.pt-BR.ts +195 -0
  315. package/src/i18n/instrumentation.ru.ts +195 -0
  316. package/src/i18n/instrumentation.zh-CN.ts +195 -0
  317. package/src/i18n/lens.ar.ts +24 -0
  318. package/src/i18n/lens.de.ts +24 -0
  319. package/src/i18n/lens.es.ts +24 -0
  320. package/src/i18n/lens.fr.ts +24 -0
  321. package/src/i18n/lens.he.ts +24 -0
  322. package/src/i18n/lens.hi.ts +24 -0
  323. package/src/i18n/lens.ja.ts +24 -0
  324. package/src/i18n/lens.ko.ts +24 -0
  325. package/src/i18n/lens.pt-BR.ts +24 -0
  326. package/src/i18n/lens.ru.ts +25 -0
  327. package/src/i18n/lens.zh-CN.ts +24 -0
  328. package/src/i18n/lighting.ar.ts +86 -0
  329. package/src/i18n/lighting.de.ts +84 -0
  330. package/src/i18n/lighting.es.ts +89 -0
  331. package/src/i18n/lighting.fr.ts +84 -0
  332. package/src/i18n/lighting.he.ts +88 -0
  333. package/src/i18n/lighting.hi.ts +90 -0
  334. package/src/i18n/lighting.ja.ts +90 -0
  335. package/src/i18n/lighting.ko.ts +90 -0
  336. package/src/i18n/lighting.pt-BR.ts +90 -0
  337. package/src/i18n/lighting.ru.ts +88 -0
  338. package/src/i18n/lighting.zh-CN.ts +92 -0
  339. package/src/i18n/loop-subject.ar.ts +39 -0
  340. package/src/i18n/loop-subject.de.ts +39 -0
  341. package/src/i18n/loop-subject.es.ts +39 -0
  342. package/src/i18n/loop-subject.fr.ts +39 -0
  343. package/src/i18n/loop-subject.he.ts +39 -0
  344. package/src/i18n/loop-subject.hi.ts +39 -0
  345. package/src/i18n/loop-subject.ja.ts +39 -0
  346. package/src/i18n/loop-subject.ko.ts +39 -0
  347. package/src/i18n/loop-subject.pt-BR.ts +39 -0
  348. package/src/i18n/loop-subject.ru.ts +39 -0
  349. package/src/i18n/loop-subject.zh-CN.ts +39 -0
  350. package/src/i18n/materials.ar.ts +80 -0
  351. package/src/i18n/materials.de.ts +80 -0
  352. package/src/i18n/materials.es.ts +87 -0
  353. package/src/i18n/materials.fr.ts +80 -0
  354. package/src/i18n/materials.he.ts +86 -0
  355. package/src/i18n/materials.hi.ts +86 -0
  356. package/src/i18n/materials.ja.ts +88 -0
  357. package/src/i18n/materials.ko.ts +88 -0
  358. package/src/i18n/materials.pt-BR.ts +88 -0
  359. package/src/i18n/materials.ru.ts +86 -0
  360. package/src/i18n/materials.zh-CN.ts +86 -0
  361. package/src/i18n/mood.ar.ts +61 -0
  362. package/src/i18n/mood.de.ts +61 -0
  363. package/src/i18n/mood.es.ts +66 -0
  364. package/src/i18n/mood.fr.ts +61 -0
  365. package/src/i18n/mood.he.ts +64 -0
  366. package/src/i18n/mood.hi.ts +66 -0
  367. package/src/i18n/mood.ja.ts +66 -0
  368. package/src/i18n/mood.ko.ts +66 -0
  369. package/src/i18n/mood.pt-BR.ts +64 -0
  370. package/src/i18n/mood.ru.ts +64 -0
  371. package/src/i18n/mood.zh-CN.ts +64 -0
  372. package/src/i18n/music-genre.ar.ts +302 -0
  373. package/src/i18n/music-genre.de.ts +302 -0
  374. package/src/i18n/music-genre.es.ts +302 -0
  375. package/src/i18n/music-genre.fr.ts +302 -0
  376. package/src/i18n/music-genre.he.ts +302 -0
  377. package/src/i18n/music-genre.hi.ts +302 -0
  378. package/src/i18n/music-genre.ja.ts +302 -0
  379. package/src/i18n/music-genre.ko.ts +302 -0
  380. package/src/i18n/music-genre.pt-BR.ts +302 -0
  381. package/src/i18n/music-genre.ru.ts +302 -0
  382. package/src/i18n/music-genre.zh-CN.ts +302 -0
  383. package/src/i18n/music-mood.ar.ts +75 -0
  384. package/src/i18n/music-mood.de.ts +75 -0
  385. package/src/i18n/music-mood.es.ts +75 -0
  386. package/src/i18n/music-mood.fr.ts +75 -0
  387. package/src/i18n/music-mood.he.ts +75 -0
  388. package/src/i18n/music-mood.hi.ts +75 -0
  389. package/src/i18n/music-mood.ja.ts +75 -0
  390. package/src/i18n/music-mood.ko.ts +75 -0
  391. package/src/i18n/music-mood.pt-BR.ts +75 -0
  392. package/src/i18n/music-mood.ru.ts +75 -0
  393. package/src/i18n/music-mood.zh-CN.ts +75 -0
  394. package/src/i18n/person.ar.ts +638 -0
  395. package/src/i18n/person.de.ts +629 -0
  396. package/src/i18n/person.es.ts +645 -0
  397. package/src/i18n/person.fr.ts +621 -0
  398. package/src/i18n/person.he.ts +656 -0
  399. package/src/i18n/person.hi.ts +654 -0
  400. package/src/i18n/person.ja.ts +662 -0
  401. package/src/i18n/person.ko.ts +662 -0
  402. package/src/i18n/person.pt-BR.ts +656 -0
  403. package/src/i18n/person.ru.ts +656 -0
  404. package/src/i18n/person.zh-CN.ts +656 -0
  405. package/src/i18n/photo-genre.ar.ts +58 -0
  406. package/src/i18n/photo-genre.de.ts +52 -0
  407. package/src/i18n/photo-genre.es.ts +64 -0
  408. package/src/i18n/photo-genre.fr.ts +58 -0
  409. package/src/i18n/photo-genre.he.ts +62 -0
  410. package/src/i18n/photo-genre.hi.ts +63 -0
  411. package/src/i18n/photo-genre.ja.ts +65 -0
  412. package/src/i18n/photo-genre.ko.ts +63 -0
  413. package/src/i18n/photo-genre.pt-BR.ts +65 -0
  414. package/src/i18n/photo-genre.ru.ts +63 -0
  415. package/src/i18n/photo-genre.zh-CN.ts +63 -0
  416. package/src/i18n/photographer.ar.ts +75 -0
  417. package/src/i18n/photographer.de.ts +74 -0
  418. package/src/i18n/photographer.es.ts +77 -0
  419. package/src/i18n/photographer.fr.ts +77 -0
  420. package/src/i18n/photographer.he.ts +78 -0
  421. package/src/i18n/photographer.hi.ts +80 -0
  422. package/src/i18n/photographer.ja.ts +84 -0
  423. package/src/i18n/photographer.ko.ts +84 -0
  424. package/src/i18n/photographer.pt-BR.ts +83 -0
  425. package/src/i18n/photographer.ru.ts +78 -0
  426. package/src/i18n/photographer.zh-CN.ts +78 -0
  427. package/src/i18n/pose.ar.ts +95 -0
  428. package/src/i18n/pose.de.ts +96 -0
  429. package/src/i18n/pose.es.ts +104 -0
  430. package/src/i18n/pose.fr.ts +96 -0
  431. package/src/i18n/pose.he.ts +104 -0
  432. package/src/i18n/pose.hi.ts +104 -0
  433. package/src/i18n/pose.ja.ts +104 -0
  434. package/src/i18n/pose.ko.ts +104 -0
  435. package/src/i18n/pose.pt-BR.ts +104 -0
  436. package/src/i18n/pose.ru.ts +104 -0
  437. package/src/i18n/pose.zh-CN.ts +104 -0
  438. package/src/i18n/post-process-effects.ar.ts +25 -0
  439. package/src/i18n/post-process-effects.de.ts +24 -0
  440. package/src/i18n/post-process-effects.es.ts +26 -0
  441. package/src/i18n/post-process-effects.fr.ts +24 -0
  442. package/src/i18n/post-process-effects.he.ts +24 -0
  443. package/src/i18n/post-process-effects.hi.ts +26 -0
  444. package/src/i18n/post-process-effects.ja.ts +26 -0
  445. package/src/i18n/post-process-effects.ko.ts +26 -0
  446. package/src/i18n/post-process-effects.pt-BR.ts +24 -0
  447. package/src/i18n/post-process-effects.ru.ts +24 -0
  448. package/src/i18n/post-process-effects.zh-CN.ts +24 -0
  449. package/src/i18n/render-quality.ar.ts +34 -0
  450. package/src/i18n/render-quality.de.ts +30 -0
  451. package/src/i18n/render-quality.es.ts +35 -0
  452. package/src/i18n/render-quality.fr.ts +34 -0
  453. package/src/i18n/render-quality.he.ts +33 -0
  454. package/src/i18n/render-quality.hi.ts +39 -0
  455. package/src/i18n/render-quality.ja.ts +39 -0
  456. package/src/i18n/render-quality.ko.ts +39 -0
  457. package/src/i18n/render-quality.pt-BR.ts +37 -0
  458. package/src/i18n/render-quality.ru.ts +37 -0
  459. package/src/i18n/render-quality.zh-CN.ts +37 -0
  460. package/src/i18n/seasons.ar.ts +10 -0
  461. package/src/i18n/seasons.de.ts +10 -0
  462. package/src/i18n/seasons.es.ts +10 -0
  463. package/src/i18n/seasons.fr.ts +10 -0
  464. package/src/i18n/seasons.he.ts +10 -0
  465. package/src/i18n/seasons.hi.ts +10 -0
  466. package/src/i18n/seasons.ja.ts +10 -0
  467. package/src/i18n/seasons.ko.ts +10 -0
  468. package/src/i18n/seasons.pt-BR.ts +10 -0
  469. package/src/i18n/seasons.ru.ts +10 -0
  470. package/src/i18n/seasons.zh-CN.ts +10 -0
  471. package/src/i18n/setting.ar.ts +73 -0
  472. package/src/i18n/setting.de.ts +73 -0
  473. package/src/i18n/setting.es.ts +77 -0
  474. package/src/i18n/setting.fr.ts +73 -0
  475. package/src/i18n/setting.he.ts +76 -0
  476. package/src/i18n/setting.hi.ts +76 -0
  477. package/src/i18n/setting.ja.ts +78 -0
  478. package/src/i18n/setting.ko.ts +76 -0
  479. package/src/i18n/setting.pt-BR.ts +78 -0
  480. package/src/i18n/setting.ru.ts +76 -0
  481. package/src/i18n/setting.zh-CN.ts +76 -0
  482. package/src/i18n/style.ar.ts +55 -0
  483. package/src/i18n/style.de.ts +54 -0
  484. package/src/i18n/style.es.ts +54 -0
  485. package/src/i18n/style.fr.ts +54 -0
  486. package/src/i18n/style.he.ts +54 -0
  487. package/src/i18n/style.hi.ts +54 -0
  488. package/src/i18n/style.ja.ts +54 -0
  489. package/src/i18n/style.ko.ts +54 -0
  490. package/src/i18n/style.pt-BR.ts +56 -0
  491. package/src/i18n/style.ru.ts +54 -0
  492. package/src/i18n/style.zh-CN.ts +54 -0
  493. package/src/i18n/styling.ar.ts +295 -0
  494. package/src/i18n/styling.de.ts +285 -0
  495. package/src/i18n/styling.es.ts +317 -0
  496. package/src/i18n/styling.fr.ts +285 -0
  497. package/src/i18n/styling.he.ts +307 -0
  498. package/src/i18n/styling.hi.ts +323 -0
  499. package/src/i18n/styling.ja.ts +317 -0
  500. package/src/i18n/styling.ko.ts +311 -0
  501. package/src/i18n/styling.pt-BR.ts +301 -0
  502. package/src/i18n/styling.ru.ts +301 -0
  503. package/src/i18n/styling.zh-CN.ts +307 -0
  504. package/src/i18n/temporal.ar.ts +31 -0
  505. package/src/i18n/temporal.de.ts +24 -0
  506. package/src/i18n/temporal.es.ts +27 -0
  507. package/src/i18n/temporal.fr.ts +28 -0
  508. package/src/i18n/temporal.he.ts +31 -0
  509. package/src/i18n/temporal.hi.ts +31 -0
  510. package/src/i18n/temporal.ja.ts +31 -0
  511. package/src/i18n/temporal.ko.ts +31 -0
  512. package/src/i18n/temporal.pt-BR.ts +31 -0
  513. package/src/i18n/temporal.ru.ts +31 -0
  514. package/src/i18n/temporal.zh-CN.ts +31 -0
  515. package/src/i18n/transitions.ar.ts +97 -0
  516. package/src/i18n/transitions.de.ts +97 -0
  517. package/src/i18n/transitions.es.ts +97 -0
  518. package/src/i18n/transitions.fr.ts +97 -0
  519. package/src/i18n/transitions.he.ts +97 -0
  520. package/src/i18n/transitions.hi.ts +97 -0
  521. package/src/i18n/transitions.ja.ts +97 -0
  522. package/src/i18n/transitions.ko.ts +97 -0
  523. package/src/i18n/transitions.pt-BR.ts +97 -0
  524. package/src/i18n/transitions.ru.ts +97 -0
  525. package/src/i18n/transitions.zh-CN.ts +97 -0
  526. package/src/i18n/types.ts +158 -0
  527. package/src/i18n/vehicles.ar.ts +137 -0
  528. package/src/i18n/vehicles.de.ts +125 -0
  529. package/src/i18n/vehicles.es.ts +138 -0
  530. package/src/i18n/vehicles.fr.ts +125 -0
  531. package/src/i18n/vehicles.he.ts +136 -0
  532. package/src/i18n/vehicles.hi.ts +138 -0
  533. package/src/i18n/vehicles.ja.ts +138 -0
  534. package/src/i18n/vehicles.ko.ts +138 -0
  535. package/src/i18n/vehicles.pt-BR.ts +136 -0
  536. package/src/i18n/vehicles.ru.ts +136 -0
  537. package/src/i18n/vehicles.zh-CN.ts +136 -0
  538. package/src/i18n/voice-character.ar.ts +126 -0
  539. package/src/i18n/voice-character.de.ts +126 -0
  540. package/src/i18n/voice-character.es.ts +126 -0
  541. package/src/i18n/voice-character.fr.ts +126 -0
  542. package/src/i18n/voice-character.he.ts +126 -0
  543. package/src/i18n/voice-character.hi.ts +126 -0
  544. package/src/i18n/voice-character.ja.ts +126 -0
  545. package/src/i18n/voice-character.ko.ts +126 -0
  546. package/src/i18n/voice-character.pt-BR.ts +126 -0
  547. package/src/i18n/voice-character.ru.ts +126 -0
  548. package/src/i18n/voice-character.zh-CN.ts +126 -0
  549. package/src/i18n/voice-delivery.ar.ts +77 -0
  550. package/src/i18n/voice-delivery.de.ts +77 -0
  551. package/src/i18n/voice-delivery.es.ts +77 -0
  552. package/src/i18n/voice-delivery.fr.ts +77 -0
  553. package/src/i18n/voice-delivery.he.ts +77 -0
  554. package/src/i18n/voice-delivery.hi.ts +77 -0
  555. package/src/i18n/voice-delivery.ja.ts +77 -0
  556. package/src/i18n/voice-delivery.ko.ts +77 -0
  557. package/src/i18n/voice-delivery.pt-BR.ts +77 -0
  558. package/src/i18n/voice-delivery.ru.ts +77 -0
  559. package/src/i18n/voice-delivery.zh-CN.ts +77 -0
  560. package/src/i18n/weapons.ar.ts +115 -0
  561. package/src/i18n/weapons.de.ts +114 -0
  562. package/src/i18n/weapons.es.ts +116 -0
  563. package/src/i18n/weapons.fr.ts +103 -0
  564. package/src/i18n/weapons.he.ts +114 -0
  565. package/src/i18n/weapons.hi.ts +116 -0
  566. package/src/i18n/weapons.ja.ts +116 -0
  567. package/src/i18n/weapons.ko.ts +116 -0
  568. package/src/i18n/weapons.pt-BR.ts +114 -0
  569. package/src/i18n/weapons.ru.ts +114 -0
  570. package/src/i18n/weapons.zh-CN.ts +114 -0
  571. package/src/image-critic-node.ts +61 -0
  572. package/src/image-critic-types.ts +40 -0
  573. package/src/index.ts +866 -0
  574. package/src/inject-upstream.ts +15 -0
  575. package/src/inpaint-region.ts +51 -0
  576. package/src/json-evaluator.ts +732 -0
  577. package/src/json-path.ts +52 -0
  578. package/src/lip-sync-pricing.ts +90 -0
  579. package/src/list-merge.ts +40 -0
  580. package/src/list-sort.ts +122 -0
  581. package/src/list-source-resolver.ts +50 -0
  582. package/src/llm-models.ts +245 -0
  583. package/src/location-mention-slug.ts +291 -0
  584. package/src/location-preset-catalog-map.ts +128 -0
  585. package/src/loop-delimiter.ts +73 -0
  586. package/src/lora-routing.ts +95 -0
  587. package/src/lottie-overlay-catalog.ts +175 -0
  588. package/src/lottie-slots.ts +309 -0
  589. package/src/model-catalog.ts +2386 -0
  590. package/src/model-constants.ts +1910 -0
  591. package/src/model-tree.ts +120 -0
  592. package/src/monetization.ts +15 -0
  593. package/src/multi-pick.ts +42 -0
  594. package/src/node-default-mappings.ts +262 -0
  595. package/src/node-mappable-fields.ts +70 -0
  596. package/src/node-preset-export.ts +56 -0
  597. package/src/node-preset-extract.ts +147 -0
  598. package/src/node-refs.ts +253 -0
  599. package/src/node-runtime-keys.ts +117 -0
  600. package/src/object-aspect-defaults.ts +72 -0
  601. package/src/object-picker-types.ts +22 -0
  602. package/src/parameter-node-value.ts +284 -0
  603. package/src/pinterest-url.ts +28 -0
  604. package/src/pipeline-chat.ts +72 -0
  605. package/src/pipeline-defaults.ts +318 -0
  606. package/src/pipeline-events.ts +162 -0
  607. package/src/pipeline-state-types.ts +196 -0
  608. package/src/pipeline-types.ts +647 -0
  609. package/src/pipeline-validation.ts +87 -0
  610. package/src/presentation-types.ts +23 -0
  611. package/src/presentation-utils.ts +397 -0
  612. package/src/producer-types.ts +188 -0
  613. package/src/progress-curve.ts +99 -0
  614. package/src/provider-directive-defaults.ts +69 -0
  615. package/src/reduce-strategy-registry.ts +121 -0
  616. package/src/reference-board-templates.ts +81 -0
  617. package/src/reference-roles.ts +153 -0
  618. package/src/reference-sheet/__tests__/board-to-column.test.ts +20 -0
  619. package/src/reference-sheet/__tests__/catalog.test.ts +50 -0
  620. package/src/reference-sheet/__tests__/cost.test.ts +38 -0
  621. package/src/reference-sheet/__tests__/no-drift.test.ts +28 -0
  622. package/src/reference-sheet/__tests__/panel-plan.test.ts +61 -0
  623. package/src/reference-sheet/__tests__/panel-prompts.test.ts +17 -0
  624. package/src/reference-sheet/__tests__/plan-generation.test.ts +72 -0
  625. package/src/reference-sheet/__tests__/presets.test.ts +54 -0
  626. package/src/reference-sheet/__tests__/types.test.ts +24 -0
  627. package/src/reference-sheet/catalog.ts +144 -0
  628. package/src/reference-sheet/cost.ts +37 -0
  629. package/src/reference-sheet/credit-id.ts +7 -0
  630. package/src/reference-sheet/index.ts +8 -0
  631. package/src/reference-sheet/panel-plan.ts +65 -0
  632. package/src/reference-sheet/panel-prompts.ts +14 -0
  633. package/src/reference-sheet/plan-generation.ts +79 -0
  634. package/src/reference-sheet/presets.ts +77 -0
  635. package/src/reference-sheet/types.ts +92 -0
  636. package/src/repeat-types.ts +97 -0
  637. package/src/resolve-field-mappings.ts +119 -0
  638. package/src/route-filter.ts +80 -0
  639. package/src/scene-helper-types.ts +249 -0
  640. package/src/scene-node-types.ts +281 -0
  641. package/src/scraper-actors.ts +57 -0
  642. package/src/scraper-output-schemas.ts +25 -0
  643. package/src/seasons.ts +45 -0
  644. package/src/selector.ts +864 -0
  645. package/src/settled-with-limit.ts +42 -0
  646. package/src/shot-element.ts +43 -0
  647. package/src/social-media-specs.ts +121 -0
  648. package/src/social-post.ts +24 -0
  649. package/src/sub-workflow-validation.ts +78 -0
  650. package/src/supported-fonts.ts +40 -0
  651. package/src/surround.ts +113 -0
  652. package/src/switchx-pricing.ts +33 -0
  653. package/src/text-separators.ts +59 -0
  654. package/src/to-connected-references.ts +77 -0
  655. package/src/types.ts +272 -0
  656. package/src/variant-job-id.ts +17 -0
  657. package/src/vehicles.ts +213 -0
  658. package/src/video-analysis-pricing.ts +74 -0
  659. package/src/video-analysis.ts +127 -0
  660. package/src/video-duration.ts +25 -0
  661. package/src/voice-changer-models.ts +36 -0
  662. package/src/voice-matcher-types.ts +37 -0
  663. package/src/voices.ts +92 -0
  664. package/src/weapons.ts +190 -0
  665. package/src/workflow-export.ts +153 -0
@@ -0,0 +1,31 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // Speed
5
+ "real-time": { label: "Реальное время", description: "Нормальная скорость воспроизведения" },
6
+ "slow-motion": { label: "Замедленная съёмка", description: "Умеренно замедленные кадры" },
7
+ "super-slow-mo": { label: "Сверхзамедленная съёмка", description: "Чрезвычайно замедленные кадры" },
8
+ "time-lapse": { label: "Тайм-лапс", description: "Сжатое время, быстрое течение" },
9
+ "hyper-lapse": { label: "Гипер-лапс", description: "Движущийся тайм-лапс" },
10
+ "speed-ramp": { label: "Скоростной разгон", description: "Динамичное изменение скорости в кадре" },
11
+
12
+ // Freeze
13
+ "full-freeze": { label: "Полная стоп-кадр", description: "Всё движение заморожено" },
14
+ "bullet-time": { label: "Bullet Time", description: "Объект заморожен, камера орбитирует" },
15
+ "frozen-subject": { label: "Замёрший объект", description: "Объект заморожен, мир движется" },
16
+ "moving-subject": { label: "Движущийся объект", description: "Объект движется, мир заморожен" },
17
+
18
+ // Direction
19
+ "forward": { label: "Вперёд", description: "Нормальное воспроизведение вперёд" },
20
+ "reverse": { label: "Реверс / Перемотка", description: "Время воспроизводится назад" },
21
+ "loop-boomerang": { label: "Цикл / Бумеранг", description: "Вперёд, затем назад" },
22
+
23
+ // Shutter
24
+ "long-exposure": { label: "Длинная выдержка", description: "Следы движения и полосы" },
25
+ "crisp-shutter": { label: "Чёткая выдержка", description: "Резкое движение, без размытия" },
26
+ "motion-blur": { label: "Моушн-блюр", description: "Выраженное направленное размытие" },
27
+ "stutter-strobe": { label: "Стробоскоп", description: "Прерывистое стробо-движение" },
28
+ "stop-motion": { label: "Стоп-моушн", description: "Покадровое движение шагами" },
29
+ }
30
+
31
+ export default map
@@ -0,0 +1,31 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // Speed
5
+ "real-time": { label: "实时", description: "正常播放速度" },
6
+ "slow-motion": { label: "慢动作", description: "中等程度的慢放镜头" },
7
+ "super-slow-mo": { label: "超慢动作", description: "极慢的镜头" },
8
+ "time-lapse": { label: "延时摄影", description: "时间被压缩、快速流逝" },
9
+ "hyper-lapse": { label: "移动延时", description: "带运动的延时摄影" },
10
+ "speed-ramp": { label: "速度变化", description: "镜头中途的动态速度变化" },
11
+
12
+ // Freeze
13
+ "full-freeze": { label: "全画面定格", description: "画面所有运动定格" },
14
+ "bullet-time": { label: "子弹时间", description: "主体定格、镜头环绕" },
15
+ "frozen-subject": { label: "主体定格", description: "主体不动、世界仍在运动" },
16
+ "moving-subject": { label: "动态主体", description: "主体在动、世界静止" },
17
+
18
+ // Direction
19
+ "forward": { label: "正向", description: "正常正向播放" },
20
+ "reverse": { label: "倒放 / 倒带", description: "时间倒着走" },
21
+ "loop-boomerang": { label: "回环 / 回旋", description: "正放后倒放" },
22
+
23
+ // Shutter
24
+ "long-exposure": { label: "长曝光", description: "运动拉丝、光轨" },
25
+ "crisp-shutter": { label: "高速快门", description: "锐利运动、无模糊" },
26
+ "motion-blur": { label: "运动模糊", description: "明显的方向性运动模糊" },
27
+ "stutter-strobe":{ label: "卡帧 / 频闪", description: "频闪般卡顿的运动" },
28
+ "stop-motion": { label: "定格动画", description: "逐帧步进的运动" },
29
+ }
30
+
31
+ export default map
@@ -0,0 +1,97 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // ── Standard ──
5
+ "auto": { label: "تلقائي", description: "يختار النموذج الانتقال المناسب" },
6
+ "none": { label: "بلا انتقال / قطع مباشر", description: "تبديل فوري بدون انتقال" },
7
+ "cross-dissolve": { label: "تلاشٍ متقاطع", description: "مزج تدريجي بين اللقطتين" },
8
+ "fade-to-black": { label: "تلاشٍ إلى الأسود", description: "تظلم تدريجي ثم تظهر اللقطة التالية" },
9
+ "fade-to-white": { label: "تلاشٍ إلى الأبيض", description: "توهج حتى الأبيض ثم تظهر اللقطة" },
10
+ "match-cut": { label: "قطع متطابق", description: "تطابق الشكل أو الحركة بين اللقطتين" },
11
+ "smash-cut": { label: "قطع مفاجئ", description: "قطع مفاجئ صارخ بين لقطتين متباينتين" },
12
+ "iris": { label: "انتقال القزحية", description: "دائرة تنغلق ثم تنفتح على اللقطة الجديدة" },
13
+ "wipe": { label: "مسح خطي", description: "خط يجتاح الإطار ليكشف اللقطة الجديدة" },
14
+ "roll-transition": { label: "دوران", description: "الإطار يدور 90-180 درجة للانتقال" },
15
+ "seamless-match": { label: "تطابق سلس", description: "قطع خفي يُموَّه بتطابق الحركة واللون" },
16
+
17
+ // ── Time ──
18
+ "fast-forward-day-night": { label: "تسريع (نهار ← ليل)", description: "مرور الزمن من النهار إلى الليل في نفس المشهد" },
19
+ "fast-forward-night-day": { label: "تسريع (ليل ← فجر)", description: "مرور الزمن من الليل إلى الفجر في نفس المشهد" },
20
+ "seasonal-shift": { label: "تحول الفصول", description: "نفس المشهد عبر الفصول الأربعة" },
21
+ "aging": { label: "تقدم العمر", description: "الشخص يشيخ أمام الكاميرا" },
22
+ "rewind": { label: "ترجيع", description: "الزمن يعود للخلف، الحركة تُعاد عكسياً" },
23
+ "freeze-frame-jump": { label: "تجميد وقفز", description: "الحركة تتوقف ثم تقفز لحظة أخرى" },
24
+ "weather-shift": { label: "تحول الطقس", description: "نفس المشهد في طقس مختلف" },
25
+ "flashback": { label: "استرجاع", description: "انتقال ذاكرة إلى لحظة ماضية" },
26
+
27
+ // ── Element ──
28
+ "dissolve-to-mist": { label: "ذوبان في الضباب", description: "الشخص يتحول لضباب يتلاشى ثم يعود" },
29
+ "water-splash": { label: "رشة ماء", description: "الشخص يتحول لماء يتطاير ثم يتشكّل" },
30
+ "sand-scatter": { label: "تناثر رمل", description: "الشخص يتفتت رملاً وتعصف به الريح" },
31
+ "fire-burnup": { label: "احتراق", description: "الشخص يحترق جمراً ثم يتجمع من جديد" },
32
+ "smoke-puff": { label: "نفخة دخان", description: "الشخص يختفي في دخان ثم يعود" },
33
+ "magic-sparkles": { label: "بريق سحري", description: "تفتت إلى جسيمات متوهجة ثم إعادة تشكّل" },
34
+ "lightning-flash": { label: "ضربة برق", description: "صاعقة تضيء الإطار ويتبدّل المشهد" },
35
+ "ink-splash": { label: "رشة حبر", description: "حبر يغطي الإطار ثم ينكشف المشهد الجديد" },
36
+ "sand-storm": { label: "عاصفة رملية", description: "عاصفة تبتلع الإطار ويتغير المشهد خلفها" },
37
+ "paint-splash": { label: "رشة طلاء", description: "طلاء يغطي الإطار ثم يكشف المشهد الجديد" },
38
+ "aurora-sweep": { label: "شفق قطبي", description: "ستارة شفق تجتاح الإطار وتكشف المشهد الجديد" },
39
+ "sakura-petals": { label: "عاصفة زهر الكرز", description: "وابل من بتلات الكرز يغطي الإطار" },
40
+ "garden-bloom": { label: "تفتح الحديقة", description: "أزهار تتفتح وتفتح الستار على المشهد الجديد" },
41
+ "powder-burst": { label: "انفجار مسحوق ملون", description: "سحابة بهار ملونة تنتشر وتكشف المشهد الجديد" },
42
+
43
+ // ── Morph ──
44
+ "liquid-morph": { label: "تحول سائل", description: "الموضوع يذوب ويعيد تشكّله كموضوع جديد" },
45
+ "pixelate-reform": { label: "بكسلة وإعادة بناء", description: "بكسلة تتناثر ثم تتجمع كموضوع جديد" },
46
+ "shatter-glass": { label: "تحطم وإعادة بناء", description: "الموضوع يتكسر كالزجاج ثم يتجمع" },
47
+ "origami-fold": { label: "طي أوريغامي", description: "الموضوع يتطوى كورق ثم يكشف الموضوع الجديد" },
48
+ "vortex-swirl": { label: "دوامة", description: "الموضوع يلتف في دوامة ثم ينفك كموضوع جديد" },
49
+ "dream-ripple": { label: "تموج حلم", description: "موجة دائرية تعبر الإطار تكشف المشهد الجديد" },
50
+ "wireframe-morph": { label: "تحول شبكي", description: "الموضوع يتحول إطاراً هندسياً ثم يعيد تشكّله" },
51
+ "polygon-shatter": { label: "تشتت مضلعات", description: "الموضوع يتشظى مضلعات منخفضة ثم يتجمع" },
52
+ "melt-down": { label: "ذوبان وإعادة بناء", description: "الموضوع يذوب كالشمع ثم يصعد من جديد" },
53
+
54
+ // ── Portal ──
55
+ "zoom-into-eye": { label: "تكبير في العين", description: "الكاميرا تقترب من البؤبؤ وتدخل عالماً داخله" },
56
+ "zoom-into-mirror": { label: "تكبير في المرآة", description: "الكاميرا تخترق المرآة لعالم الانعكاس" },
57
+ "zoom-into-screen": { label: "تكبير في الشاشة", description: "الكاميرا تخترق شاشة التلفاز أو الهاتف" },
58
+ "zoom-into-book": { label: "تكبير في الكتاب", description: "الكاميرا تدخل إلى رسم في كتاب" },
59
+ "walk-through-door": { label: "المرور عبر باب", description: "الكاميرا تعبر الباب إلى مشهد جديد" },
60
+ "fall-into-hole": { label: "السقوط في فتحة", description: "الكاميرا تسقط في فتحة وتظهر في مشهد جديد" },
61
+ "pull-out-reveal": { label: "سحب للكشف", description: "يكشف أن المشهد كان داخل صورة أو إطار" },
62
+ "zoom-into-mouth": { label: "تكبير في الفم", description: "الكاميرا تدخل الفم لتظهر في عالم جديد" },
63
+ "push-through-glass": { label: "اختراق الزجاج", description: "الكاميرا تخترق لوح زجاج لعالم آخر" },
64
+ "soul-jump": { label: "قفزة الروح", description: "روح شفافة تخرج وتدخل جسداً جديداً" },
65
+
66
+ // ── Physics ──
67
+ "explosion-blast": { label: "موجة انفجار", description: "انفجار يجتاح الإطار ويكشف المشهد الجديد" },
68
+ "shockwave": { label: "موجة صدمة", description: "موجة صدمة تشوّه الإطار ويتبدل المشهد" },
69
+ "punch-into-camera": { label: "لكمة للكاميرا", description: "قبضة تضرب العدسة ويتغير المشهد" },
70
+ "debris-shower": { label: "وابل حطام", description: "حطام يعبر الإطار ويتكشف المشهد خلفه" },
71
+ "gravity-flip": { label: "انعكاس الجاذبية", description: "الجاذبية تنعكس والكاميرا تدور 180 درجة" },
72
+ "building-explosion": { label: "انفجار مبنى", description: "منشأة تنفجر والمشهد يُكشف خلف الدخان" },
73
+ "vehicle-explosion": { label: "انفجار مركبة", description: "مركبة تنفجر واللهب يغطي الإطار ثم يُكشف المشهد" },
74
+ "jump-match": { label: "قفزة متطابقة", description: "الشخص يقفز وعند الهبوط يكون في مشهد جديد" },
75
+ "hand-swipe": { label: "مسح اليد", description: "يد تمر أمام العدسة ويتغير المشهد" },
76
+
77
+ // ── Light ──
78
+ "white-flash": { label: "وميض أبيض", description: "الإطار يتوهج أبيض ثم يظهر المشهد الجديد" },
79
+ "lens-flare-swipe": { label: "انعكاس العدسة", description: "وهج عدسة أنامورفي يجتاح الإطار" },
80
+ "light-streak": { label: "شعاع ضوء", description: "شعاع ضوء يخترق الإطار ويكشف المشهد الجديد" },
81
+ "color-invert": { label: "وميض عكس الألوان", description: "الألوان تنعكس لحظة والمشهد يتبدل" },
82
+ "sun-glare": { label: "وهج الشمس", description: "وهج شمسي يغمر العدسة ثم يُكشف المشهد" },
83
+ "lens-crack": { label: "تشقق العدسة", description: "العدسة تتشقق والمشهد الجديد يظهر خلفها" },
84
+ "dirty-lens-wipe": { label: "مسح العدسة الملوثة", description: "العدسة يُنظّفها مسح ويكشف المشهد الجديد" },
85
+ "eye-light-burst": { label: "شعاع عين مضيء", description: "شعاع ساطع من عيني الشخص يغطي الإطار" },
86
+
87
+ // ── Glitch ──
88
+ "digital-glitch": { label: "خلل رقمي", description: "تشويه رقمي: فصل RGB وتمزق سطور وداتاموش" },
89
+ "vhs-rewind": { label: "ترجيع VHS", description: "تشويه تتبع VHS وإرجاع شريط" },
90
+ "datamosh": { label: "داتاموش", description: "نزيف معاملات الحركة بين اللقطتين" },
91
+ "channel-flip": { label: "تقليب القناة", description: "تشويش تلفزيوني وتقليب القنوات" },
92
+ "hologram-flicker": { label: "وميض هولوجرام", description: "وميض هولوجرام يجسّد المشهد الجديد" },
93
+ "display-wipe": { label: "مسح الشاشة", description: "المشهد يُضغط في شاشة صغيرة ثم تتوسع" },
94
+ "double-exposure": { label: "تعريض مزدوج", description: "لقطتان شفافتان تتراكبان ثم تتلاشى الأولى" },
95
+ }
96
+
97
+ export default map
@@ -0,0 +1,97 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // ── Standard ──
5
+ "auto": { label: "Automatisch", description: "Das Modell wählt den Übergang" },
6
+ "none": { label: "Kein / Harter Schnitt", description: "Sofortiger Schnitt, kein Übergang" },
7
+ "cross-dissolve": { label: "Überblendung", description: "Allmähliche Mischung zwischen den Einstellungen" },
8
+ "fade-to-black": { label: "Abblende auf Schwarz", description: "Dunkelt auf Schwarz ab, zweite Einstellung erscheint" },
9
+ "fade-to-white": { label: "Abblende auf Weiß", description: "Erstrahlt in Weiß, zweite Einstellung erscheint" },
10
+ "match-cut": { label: "Match Cut", description: "Form- oder Bewegungsübereinstimmung zwischen Einstellungen" },
11
+ "smash-cut": { label: "Smash Cut", description: "Abrupter Schnitt zwischen kontrastierenden Einstellungen" },
12
+ "iris": { label: "Irisblende", description: "Iris schließt und öffnet sich zur zweiten Einstellung" },
13
+ "wipe": { label: "Wischblende", description: "Linearer Wisch ersetzt die erste Einstellung" },
14
+ "roll-transition": { label: "Drehübergang", description: "Bild dreht 90-180°, zweite Einstellung am Ende" },
15
+ "seamless-match": { label: "Nahtloser Schnitt", description: "Versteckter Schnitt durch angeglichene Bewegung und Farbe" },
16
+
17
+ // ── Time ──
18
+ "fast-forward-day-night": { label: "Zeitraffer Tag → Nacht", description: "Zeitraffer von Tag zu Nacht in derselben Szene" },
19
+ "fast-forward-night-day": { label: "Zeitraffer Nacht → Tag", description: "Zeitraffer von Nacht bis Morgengrauen in derselben Szene" },
20
+ "seasonal-shift": { label: "Jahreszeitenwechsel", description: "Dieselbe Szene durch wechselnde Jahreszeiten" },
21
+ "aging": { label: "Alterung", description: "Das Sujet altert sichtbar" },
22
+ "rewind": { label: "Rückspulen", description: "Die Zeit läuft zurück, Bewegung spielt rückwärts" },
23
+ "freeze-frame-jump": { label: "Standbild und Sprung", description: "Aktion friert ein, springt in der Zeit vor" },
24
+ "weather-shift": { label: "Wetterwechsel", description: "Dieselbe Szene bei wechselndem Wetter" },
25
+ "flashback": { label: "Rückblende", description: "Erinnerungsrückblende auf einen früheren Moment" },
26
+
27
+ // ── Element ──
28
+ "dissolve-to-mist": { label: "Auflösung in Nebel", description: "Das Sujet löst sich in Nebel auf und formt sich neu" },
29
+ "water-splash": { label: "Wasserspritzer", description: "Das Sujet wird zu Wasser, spritzt und formt sich neu" },
30
+ "sand-scatter": { label: "Sandstreuung", description: "Das Sujet wird zu Sand und formt sich neu" },
31
+ "fire-burnup": { label: "Verbrennung", description: "Das Sujet verbrennt zu Glut und formt sich neu" },
32
+ "smoke-puff": { label: "Rauchschwade", description: "Das Sujet verschwindet im Rauch und erscheint wieder" },
33
+ "magic-sparkles": { label: "Magische Partikel", description: "Partikelauflösung im Avengers-Stil" },
34
+ "lightning-flash": { label: "Blitzschlag", description: "Ein Blitz schlägt ein, die Szene wechselt im Blitz" },
35
+ "ink-splash": { label: "Tintenspritzer", description: "Tinte bedeckt den Rahmen, die Szene wechselt" },
36
+ "sand-storm": { label: "Sandsturm", description: "Der Sturm hüllt den Rahmen ein, die Szene wechselt" },
37
+ "paint-splash": { label: "Farbspritzer", description: "Farbe bedeckt den Rahmen und enthüllt die neue Szene" },
38
+ "aurora-sweep": { label: "Nordlichtsweep", description: "Das Nordlicht durchquert den Rahmen, die Szene wechselt dahinter" },
39
+ "sakura-petals": { label: "Kirschblütensturm", description: "Ein Sturm aus Kirschblütenblättern durchquert den Rahmen" },
40
+ "garden-bloom": { label: "Gartenblüte", description: "Blumen blühen auf und öffnen sich zur neuen Szene" },
41
+ "powder-burst": { label: "Pulverexplosion", description: "Farbiges Pulver explodiert im Rahmen und zerstreut sich" },
42
+
43
+ // ── Morph ──
44
+ "liquid-morph": { label: "Flüssiger Morph", description: "Das Sujet schmilzt und formt sich zum neuen Sujet" },
45
+ "pixelate-reform": { label: "Pixelierung und Reform", description: "Pixeliert, zerstreut und formt sich neu" },
46
+ "shatter-glass": { label: "Splittern und Reform", description: "Das Sujet zersplittert wie Glas und formt sich neu" },
47
+ "origami-fold": { label: "Origami-Faltung", description: "Das Sujet faltet sich wie Papier zum neuen Sujet" },
48
+ "vortex-swirl": { label: "Vortex-Wirbel", description: "Das Sujet spiralt in einen Vortex und entfaltet sich neu" },
49
+ "dream-ripple": { label: "Traumwelle", description: "Eine Oberflächenwelle enthüllt die neue Szene" },
50
+ "wireframe-morph": { label: "Drahtgitter-Morph", description: "Das Sujet reduziert auf Drahtgitter und formt sich neu" },
51
+ "polygon-shatter": { label: "Polygonale Splitterung", description: "Das Sujet splittert in Polygone und setzt sich neu zusammen" },
52
+ "melt-down": { label: "Schmelze", description: "Das Sujet schmilzt zur Pfütze und formt sich neu" },
53
+
54
+ // ── Portal ──
55
+ "zoom-into-eye": { label: "Zoom ins Auge", description: "Die Kamera taucht in die Pupille ein, neue Welt drinnen" },
56
+ "zoom-into-mirror": { label: "Zoom in den Spiegel", description: "Die Kamera tritt durch den Spiegel, Szene im Spiegelbild" },
57
+ "zoom-into-screen": { label: "Zoom in den Bildschirm", description: "Die Kamera tritt durch den TV- oder Handybildschirm" },
58
+ "zoom-into-book": { label: "Zoom ins Buch", description: "Die Kamera taucht in die Buchillustration ein" },
59
+ "walk-through-door": { label: "Durch die Tür", description: "Durch die Tür in die neue Szene" },
60
+ "fall-into-hole": { label: "Fall in die Öffnung", description: "Die Kamera fällt durch eine Öffnung" },
61
+ "pull-out-reveal": { label: "Rückzug-Enthüllung", description: "Enthüllt, dass die Szene ein Bild in einem größeren Kontext war" },
62
+ "zoom-into-mouth": { label: "Zoom in den Mund", description: "Die Kamera tritt durch den geöffneten Mund in die neue Welt" },
63
+ "push-through-glass": { label: "Durch das Glas", description: "Die Kamera durchquert das Glas in die neue Welt" },
64
+ "soul-jump": { label: "Seelensprung", description: "Eine transluzente Seele verlässt den Körper und betritt den neuen" },
65
+
66
+ // ── Physics ──
67
+ "explosion-blast": { label: "Explosionsdruckwelle", description: "Die Explosion fegt den Rahmen frei, neue Szene erscheint" },
68
+ "shockwave": { label: "Druckwelle", description: "Eine Druckwelle durchquert den Rahmen, die Szene wechselt" },
69
+ "punch-into-camera": { label: "Schlag in die Kamera", description: "Eine Faust trifft die Kamera, die Szene wechselt" },
70
+ "debris-shower": { label: "Trümmerregen", description: "Trümmer fliegen vorbei, dahinter wechselt die Szene" },
71
+ "gravity-flip": { label: "Gravitationsumkehr", description: "Die Schwerkraft kehrt sich um, die Kamera dreht 180°" },
72
+ "building-explosion": { label: "Gebäudeexplosion", description: "Das Gebäude explodiert, die Szene wechselt im Rauch" },
73
+ "vehicle-explosion": { label: "Fahrzeugexplosion", description: "Das Fahrzeug explodiert im Vordergrund, die Szene wechselt" },
74
+ "jump-match": { label: "Sprung-Schnitt", description: "Das Sujet springt, die Landung verbindet mit der neuen Szene" },
75
+ "hand-swipe": { label: "Hand-Wisch", description: "Eine Hand wischt über das Objektiv, die Szene wechselt dahinter" },
76
+
77
+ // ── Light ──
78
+ "white-flash": { label: "Weißblitz", description: "Der Rahmen erstrahlt in reinem Weiß" },
79
+ "lens-flare-swipe": { label: "Flare-Wisch", description: "Ein anamorphes Lens-Flare fegt über den Rahmen" },
80
+ "light-streak": { label: "Lichtstreifen", description: "Ein Lichtstreifen fegt über den Rahmen" },
81
+ "color-invert": { label: "Farbinversionsblitz", description: "Die Farben invertieren kurzzeitig" },
82
+ "sun-glare": { label: "Sonnenblendung", description: "Starkes Sonnenlicht überstrahlt den Rahmen" },
83
+ "lens-crack": { label: "Objektivriss", description: "Das Objektiv reißt, Szene durch das gebrochene Glas" },
84
+ "dirty-lens-wipe": { label: "Objektivreinigung", description: "Das schmutzige Objektiv wird gewischt, neue Szene erscheint" },
85
+ "eye-light-burst": { label: "Augenlichtausbruch", description: "Ein heller Strahl aus den Augen des Sujets überstrahlt den Rahmen" },
86
+
87
+ // ── Glitch ──
88
+ "digital-glitch": { label: "Digitaler Glitch", description: "RGB-Split + Scanlines + Datamosh" },
89
+ "vhs-rewind": { label: "VHS-Rückspulen", description: "VHS-Tracking-Verzerrung" },
90
+ "datamosh": { label: "Datamosh", description: "Bewegungsvektoren bluten zwischen den Szenen" },
91
+ "channel-flip": { label: "Kanalwechsel", description: "TV-Kanalwechsel mit Rauschen" },
92
+ "hologram-flicker": { label: "Hologramm-Flackern", description: "Holografisches Flackern materialisiert die neue Szene" },
93
+ "display-wipe": { label: "Display-Wisch", description: "Die Szene komprimiert zu einem Bildschirm und entfaltet sich" },
94
+ "double-exposure": { label: "Doppelbelichtung", description: "Zwei Szenen überlagern sich, die erste blendet aus" },
95
+ }
96
+
97
+ export default map
@@ -0,0 +1,97 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // ── Standard ──
5
+ "auto": { label: "Automático", description: "El modelo elige la transición" },
6
+ "none": { label: "Sin transición", description: "Corte directo, sin transición" },
7
+ "cross-dissolve": { label: "Disolvencia Cruzada", description: "Mezcla gradual entre planos" },
8
+ "fade-to-black": { label: "Fundido a Negro", description: "Oscurece a negro, emerge el segundo plano" },
9
+ "fade-to-white": { label: "Fundido a Blanco", description: "Estalla en blanco, emerge el segundo plano" },
10
+ "match-cut": { label: "Corte de Raccord", description: "Coincidencia de forma o movimiento entre planos" },
11
+ "smash-cut": { label: "Corte Brusco", description: "Corte abrupto entre planos contrastados" },
12
+ "iris": { label: "Iris", description: "Iris circular cierra y abre en el segundo plano" },
13
+ "wipe": { label: "Barrido", description: "Barrido lineal reemplaza el primer plano" },
14
+ "roll-transition": { label: "Rotación", description: "Cuadro gira 90-180°, segundo plano al aterrizar" },
15
+ "seamless-match": { label: "Corte Invisible", description: "Corte oculto por movimiento y color sincronizados" },
16
+
17
+ // ── Time ──
18
+ "fast-forward-day-night": { label: "Time-lapse Día → Noche", description: "Time-lapse de día a noche en la misma escena" },
19
+ "fast-forward-night-day": { label: "Time-lapse Noche → Día", description: "Time-lapse de noche al amanecer en la misma escena" },
20
+ "seasonal-shift": { label: "Cambio de Estación", description: "La misma escena a través de las estaciones" },
21
+ "aging": { label: "Envejecimiento", description: "El sujeto envejece visiblemente" },
22
+ "rewind": { label: "Rebobinado", description: "El tiempo retrocede, el movimiento va hacia atrás" },
23
+ "freeze-frame-jump": { label: "Congelado y Salto", description: "Acción congelada, salta hacia adelante en el tiempo" },
24
+ "weather-shift": { label: "Cambio Meteorológico", description: "La misma escena con clima cambiante" },
25
+ "flashback": { label: "Flashback", description: "Recuerdo de un momento pasado del sujeto" },
26
+
27
+ // ── Element ──
28
+ "dissolve-to-mist": { label: "Disolución en Niebla", description: "El sujeto se convierte en niebla y se reforma" },
29
+ "water-splash": { label: "Salpicadura de Agua", description: "El sujeto se vuelve agua, salpica y se reforma" },
30
+ "sand-scatter": { label: "Dispersión de Arena", description: "El sujeto se convierte en arena y se reforma" },
31
+ "fire-burnup": { label: "Combustión", description: "El sujeto arde en brasas y se reforma" },
32
+ "smoke-puff": { label: "Bocanada de Humo", description: "El sujeto desaparece en humo y reaparece" },
33
+ "magic-sparkles": { label: "Partículas Mágicas", description: "Disolución en partículas estilo Avengers" },
34
+ "lightning-flash": { label: "Destello de Rayo", description: "Un rayo impacta, la escena cambia en el destello" },
35
+ "ink-splash": { label: "Salpicadura de Tinta", description: "Tinta cubre el cuadro, la escena cambia" },
36
+ "sand-storm": { label: "Tormenta de Arena", description: "La tormenta envuelve el cuadro, la escena cambia" },
37
+ "paint-splash": { label: "Salpicadura de Pintura", description: "Pintura cubre el cuadro y revela la nueva escena" },
38
+ "aurora-sweep": { label: "Barrido de Aurora", description: "La aurora cruza el cuadro, la escena cambia detrás" },
39
+ "sakura-petals": { label: "Tormenta de Sakura", description: "Tormenta de pétalos de cerezo cruza el cuadro" },
40
+ "garden-bloom": { label: "Florecimiento de Jardín", description: "Flores brotan y abren paso a la nueva escena" },
41
+ "powder-burst": { label: "Explosión de Polvo", description: "Polvo de color explota en el cuadro y se disipa" },
42
+
43
+ // ── Morph ──
44
+ "liquid-morph": { label: "Morph Líquido", description: "El sujeto se funde y se reforma como nuevo sujeto" },
45
+ "pixelate-reform": { label: "Pixelado y Reforma", description: "Se pixela, dispersa y reforma como nuevo sujeto" },
46
+ "shatter-glass": { label: "Fragmentación y Reforma", description: "El sujeto se fragmenta como cristal y se reforma" },
47
+ "origami-fold": { label: "Pliegue de Origami", description: "El sujeto se dobla como papel en el nuevo sujeto" },
48
+ "vortex-swirl": { label: "Remolino de Vórtice", description: "El sujeto se arremolina y se despliega como nuevo" },
49
+ "dream-ripple": { label: "Onda Onírica", description: "Onda de superficie revela la nueva escena" },
50
+ "wireframe-morph": { label: "Morph de Malla", description: "El sujeto se reduce a malla y se reforma" },
51
+ "polygon-shatter": { label: "Fragmentación Poligonal", description: "El sujeto se fragmenta en polígonos y se reensambla" },
52
+ "melt-down": { label: "Derretimiento", description: "El sujeto se derrite en charco y se reforma" },
53
+
54
+ // ── Portal ──
55
+ "zoom-into-eye": { label: "Zoom al Ojo", description: "La cámara entra en la pupila, nuevo mundo interior" },
56
+ "zoom-into-mirror": { label: "Zoom al Espejo", description: "La cámara entra en el espejo, escena en el reflejo" },
57
+ "zoom-into-screen": { label: "Zoom a la Pantalla", description: "La cámara entra en la pantalla de TV o móvil" },
58
+ "zoom-into-book": { label: "Zoom al Libro", description: "La cámara entra en la ilustración del libro" },
59
+ "walk-through-door": { label: "Cruzar la Puerta", description: "A través de la puerta hacia la nueva escena" },
60
+ "fall-into-hole": { label: "Caída por el Agujero", description: "La cámara cae por una abertura" },
61
+ "pull-out-reveal": { label: "Alejamiento Revelador", description: "Revela que la escena era una imagen en un contexto mayor" },
62
+ "zoom-into-mouth": { label: "Zoom a la Boca", description: "La cámara entra en la boca abierta hacia el nuevo mundo" },
63
+ "push-through-glass": { label: "Atravesar el Cristal", description: "La cámara atraviesa el cristal hacia el nuevo mundo" },
64
+ "soul-jump": { label: "Salto del Alma", description: "Un alma translúcida sale del cuerpo y entra en el nuevo" },
65
+
66
+ // ── Physics ──
67
+ "explosion-blast": { label: "Explosión", description: "Explosión barre el cuadro, emerge la nueva escena" },
68
+ "shockwave": { label: "Onda Expansiva", description: "Onda expansiva cruza el cuadro, la escena cambia" },
69
+ "punch-into-camera": { label: "Golpe a la Cámara", description: "Un puñetazo golpea la cámara, la escena cambia" },
70
+ "debris-shower": { label: "Lluvia de Escombros", description: "Escombros pasan volando, la escena cambia detrás" },
71
+ "gravity-flip": { label: "Inversión de Gravedad", description: "La gravedad se invierte, la cámara gira 180°" },
72
+ "building-explosion": { label: "Explosión de Edificio", description: "Estructura detona, la escena cambia entre el humo" },
73
+ "vehicle-explosion": { label: "Explosión de Vehículo", description: "Vehículo explota en primer plano, la escena cambia" },
74
+ "jump-match": { label: "Salto Raccord", description: "El sujeto salta, el aterrizaje enlaza con la nueva escena" },
75
+ "hand-swipe": { label: "Barrido de Mano", description: "Una mano barre la lente, la escena cambia al descubrirse" },
76
+
77
+ // ── Light ──
78
+ "white-flash": { label: "Destello Blanco", description: "El cuadro estalla en blanco puro" },
79
+ "lens-flare-swipe": { label: "Barrido de Destello", description: "Destello anamórfico cruza el cuadro" },
80
+ "light-streak": { label: "Estela de Luz", description: "Estela de luz cruza el cuadro" },
81
+ "color-invert": { label: "Flash de Color Invertido", description: "Los colores se invierten brevemente" },
82
+ "sun-glare": { label: "Encandilamiento Solar", description: "El deslumbramiento solar satura el cuadro" },
83
+ "lens-crack": { label: "Grieta en el Objetivo", description: "El objetivo se agrieta, la escena a través del cristal" },
84
+ "dirty-lens-wipe": { label: "Limpieza de Objetivo", description: "El objetivo sucio se limpia revelando la nueva escena" },
85
+ "eye-light-burst": { label: "Destello Ocular", description: "Haz brillante desde los ojos del sujeto satura el cuadro" },
86
+
87
+ // ── Glitch ──
88
+ "digital-glitch": { label: "Glitch Digital", description: "Corrupción RGB + scanlines + datamosh" },
89
+ "vhs-rewind": { label: "Rebobinado VHS", description: "Distorsión de tracking VHS" },
90
+ "datamosh": { label: "Datamosh", description: "Vectores de movimiento sangran entre escenas" },
91
+ "channel-flip": { label: "Cambio de Canal", description: "Cambio de canal TV con estática" },
92
+ "hologram-flicker": { label: "Parpadeo de Holograma", description: "Parpadeo estilo holograma materializa la nueva escena" },
93
+ "display-wipe": { label: "Barrido de Pantalla", description: "La escena se comprime en una pantalla y se expande" },
94
+ "double-exposure": { label: "Doble Exposición", description: "Dos escenas se superponen, la primera se desvanece" },
95
+ }
96
+
97
+ export default map
@@ -0,0 +1,97 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // ── Standard ──
5
+ "auto": { label: "Automatique", description: "Le modèle choisit la transition" },
6
+ "none": { label: "Aucune / Coupe Sèche", description: "Coupe instantanée, sans transition" },
7
+ "cross-dissolve": { label: "Fondu Enchaîné", description: "Mélange progressif entre les plans" },
8
+ "fade-to-black": { label: "Fondu au Noir", description: "S'assombrit, le second plan émerge du noir" },
9
+ "fade-to-white": { label: "Fondu au Blanc", description: "Sature de blanc, le second plan en émerge" },
10
+ "match-cut": { label: "Coupe sur Raccord", description: "Correspondance de forme ou mouvement entre plans" },
11
+ "smash-cut": { label: "Coupe Violente", description: "Coupe abrupte entre plans contrastés" },
12
+ "iris": { label: "Cache Iris", description: "L'iris ferme puis ouvre sur le second plan" },
13
+ "wipe": { label: "Balayage", description: "Balayage linéaire remplace le premier plan" },
14
+ "roll-transition": { label: "Rotation", description: "Le cadre pivote 90-180°, second plan à l'arrivée" },
15
+ "seamless-match": { label: "Coupe Invisible", description: "Coupe masquée par mouvement et couleur synchronisés" },
16
+
17
+ // ── Time ──
18
+ "fast-forward-day-night": { label: "Accéléré Jour → Nuit", description: "Accéléré de jour à nuit sur la même scène" },
19
+ "fast-forward-night-day": { label: "Accéléré Nuit → Jour", description: "Accéléré de nuit à l'aube sur la même scène" },
20
+ "seasonal-shift": { label: "Glissement Saisonnier", description: "La même scène à travers les saisons" },
21
+ "aging": { label: "Vieillissement", description: "Le sujet vieillit visiblement" },
22
+ "rewind": { label: "Rembobinage", description: "Le temps recule, le mouvement joue à l'envers" },
23
+ "freeze-frame-jump": { label: "Image Gelée et Saut", description: "L'action se fige, saute en avant dans le temps" },
24
+ "weather-shift": { label: "Changement Météo", description: "La même scène sous différentes météos" },
25
+ "flashback": { label: "Flashback", description: "Retour en mémoire vers un moment passé du sujet" },
26
+
27
+ // ── Element ──
28
+ "dissolve-to-mist": { label: "Dissolution en Brume", description: "Le sujet se dissout en brume puis se reforme" },
29
+ "water-splash": { label: "Éclaboussure d'Eau", description: "Le sujet devient eau, éclabousse et se reforme" },
30
+ "sand-scatter": { label: "Dispersion de Sable", description: "Le sujet devient sable et se reforme" },
31
+ "fire-burnup": { label: "Combustion", description: "Le sujet brûle en braises et se reforme" },
32
+ "smoke-puff": { label: "Bouffée de Fumée", description: "Le sujet disparaît dans la fumée et réapparaît" },
33
+ "magic-sparkles": { label: "Particules Magiques", description: "Dissolution en particules style Avengers" },
34
+ "lightning-flash": { label: "Éclair", description: "Un éclair frappe, la scène change dans le flash" },
35
+ "ink-splash": { label: "Éclaboussure d'Encre", description: "L'encre couvre le cadre, la scène change" },
36
+ "sand-storm": { label: "Tempête de Sable", description: "La tempête enveloppe le cadre, la scène change" },
37
+ "paint-splash": { label: "Éclaboussure de Peinture", description: "La peinture couvre le cadre et révèle la nouvelle scène" },
38
+ "aurora-sweep": { label: "Balayage d'Aurore", description: "L'aurore traverse le cadre, la scène change derrière" },
39
+ "sakura-petals": { label: "Tempête de Sakura", description: "Une tempête de pétales de cerisier traverse le cadre" },
40
+ "garden-bloom": { label: "Floraison du Jardin", description: "Des fleurs éclosent et s'ouvrent sur la nouvelle scène" },
41
+ "powder-burst": { label: "Explosion de Poudre", description: "De la poudre colorée explose dans le cadre et se dissipe" },
42
+
43
+ // ── Morph ──
44
+ "liquid-morph": { label: "Morphose Liquide", description: "Le sujet fond et se reforme en nouveau sujet" },
45
+ "pixelate-reform": { label: "Pixellisation et Reforme", description: "Se pixellise, se disperse et se reforme" },
46
+ "shatter-glass": { label: "Brisure et Reforme", description: "Le sujet se brise comme du verre et se reforme" },
47
+ "origami-fold": { label: "Pliage Origami", description: "Le sujet se plie comme du papier en nouveau sujet" },
48
+ "vortex-swirl": { label: "Tourbillon Vortex", description: "Le sujet tourbillonne en vortex et se déploie" },
49
+ "dream-ripple": { label: "Ondulation Onirique", description: "Une ondulation de surface révèle la nouvelle scène" },
50
+ "wireframe-morph": { label: "Morphose Fil de Fer", description: "Le sujet réduit à une maille et se reforme" },
51
+ "polygon-shatter": { label: "Fragmentation Polygonale", description: "Le sujet se fragmente en polygones et se réassemble" },
52
+ "melt-down": { label: "Fonte", description: "Le sujet fond en flaque et se reforme" },
53
+
54
+ // ── Portal ──
55
+ "zoom-into-eye": { label: "Zoom dans l'Œil", description: "La caméra plonge dans la pupille, nouveau monde intérieur" },
56
+ "zoom-into-mirror": { label: "Zoom dans le Miroir", description: "La caméra pénètre le miroir, scène dans le reflet" },
57
+ "zoom-into-screen": { label: "Zoom dans l'Écran", description: "La caméra pénètre l'écran TV ou téléphone" },
58
+ "zoom-into-book": { label: "Zoom dans le Livre", description: "La caméra plonge dans l'illustration du livre" },
59
+ "walk-through-door": { label: "Franchir la Porte", description: "À travers la porte vers la nouvelle scène" },
60
+ "fall-into-hole": { label: "Chute dans le Trou", description: "La caméra tombe par une ouverture" },
61
+ "pull-out-reveal": { label: "Recul Révélateur", description: "Révèle que la scène était une image dans un contexte plus grand" },
62
+ "zoom-into-mouth": { label: "Zoom dans la Bouche", description: "La caméra pénètre la bouche ouverte vers le nouveau monde" },
63
+ "push-through-glass": { label: "Traversée du Verre", description: "La caméra traverse le verre vers le nouveau monde" },
64
+ "soul-jump": { label: "Saut d'Âme", description: "Une âme translucide quitte le corps et entre dans le nouveau" },
65
+
66
+ // ── Physics ──
67
+ "explosion-blast": { label: "Souffle d'Explosion", description: "L'explosion balaie le cadre, la nouvelle scène émerge" },
68
+ "shockwave": { label: "Onde de Choc", description: "Une onde de choc traverse le cadre, la scène change" },
69
+ "punch-into-camera": { label: "Coup dans la Caméra", description: "Un poing frappe la caméra, la scène change" },
70
+ "debris-shower": { label: "Pluie de Débris", description: "Des débris volent devant, la scène change derrière" },
71
+ "gravity-flip": { label: "Inversion de Gravité", description: "La gravité s'inverse, la caméra pivote de 180°" },
72
+ "building-explosion": { label: "Explosion de Bâtiment", description: "La structure explose, la scène change dans la fumée" },
73
+ "vehicle-explosion": { label: "Explosion de Véhicule", description: "Le véhicule explose au premier plan, la scène change" },
74
+ "jump-match": { label: "Raccord de Saut", description: "Le sujet saute, l'atterrissage enchaîne sur la nouvelle scène" },
75
+ "hand-swipe": { label: "Balayage de Main", description: "Une main balaie l'objectif, la scène change en se dégageant" },
76
+
77
+ // ── Light ──
78
+ "white-flash": { label: "Flash Blanc", description: "Le cadre sature en blanc pur" },
79
+ "lens-flare-swipe": { label: "Balayage de Flare", description: "Un flare anamorphique traverse le cadre" },
80
+ "light-streak": { label: "Traînée Lumineuse", description: "Une traînée de lumière balaie le cadre" },
81
+ "color-invert": { label: "Flash de Couleurs Inversées", description: "Les couleurs s'inversent brièvement" },
82
+ "sun-glare": { label: "Éblouissement Solaire", description: "L'éblouissement du soleil sature le cadre" },
83
+ "lens-crack": { label: "Fissure d'Objectif", description: "L'objectif se fissure, la scène à travers le verre brisé" },
84
+ "dirty-lens-wipe": { label: "Nettoyage d'Objectif", description: "L'objectif sale est essuyé, révélant la nouvelle scène" },
85
+ "eye-light-burst": { label: "Éclat Oculaire", description: "Un faisceau brillant depuis les yeux du sujet sature le cadre" },
86
+
87
+ // ── Glitch ──
88
+ "digital-glitch": { label: "Glitch Numérique", description: "Corruption RGB + scanlines + datamosh" },
89
+ "vhs-rewind": { label: "Rembobinage VHS", description: "Distorsion de tracking VHS" },
90
+ "datamosh": { label: "Datamosh", description: "Les vecteurs de mouvement saignent entre les scènes" },
91
+ "channel-flip": { label: "Zapping TV", description: "Changement de chaîne avec parasites" },
92
+ "hologram-flicker": { label: "Scintillement d'Hologramme", description: "Scintillement holographique matérialise la nouvelle scène" },
93
+ "display-wipe": { label: "Balayage d'Écran", description: "La scène se comprime dans un écran puis s'étend" },
94
+ "double-exposure": { label: "Double Exposition", description: "Deux scènes se superposent, la première disparaît" },
95
+ }
96
+
97
+ export default map
@@ -0,0 +1,97 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // ── Standard ──
5
+ "auto": { label: "אוטומטי", description: "המודל בוחר את המעבר המתאים" },
6
+ "none": { label: "ללא מעבר / חיתוך ישיר", description: "מעבר מיידי ללא אפקט" },
7
+ "cross-dissolve": { label: "דיסולב הצלבה", description: "מיזוג הדרגתי בין שתי הסצנות" },
8
+ "fade-to-black": { label: "דהייה לשחור", description: "חשיכה הדרגתית ואז הסצנה הבאה" },
9
+ "fade-to-white": { label: "דהייה ללבן", description: "הבהרה עד לבן ואז הסצנה הבאה" },
10
+ "match-cut": { label: "חיתוך התאמה", description: "התאמת צורה או תנועה בין הסצנות" },
11
+ "smash-cut": { label: "חיתוך חד", description: "חיתוך מפתיע בין סצנות מנוגדות" },
12
+ "iris": { label: "אירוס", description: "עיגול נסגר ונפתח על הסצנה החדשה" },
13
+ "wipe": { label: "מחיקה", description: "קו סורק את הפריים וחושף את הסצנה" },
14
+ "roll-transition": { label: "סיבוב", description: "הפריים מסתובב 90-180 מעלות" },
15
+ "seamless-match": { label: "התאמה חלקה", description: "חיתוך נסתר בתנועה וצבע תואמים" },
16
+
17
+ // ── Time ──
18
+ "fast-forward-day-night": { label: "הרצה מהירה (יום ← לילה)", description: "מעבר זמן מהיום ללילה באותה סצנה" },
19
+ "fast-forward-night-day": { label: "הרצה מהירה (לילה ← שחר)", description: "מעבר זמן מהלילה לשחר באותה סצנה" },
20
+ "seasonal-shift": { label: "מעבר עונות", description: "אותה סצנה לאורך ארבע העונות" },
21
+ "aging": { label: "הזדקנות", description: "הדמות מזדקנת מול המצלמה" },
22
+ "rewind": { label: "הרצה לאחור", description: "הזמן מתהפך והתנועה נסוגה" },
23
+ "freeze-frame-jump": { label: "הקפאה וקפיצה", description: "הפריים קופא ואז קופץ לרגע אחר" },
24
+ "weather-shift": { label: "שינוי מזג האוויר", description: "אותה סצנה במזג אוויר שונה" },
25
+ "flashback": { label: "פלאשבק", description: "מעבר זיכרון לרגע מהעבר" },
26
+
27
+ // ── Element ──
28
+ "dissolve-to-mist": { label: "התמוססות לערפל", description: "הדמות מתמוססת לערפל ומתגבשת מחדש" },
29
+ "water-splash": { label: "ניתוז מים", description: "הדמות הופכת למים ואז מתגבשת" },
30
+ "sand-scatter": { label: "פיזור חול", description: "הדמות מתפוררת לחול והרוח סוחפת אותה" },
31
+ "fire-burnup": { label: "שריפה", description: "הדמות עולה בלהבות ונוצרת מחדש מגחלים" },
32
+ "smoke-puff": { label: "ענן עשן", description: "הדמות נעלמת בענן עשן ומופיעה מחדש" },
33
+ "magic-sparkles": { label: "ניצוצות קסם", description: "התפוררות לחלקיקים זוהרים וחזרה" },
34
+ "lightning-flash": { label: "פגיעת ברק", description: "ברק מאיר את הפריים והסצנה משתנה" },
35
+ "ink-splash": { label: "ניתוז דיו", description: "דיו מכסה את הפריים וחושף את הסצנה החדשה" },
36
+ "sand-storm": { label: "סופת חול", description: "סופת חול בולעת את הפריים והסצנה משתנה" },
37
+ "paint-splash": { label: "ניתוז צבע", description: "צבע מכסה את הפריים וחושף את הסצנה החדשה" },
38
+ "aurora-sweep": { label: "שטף זוהר קוטבי", description: "וילון אורורה עובר ומגלה את הסצנה החדשה" },
39
+ "sakura-petals": { label: "סערת פרחי דובדבן", description: "שטף עלי כותרת ורודים מכסה את הפריים" },
40
+ "garden-bloom": { label: "פריחת גן", description: "פרחים פורחים ופותחים וילון לסצנה החדשה" },
41
+ "powder-burst": { label: "התפוצצות אבקת צבע", description: "ענן צבע מתפזר וחושף את הסצנה החדשה" },
42
+
43
+ // ── Morph ──
44
+ "liquid-morph": { label: "מורף נוזלי", description: "הדמות נמסה ומתעצבת מחדש כדמות אחרת" },
45
+ "pixelate-reform": { label: "פיקסולציה ובנייה מחדש", description: "פיקסלים מתפזרים ומתגבשים לדמות חדשה" },
46
+ "shatter-glass": { label: "שבירה ובנייה מחדש", description: "הדמות מתנפצת כזכוכית ומתגבשת מחדש" },
47
+ "origami-fold": { label: "קיפול אוריגמי", description: "הדמות מתקפלת כנייר וחושפת דמות חדשה" },
48
+ "vortex-swirl": { label: "מערבולת", description: "הדמות נבלעת במערבולת ומתגלה כדמות חדשה" },
49
+ "dream-ripple": { label: "גלי חלום", description: "גל מעגלי עובר ומגלה את הסצנה החדשה" },
50
+ "wireframe-morph": { label: "מורף מסגרת תיל", description: "הדמות מתפרקת לרשת גיאומטרית ומתגבשת מחדש" },
51
+ "polygon-shatter": { label: "התפוצצות פוליגונים", description: "הדמות מתפצלת לרסיסים גיאומטריים ומתגבשת" },
52
+ "melt-down": { label: "הימסות ובנייה מחדש", description: "הדמות נמסה כשעווה ועולה מחדש" },
53
+
54
+ // ── Portal ──
55
+ "zoom-into-eye": { label: "זום לתוך עין", description: "המצלמה חודרת לאישון ועולם חדש בפנים" },
56
+ "zoom-into-mirror": { label: "זום לתוך מראה", description: "המצלמה עוברת דרך המראה לעולם ההשתקפות" },
57
+ "zoom-into-screen": { label: "זום לתוך מסך", description: "המצלמה חודרת למסך טלוויזיה או טלפון" },
58
+ "zoom-into-book": { label: "זום לתוך ספר", description: "המצלמה נכנסת לאיור בספר" },
59
+ "walk-through-door": { label: "מעבר דרך דלת", description: "המצלמה עוברת בדלת לסצנה חדשה" },
60
+ "fall-into-hole": { label: "נפילה לחור", description: "המצלמה נופלת לחור ומגיחה לסצנה חדשה" },
61
+ "pull-out-reveal": { label: "משיכה לאחור וחשיפה", description: "חושף שהסצנה הייתה בתוך תמונה או מסגרת" },
62
+ "zoom-into-mouth": { label: "זום לתוך פה", description: "המצלמה נכנסת לפה ומגיחה לעולם חדש" },
63
+ "push-through-glass": { label: "דחיפה דרך זכוכית", description: "המצלמה חודרת לוח זכוכית לעולם אחר" },
64
+ "soul-jump": { label: "קפיצת נשמה", description: "נשמה שקופה עוזבת גוף אחד ונכנסת לאחר" },
65
+
66
+ // ── Physics ──
67
+ "explosion-blast": { label: "גל פיצוץ", description: "פיצוץ סורק את הפריים וחושף את הסצנה החדשה" },
68
+ "shockwave": { label: "גל הדף", description: "גל הדף מעוות את הפריים והסצנה משתנה" },
69
+ "punch-into-camera": { label: "אגרוף למצלמה", description: "אגרוף פוגע בעדשה והסצנה משתנה" },
70
+ "debris-shower": { label: "מקלחת פסולת", description: "פסולת עוברת בפריים והסצנה משתנה מאחוריה" },
71
+ "gravity-flip": { label: "היפוך כבידה", description: "הכבידה מתהפכת והמצלמה מסתובבת 180 מעלות" },
72
+ "building-explosion": { label: "פיצוץ מבנה", description: "מבנה מתפוצץ והסצנה נחשפת מבעד לעשן" },
73
+ "vehicle-explosion": { label: "פיצוץ רכב", description: "רכב מתפוצץ, להבות מכסות את הפריים, והסצנה מתחלפת" },
74
+ "jump-match": { label: "קפיצה תואמת", description: "הדמות קופצת ונוחתת בסצנה חדשה" },
75
+ "hand-swipe": { label: "מחיקת יד", description: "יד עוברת מול העדשה והסצנה משתנה" },
76
+
77
+ // ── Light ──
78
+ "white-flash": { label: "הבזק לבן", description: "הפריים מתמלא לבן ואז מגיחה הסצנה החדשה" },
79
+ "lens-flare-swipe": { label: "החזר עדשה אנמורפי", description: "החזר עדשה אנמורפי סורק את הפריים" },
80
+ "light-streak": { label: "קו אור", description: "קרן אור חוצה את הפריים וחושפת את הסצנה" },
81
+ "color-invert": { label: "היפוך צבעים", description: "הצבעים מתהפכים לרגע והסצנה משתנה" },
82
+ "sun-glare": { label: "בוהק שמש", description: "בוהק שמש מציף את העדשה ואז הסצנה נחשפת" },
83
+ "lens-crack": { label: "סדק בעדשה", description: "העדשה מסתדקת והסצנה החדשה נראית דרכה" },
84
+ "dirty-lens-wipe": { label: "ניגוב עדשה מלוכלכת", description: "ניגוב מנקה את העדשה וחושף את הסצנה החדשה" },
85
+ "eye-light-burst": { label: "פרץ אור מהעיניים", description: "קרן עוצמתית מעיני הדמות מציפה את הפריים" },
86
+
87
+ // ── Glitch ──
88
+ "digital-glitch": { label: "גליץ' דיגיטלי", description: "שיבוש דיגיטלי: פיצול RGB, קריעת שורות, דאטאמוש" },
89
+ "vhs-rewind": { label: "הרצה לאחור VHS", description: "שיבוש טראקינג VHS ואפקט הרצת קלטת" },
90
+ "datamosh": { label: "דאטאמוש", description: "וקטורי תנועה מחלחלים בין הסצנות" },
91
+ "channel-flip": { label: "החלפת ערוץ", description: "הפרעות טלוויזיוניות עם רעש החלפת ערוצים" },
92
+ "hologram-flicker": { label: "מצמוץ הולוגרמה", description: "מצמוץ הולוגרמה מגלה את הסצנה החדשה" },
93
+ "display-wipe": { label: "מחיקת תצוגה", description: "הסצנה מתכווצת למסך קטן ואז מתרחבת" },
94
+ "double-exposure": { label: "חשיפה כפולה", description: "שתי סצנות שקופות חופפות ואז הראשונה דוהה" },
95
+ }
96
+
97
+ export default map