@nodaro/shared 1.4.1

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,317 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // -------------------- Makeup --------------------
5
+ "makeup-natural": { label: "Natural", description: "Maquillaje sutil, sin maquillaje aparente" },
6
+ "makeup-glamour": { label: "Glamour", description: "Look glam completo y pulido" },
7
+ "makeup-smoky": { label: "Ojo Ahumado", description: "Maquillaje de ojos oscuro y dramático" },
8
+ "makeup-bold-lips": { label: "Labios Intensos", description: "Lápiz labial rojo o oscuro fuerte" },
9
+ "makeup-editorial": { label: "Editorial", description: "Maquillaje de moda vanguardista" },
10
+ "makeup-goth": { label: "Gótico", description: "Estética gótica oscura" },
11
+ "makeup-dewy": { label: "Brillo Húmedo", description: "Foco de piel fresca y brillante" },
12
+
13
+ // -------------------- Eyewear --------------------
14
+ "eyewear-sunglasses": { label: "Lentes de Sol", description: "Lentes de sol oscuros genéricos" },
15
+ "eyewear-aviators": { label: "Aviadores", description: "Clásicos lentes aviador" },
16
+ "eyewear-cat-eye": { label: "Cat-Eye", description: "Marcos vintage cat-eye" },
17
+ "eyewear-round": { label: "Redondos / John Lennon", description: "Anteojos redondos de marco de alambre" },
18
+ "eyewear-fashion": { label: "Anteojos de Moda", description: "Marcos de diseñador audaces" },
19
+ "eyewear-sport": { label: "Goggles Deportivos", description: "Anteojos deportivos envolventes" },
20
+
21
+ // -------------------- Headwear --------------------
22
+ "headwear-beanie": { label: "Gorro", description: "Gorro tejido" },
23
+ "headwear-baseball-cap": { label: "Gorra de Béisbol", description: "Gorra con visera curva" },
24
+ "headwear-fedora": { label: "Fedora", description: "Fedora con ala" },
25
+ "headwear-sun-hat": { label: "Sombrero de Sol", description: "Sombrero de sol de ala ancha" },
26
+ "headwear-headband": { label: "Diadema", description: "Diadema para el cabello" },
27
+ "headwear-bandana": { label: "Bandana", description: "Bandana atada alrededor de la cabeza" },
28
+ "headwear-hood": { label: "Capucha", description: "Capucha levantada" },
29
+ "headwear-crown": { label: "Corona", description: "Corona real o decorativa" },
30
+ "headwear-helmet": { label: "Casco", description: "Casco protector" },
31
+ "headwear-veil": { label: "Velo", description: "Velo cubriendo la cara/cabello" },
32
+
33
+ // -------------------- Hair Cut --------------------
34
+ "cut-pixie": { label: "Pixie", description: "Corte pixie corto recortado" },
35
+ "cut-buzz-cut": { label: "Rapado Corto", description: "Rapado muy corto" },
36
+ "cut-crew-cut": { label: "Corte Militar", description: "Clásico corte militar corto degradado" },
37
+ "cut-shaved": { label: "Rapado", description: "Completamente rapado" },
38
+ "cut-undercut": { label: "Undercut", description: "Lados cortos, parte superior larga" },
39
+ "cut-faux-hawk": { label: "Faux Hawk", description: "Tira central elevada, lados degradados" },
40
+ "cut-mohawk": { label: "Mohawk", description: "Lados rapados, tira central alta" },
41
+ "cut-pompadour": { label: "Pompadour", description: "Peinado hacia arriba y atrás, volumen al frente" },
42
+ "cut-short": { label: "Corto", description: "Corte corto genérico" },
43
+ "cut-short-curly": { label: "Corte Corto Rizado", description: "Forma corta en capas con rizos" },
44
+
45
+ "cut-micro-bob": { label: "Micro Bob", description: "Bob muy corto a la altura de la oreja" },
46
+ "cut-french-bob": { label: "Bob Francés", description: "Bob recto a la mandíbula, frecuentemente con flequillo" },
47
+ "cut-bob": { label: "Bob", description: "Corte bob a la altura del mentón" },
48
+ "cut-lob": { label: "Lob", description: "Bob largo, a la altura de la clavícula" },
49
+
50
+ "cut-mullet": { label: "Mullet", description: "Corto arriba y a los lados, largo atrás" },
51
+ "cut-wolf-cut": { label: "Wolf Cut", description: "Mullet desordenado en capas con flequillo" },
52
+
53
+ "cut-bangs": { label: "Flequillo Recto", description: "Flequillo recto sobre la frente" },
54
+ "cut-curtain-bangs": { label: "Flequillo Cortina", description: "Flequillo con raya central enmarcando la cara" },
55
+ "cut-wispy-bangs": { label: "Flequillo Tenue", description: "Flequillo fino, en capas, ligero" },
56
+ "cut-side-swept": { label: "De Lado", description: "Cae sobre la cara cubriendo un ojo" },
57
+
58
+ "cut-slicked-back": { label: "Peinado Hacia Atrás", description: "Tirado recto hacia atrás, pulido" },
59
+ "cut-bardot-tendrils": { label: "Tendriles Bardot", description: "Recogido con mechones enmarcando la cara" },
60
+ "cut-ponytail": { label: "Coleta (Baja)", description: "Coleta baja recogida hacia atrás" },
61
+ "cut-high-ponytail": { label: "Coleta Alta", description: "Coleta atada alta en la corona" },
62
+ "cut-half-up": { label: "Mitad Recogido", description: "Parte superior recogida, el resto fluye" },
63
+ "cut-bun": { label: "Moño", description: "Moño bajo o medio clásico" },
64
+ "cut-top-knot": { label: "Top Knot", description: "Moño atado alto en la corona" },
65
+ "cut-space-buns": { label: "Moños Espaciales", description: "Dos moños simétricos a cada lado" },
66
+
67
+ "cut-braids": { label: "Trenzas", description: "Múltiples trenzas tejidas sueltas" },
68
+ "cut-single-braid": { label: "Trenza Única", description: "Una larga trenza por la espalda" },
69
+ "cut-two-braids": { label: "Dos Trenzas", description: "Trenzas tipo coletas a cada lado" },
70
+ "cut-french-braid": { label: "Trenza Francesa", description: "Tejida plana contra el cuero cabelludo" },
71
+ "cut-dutch-braid": { label: "Trenza Holandesa", description: "Trenza francesa invertida elevada" },
72
+ "cut-fishtail-braid": { label: "Trenza Cola de Pez", description: "Tejido fino de dos hebras" },
73
+ "cut-box-braids": { label: "Trenzas Box", description: "Trenzas individuales seccionadas" },
74
+ "cut-crown-braid": { label: "Trenza de Corona", description: "Trenza envuelta alrededor de la cabeza" },
75
+ "cut-cornrows": { label: "Cornrows", description: "Patrón de trenzas pegadas al cuero cabelludo" },
76
+
77
+ "cut-dreadlocks": { label: "Rastas", description: "Rastas tipo cuerda enmarañadas" },
78
+ "cut-sisterlocks": { label: "Sisterlocks", description: "Microrastas finas y prolijamente seccionadas" },
79
+
80
+ // -------------------- Hair State --------------------
81
+ "hair-wet": { label: "Mojado", description: "Cabello empapado, agua adherida" },
82
+ "hair-damp": { label: "Húmedo", description: "Cabello recién lavado húmedo" },
83
+ "hair-messy": { label: "Despeinado", description: "Despeinado, descuidado" },
84
+ "hair-tousled": { label: "Despeinado Suave", description: "Ligeramente alborotado, vivido" },
85
+ "hair-bedhead": { label: "Pelo de Recién Levantada", description: "Aplastado de un lado, recién levantado" },
86
+ "hair-windswept": { label: "Despeinado por el Viento", description: "Soplado por el viento, cabello en movimiento" },
87
+ "hair-voluminous": { label: "Voluminoso", description: "Volumen grande y ahuecado" },
88
+ "hair-sleek": { label: "Liso Pulido", description: "Liso vidrioso recto" },
89
+ "hair-frizzy": { label: "Encrespado", description: "Halo de encrespado" },
90
+ "hair-strands-on-face": { label: "Mechones en la Cara", description: "Mechones sueltos cruzando la cara" },
91
+ "hair-tucked-behind-ear": { label: "Tras la Oreja", description: "Empujado tras una oreja" },
92
+ "hair-flowing": { label: "Fluyendo", description: "Movimiento fluido largo" },
93
+
94
+ // -------------------- Hair Treatment --------------------
95
+ "treatment-babylights": { description: "Reflejos ultrafinos y delicados" },
96
+ "treatment-balayage": { description: "Reflejos pintados a mano" },
97
+ "treatment-ombre": { description: "Degradado de raíces oscuras a puntas claras" },
98
+ "treatment-sombre": { description: "Ombré sutil suave" },
99
+ "treatment-highlights": { label: "Reflejos", description: "Reflejos clásicos con papel aluminio" },
100
+ "treatment-lowlights": { label: "Tonos Bajos", description: "Mechas de tono más oscuro" },
101
+ "treatment-rooted": { label: "Con Raíces", description: "Look de raíces visibles" },
102
+
103
+ // -------------------- Jewelry --------------------
104
+ "jewelry-subtle": { label: "Sutil", description: "Joyería mínima y delicada" },
105
+ "jewelry-statement": { label: "Statement", description: "Pieza statement audaz" },
106
+ "jewelry-gold": { label: "Oro", description: "Collar y aretes de oro" },
107
+ "jewelry-silver": { label: "Plata", description: "Collar y aretes de plata" },
108
+ "jewelry-layered": { label: "En Capas", description: "Collares / cadenas en capas" },
109
+ "jewelry-pearl": { label: "Perlas", description: "Collar / aretes de perlas" },
110
+ "jewelry-chunky": { label: "Voluminosa", description: "Cadenas y anillos grandes" },
111
+ "jewelry-smart-watch": { label: "Smart Watch", description: "Smart watch moderno en la muñeca" },
112
+ "jewelry-choker-leather": { label: "Choker de Cuero", description: "Choker de cuero negro pegado al cuello" },
113
+ "jewelry-choker-velvet": { label: "Choker de Terciopelo", description: "Choker de cinta de terciopelo, elegante y vintage" },
114
+ "jewelry-choker-chain": { label: "Choker de Cadena", description: "Choker de cadena fina de metal" },
115
+ "jewelry-stud-earrings": { label: "Aretes de Botón", description: "Pequeños botones simples" },
116
+ "jewelry-hoop-earrings": { label: "Aretes de Aro", description: "Aros de oro o plata" },
117
+ "jewelry-ear-cuff": { label: "Cuff para Oreja", description: "Cuff escultural subiendo por el cartílago" },
118
+ "jewelry-septum-ring": { label: "Anillo Septum", description: "Aro nasal septum" },
119
+ "jewelry-body-chain": { label: "Cadena Corporal", description: "Cadena metálica delgada cruzando el torso" },
120
+
121
+ // -------------------- Nails --------------------
122
+ "nails-polished": { label: "Pulidas", description: "Uñas pulidas transparentes o nude" },
123
+ "nails-red": { label: "Rojas", description: "Esmalte rojo brillante" },
124
+ "nails-dark": { label: "Oscuras", description: "Uñas oscuras / negras" },
125
+ "nails-long-acrylic": { label: "Acrílicas Largas", description: "Uñas acrílicas largas" },
126
+ "nails-french": { label: "Puntas Francesas", description: "Manicura francesa clásica" },
127
+
128
+ // -------------------- Face Paint --------------------
129
+ "face-paint-subtle": { label: "Body Paint Sutil", description: "Acentos sutiles de body / face paint" },
130
+ "face-paint-dramatic": { label: "Face Paint Dramático", description: "Face paint artístico y atrevido" },
131
+ "face-paint-costume": { label: "Pintura de Disfraz", description: "Pintura cosplay / teatral" },
132
+ "face-paint-tribal": { label: "Marcas Tribales", description: "Marcas faciales de inspiración tribal" },
133
+ "face-paint-warpaint": { label: "Pintura de Guerra", description: "Trazos de pintura de guerra de guerrero" },
134
+
135
+ // -------------------- Fabric --------------------
136
+ "fabric-silk": { label: "Seda", description: "Prendas de seda lisas y brillantes" },
137
+ "fabric-cotton": { label: "Algodón", description: "Algodón mate suave" },
138
+ "fabric-denim": { label: "Mezclilla", description: "Mezclilla pesada índigo" },
139
+ "fabric-leather": { label: "Cuero", description: "Cuero rico y suave" },
140
+ "fabric-velvet": { label: "Terciopelo", description: "Terciopelo mullido" },
141
+ "fabric-satin": { label: "Satén", description: "Satén brillante" },
142
+ "fabric-lace": { label: "Encaje", description: "Encaje delicado con patrones" },
143
+ "fabric-wool": { label: "Lana", description: "Lana tejida cálida" },
144
+ "fabric-linen": { label: "Lino", description: "Lino natural texturizado" },
145
+ "fabric-tweed": { label: "Tweed", description: "Tweed rústico tejido" },
146
+ "fabric-cashmere": { label: "Cachemira", description: "Cachemira lujosamente suave" },
147
+ "fabric-chiffon": { label: "Chifón", description: "Chifón fluido y transparente" },
148
+ "fabric-fur": { label: "Piel", description: "Piel gruesa y mullida" },
149
+ "fabric-sequins": { label: "Lentejuelas", description: "Tela brillante con lentejuelas" },
150
+ "fabric-latex": { label: "Látex", description: "Látex brillante" },
151
+
152
+ // -------------------- Outfit --------------------
153
+ "outfit-school-uniform": { label: "Uniforme Escolar", description: "Conjunto clásico de uniforme escolar" },
154
+ "outfit-business-suit": { label: "Traje Ejecutivo", description: "Traje ejecutivo de dos piezas a medida" },
155
+ "outfit-tuxedo": { label: "Esmoquin", description: "Esmoquin de etiqueta" },
156
+ "outfit-evening-gown": { label: "Vestido de Noche", description: "Vestido formal hasta el suelo" },
157
+ "outfit-wedding-dress": { label: "Vestido de Novia", description: "Vestido de novia blanco" },
158
+ "outfit-cocktail-dress": { label: "Vestido de Cóctel", description: "Vestido de cóctel hasta la rodilla" },
159
+ "outfit-lab-coat": { label: "Bata de Laboratorio", description: "Bata blanca de laboratorio médica" },
160
+ "outfit-scrubs": { label: "Uniforme Quirúrgico", description: "Uniforme quirúrgico médico de color sólido" },
161
+ "outfit-military": { label: "Uniforme Militar", description: "Uniforme militar verde oliva" },
162
+ "outfit-lifeguard": { label: "Outfit de Salvavidas", description: "Top y shorts rojos de salvavidas" },
163
+ "outfit-athleisure": { label: "Conjunto Athleisure", description: "Top y bottom athleisure a juego" },
164
+ "outfit-tracksuit": { label: "Pants Deportivos", description: "Conjunto de dos piezas con cierre" },
165
+ "outfit-bikini": { label: "Bikini", description: "Traje de baño de dos piezas" },
166
+ "outfit-one-piece-swim": { label: "Traje de Baño Entero", description: "Traje de baño entero ajustado" },
167
+ "outfit-lingerie": { label: "Conjunto de Lencería", description: "Conjunto de lencería a juego" },
168
+ "outfit-pajamas": { label: "Pijamas", description: "Conjunto suave de pijama de algodón" },
169
+ "outfit-bathrobe": { label: "Bata de Baño", description: "Bata de toalla mullida" },
170
+ "outfit-kimono": { label: "Kimono", description: "Kimono japonés tradicional" },
171
+ "outfit-ballerina": { label: "Bailarina", description: "Disfraz clásico de bailarina" },
172
+ "outfit-flapper": { label: "Flapper de los 1920s", description: "Vestido flapper con cuentas" },
173
+
174
+ // -------------------- Top --------------------
175
+ "top-tshirt": { label: "Camiseta", description: "Camiseta lisa de cuello redondo" },
176
+ "top-tank": { label: "Camiseta de Tirantes", description: "Camiseta de tirantes con cuello redondo" },
177
+ "top-crop-top": { label: "Crop Top", description: "Recortada por encima del abdomen" },
178
+ "top-hoodie": { label: "Sudadera con Capucha", description: "Sudadera con capucha de cierre" },
179
+ "top-sweater": { label: "Suéter", description: "Suéter tejido sin botones" },
180
+ "top-turtleneck": { label: "Cuello Alto", description: "Suéter de cuello alto" },
181
+ "top-blouse": { label: "Blusa", description: "Blusa elegante fluida" },
182
+ "top-button-down": { label: "Camisa de Botones", description: "Camisa de botones a medida" },
183
+ "top-polo": { label: "Polo", description: "Polo de manga corta" },
184
+ "top-tube-top": { label: "Top Tubo", description: "Top tubo sin tirantes" },
185
+ "top-camisole": { label: "Camisola", description: "Camisola delgada de satén" },
186
+ "top-corset": { label: "Corsé", description: "Top corsé estructurado" },
187
+ "top-bra-top": { label: "Top Sostén", description: "Top estilo sostén mostrando el abdomen" },
188
+ "top-sports-bra": { label: "Sostén Deportivo", description: "Sostén deportivo atlético" },
189
+ "top-bikini-top": { label: "Top de Bikini", description: "Top de bikini triángulo" },
190
+
191
+ // -------------------- Bottom --------------------
192
+ "bottom-jeans": { label: "Jeans", description: "Jeans azules clásicos" },
193
+ "bottom-skinny-jeans": { label: "Jeans Skinny", description: "Jeans corte skinny" },
194
+ "bottom-wide-leg-jeans": { label: "Jeans de Pierna Ancha", description: "Jeans sueltos de pierna ancha" },
195
+ "bottom-mom-jeans": { label: "Mom Jeans", description: "Mom jeans de tiro alto" },
196
+ "bottom-low-rise-jeans": { label: "Jeans de Tiro Bajo", description: "Jeans de tiro bajo" },
197
+ "bottom-chinos": { label: "Chinos", description: "Pantalones chinos a medida" },
198
+ "bottom-trousers": { label: "Pantalones de Vestir", description: "Pantalones de vestir planchados" },
199
+ "bottom-cargo": { label: "Pantalones Cargo", description: "Pantalones cargo con bolsillos laterales" },
200
+ "bottom-leggings": { label: "Leggings", description: "Leggings ajustados" },
201
+ "bottom-sweatpants": { label: "Pants", description: "Pants relajados" },
202
+ "bottom-shorts": { label: "Shorts", description: "Shorts hasta media pierna" },
203
+ "bottom-denim-shorts": { label: "Shorts de Mezclilla", description: "Shorts de mezclilla cortados" },
204
+ "bottom-mini-skirt": { label: "Minifalda", description: "Minifalda por encima de la rodilla" },
205
+ "bottom-pleated-skirt": { label: "Falda Plisada", description: "Falda plisada hasta media pierna" },
206
+ "bottom-midi-skirt": { label: "Falda Midi", description: "Falda midi hasta la pantorrilla" },
207
+ "bottom-maxi-skirt": { label: "Falda Maxi", description: "Falda maxi hasta el suelo" },
208
+
209
+ // -------------------- Outerwear --------------------
210
+ "outerwear-leather-jacket": { label: "Chaqueta de Cuero", description: "Chaqueta de cuero ajustada" },
211
+ "outerwear-denim-jacket": { label: "Chaqueta de Mezclilla", description: "Chaqueta de mezclilla clásica" },
212
+ "outerwear-bomber": { label: "Chaqueta Bomber", description: "Chaqueta bomber de satén" },
213
+ "outerwear-blazer": { label: "Saco", description: "Saco a medida" },
214
+ "outerwear-trench": { label: "Gabardina Trench", description: "Gabardina trench con cinturón" },
215
+ "outerwear-overcoat": { label: "Abrigo de Lana", description: "Abrigo largo de lana" },
216
+ "outerwear-puffer": { label: "Chamarra Acolchada", description: "Chamarra acolchada matelassée" },
217
+ "outerwear-parka": { label: "Parka", description: "Parka con capucha y ribete de piel" },
218
+ "outerwear-cardigan": { label: "Cardigan", description: "Cardigan tejido abierto al frente" },
219
+ "outerwear-vest": { label: "Chaleco", description: "Chaleco a medida" },
220
+ "outerwear-kimono-robe": { label: "Bata de Kimono", description: "Bata de kimono fluida" },
221
+ "outerwear-varsity": { label: "Chaqueta Varsity", description: "Chaqueta varsity universitaria" },
222
+ "outerwear-fur-coat": { label: "Abrigo de Piel", description: "Abrigo de piel mullida" },
223
+
224
+ // -------------------- Legwear --------------------
225
+ "legwear-bare": { label: "Piernas Desnudas", description: "Piernas desnudas, sin medias" },
226
+ "legwear-sheer-tights": { label: "Medias Transparentes", description: "Medias nude transparentes" },
227
+ "legwear-opaque-tights": { label: "Medias Opacas", description: "Medias opacas sólidas" },
228
+ "legwear-fishnets": { label: "Medias de Red", description: "Medias de red de malla diamante" },
229
+ "legwear-thigh-highs": { label: "Medias hasta el Muslo", description: "Medias hasta el muslo" },
230
+ "legwear-lace-top-stockings": { label: "Medias con Encaje", description: "Medias con banda de encaje hasta el muslo" },
231
+ "legwear-knee-highs": { label: "Calcetines hasta la Rodilla", description: "Calcetines hasta la rodilla" },
232
+ "legwear-crew-socks": { label: "Calcetines Crew", description: "Calcetines crew hasta media pantorrilla" },
233
+ "legwear-ankle-socks": { label: "Calcetines Tobilleros", description: "Calcetines tobilleros bajos" },
234
+ "legwear-leg-warmers": { label: "Calentadores de Piernas", description: "Calentadores tejidos para las piernas" },
235
+
236
+ // -------------------- Footwear --------------------
237
+ "footwear-sneakers": { label: "Tenis", description: "Tenis bajos" },
238
+ "footwear-high-tops": { label: "Tenis de Caña Alta", description: "Tenis altos de lona" },
239
+ "footwear-running-shoes": { label: "Zapatillas para Correr", description: "Zapatillas atléticas para correr" },
240
+ "footwear-stilettos": { label: "Tacones de Aguja", description: "Tacones de aguja puntiagudos" },
241
+ "footwear-block-heels": { label: "Tacones de Bloque", description: "Zapatos pump con tacón de bloque" },
242
+ "footwear-platforms": { label: "Plataformas", description: "Suelas altas de plataforma" },
243
+ "footwear-ankle-boots": { label: "Botines", description: "Botines ajustados" },
244
+ "footwear-knee-boots": { label: "Botas hasta la Rodilla", description: "Altas botas hasta la rodilla" },
245
+ "footwear-thigh-high-boots": { label: "Botas hasta el Muslo", description: "Botas hasta el muslo" },
246
+ "footwear-combat-boots": { label: "Botas de Combate", description: "Botas de combate con cordones" },
247
+ "footwear-chelsea-boots": { label: "Botas Chelsea", description: "Botas Chelsea sin cordones" },
248
+ "footwear-cowboy-boots": { label: "Botas Vaqueras", description: "Botas vaqueras puntiagudas" },
249
+ "footwear-loafers": { label: "Mocasines", description: "Mocasines penny pulidos" },
250
+ "footwear-oxfords": { label: "Oxfords", description: "Zapatos oxford de cuero con cordones" },
251
+ "footwear-sandals": { label: "Sandalias", description: "Sandalias planas con tiras" },
252
+ "footwear-mules": { label: "Mules", description: "Mules sin talón sin cordones" },
253
+ "footwear-flip-flops": { label: "Chanclas", description: "Chanclas casuales de goma" },
254
+ "footwear-ballet-flats": { label: "Bailarinas", description: "Bailarinas planas sin cordones" },
255
+ "footwear-barefoot": { label: "Descalzo", description: "Sin zapatos — descalzo" },
256
+
257
+ // -------------------- Wardrobe State --------------------
258
+ "state-oversized": { label: "Oversized", description: "Ajuste suelto y oversized" },
259
+ "state-fitted": { label: "Ajustado", description: "Silueta ajustada al cuerpo" },
260
+ "state-cropped": { label: "Cortado", description: "Top cortado al abdomen" },
261
+ "state-sheer": { label: "Transparente", description: "Tela translúcida" },
262
+ "state-wet": { label: "Mojado", description: "Empapado, pegado al cuerpo" },
263
+ "state-ripped": { label: "Roto", description: "Rasgado y deshilachado" },
264
+ "state-distressed": { label: "Desgastado", description: "Usado, desvanecido, curtido" },
265
+ "state-vintage": { label: "Vintage", description: "Carácter usado, retro" },
266
+ "state-tucked-in": { label: "Metido por Dentro", description: "Top metido en el bottom" },
267
+ "state-half-tucked": { label: "Medio Metido", description: "Frente metido, atrás suelto" },
268
+ "state-off-shoulder": { label: "Caído del Hombro", description: "Caído por un hombro" },
269
+ "state-unbuttoned": { label: "Desabotonado", description: "Abierto / desabotonado" },
270
+ "state-rolled-sleeves": { label: "Mangas Arremangadas", description: "Mangas arremangadas hasta el antebrazo" },
271
+ "state-layered": { label: "En Capas", description: "Múltiples capas apiladas" },
272
+
273
+ // -------------------- Outfit (round 2) --------------------
274
+ "outfit-goth": { label: "Goth", description: "Look gótico oscuro completo: encaje negro, cuero, maquillaje oscuro, cadenas" },
275
+ "outfit-emo": { label: "Emo", description: "Emo de principios de los 2000s: jeans skinny, camiseta de banda, cabello teñido, eyeliner" },
276
+ "outfit-streetwear": { label: "Streetwear", description: "Streetwear moderno: sudadera con capucha, pantalones holgados, tenis, gorro de cubo" },
277
+ "outfit-cyberpunk": { label: "Cyberpunk", description: "Cyberpunk iluminado por neón: techwear, acentos LED, capas de malla" },
278
+ "outfit-cottagecore": { label: "Cottagecore", description: "Estética pastoral de cabaña: vestido pradera, delantal, canasta" },
279
+ "outfit-dark-academia": { label: "Dark Academia", description: "Académico de tweed Oxford: blazer, chaleco, zapatos oxford" },
280
+ "outfit-anime-cosplay": { label: "Cosplay de Anime", description: "Disfraz inspirado en un personaje de anime reconocible" },
281
+ "outfit-nurse": { label: "Enfermera", description: "Uniforme quirúrgico, estetoscopio, identificación con cordón" },
282
+ "outfit-pirate": { label: "Pirata", description: "Disfraz de pirata: tricornio, faja, camisa con volantes, botas" },
283
+ "outfit-fairy": { label: "Hada", description: "Hada de fantasía: alas vaporosas, corona de flores, vestido etéreo" },
284
+ "outfit-mermaid": { label: "Sirena", description: "Sirena de fantasía: cola/falda escamada, top de conchas" },
285
+
286
+ // -------------------- Headwear (round 2) --------------------
287
+ "headwear-bucket-hat": { label: "Gorro de Cubo", description: "Gorro de cubo casual con ala blanda" },
288
+ "headwear-beret": { label: "Boina", description: "Boina francesa redonda y suave" },
289
+ "headwear-turban": { label: "Turbante", description: "Turbante envuelto a la cabeza, cultural / fashion" },
290
+ "headwear-fascinator": { label: "Fascinator", description: "Pequeño tocado decorativo, estilo boda real" },
291
+ "headwear-bowler": { label: "Sombrero Bombín", description: "Sombrero bombín / derby de copa redonda" },
292
+ "headwear-cowboy-hat": { label: "Sombrero Vaquero", description: "Sombrero vaquero del Oeste de ala ancha" },
293
+
294
+ // -------------------- Footwear (round 2) --------------------
295
+ "footwear-crocs": { label: "Crocs", description: "Zuecos de resina coloridos, casuales" },
296
+ "footwear-birkenstocks": { label: "Birkenstocks", description: "Sandalias con plantilla de corcho" },
297
+ "footwear-doc-martens": { label: "Doc Martens", description: "Botas de combate gruesas de cuero" },
298
+ "footwear-converse": { label: "Converse", description: "Tenis altos de lona, clásicas Chuck Taylor" },
299
+ "footwear-vans": { label: "Vans", description: "Tenis skater slip-on o de caña baja" },
300
+ "footwear-espadrilles": { label: "Alpargatas", description: "Calzado de verano de lona con suela de yute trenzado" },
301
+
302
+ // -------------------- Bottom (round 2) --------------------
303
+ "bottom-overalls": { label: "Overoles", description: "Overoles / petos de mezclilla" },
304
+ "bottom-culottes": { label: "Culottes", description: "Pantalones cortos de pierna ancha, hasta media pantorrilla" },
305
+ "bottom-palazzo-pants": { label: "Pantalones Palazzo", description: "Pantalones fluidos de pierna ancha" },
306
+ "bottom-harem-pants": { label: "Pantalones Harem", description: "Pantalones holgados con tiro caído" },
307
+ "bottom-bike-shorts": { label: "Shorts de Ciclista", description: "Shorts ajustados de licra hasta medio muslo" },
308
+
309
+ // -------------------- Top (round 2) --------------------
310
+ "top-bodysuit": { label: "Body", description: "Prenda de torso de una sola pieza ajustada" },
311
+ "top-leotard": { label: "Leotardo", description: "Top ajustado estilo danza con mangas" },
312
+ "top-mesh-top": { label: "Top de Malla", description: "Top de tela de malla transparente" },
313
+ "top-sheer-top": { label: "Top Transparente", description: "Top de tela translúcida" },
314
+ "top-bandeau": { label: "Bandeau", description: "Top tubo sin tirantes" },
315
+ }
316
+
317
+ export default map